Anwendung testen und Fehler beheben

Wir empfehlen, Ihre App für die lokale Auftragsausführung anhand der oben beschriebenen Schritte zu erstellen und dann die Smart-Home-Integration anhand der folgenden Schritte in Ihrer eigenen Hostingumgebung zu testen:

  1. Stellen Sie in Ihrer eigenen Hostingumgebung die HTML-Seite bereit, auf der Ihre App für die lokale Auftragsausführung ausgeführt wird. Das folgende Snippet zeigt ein Beispiel für eine statische HTML-Datei, auf der Ihre App für die lokale Auftragsausführung ausgeführt wird.

    <html>
      <head>
        <!-- Local Home SDK -->
        <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script>
        <!-- Local app under development -->
        <script src="local_execution.js"></script>
      </head>
    
    </html>
  2. Gerätesteuerung testen

  3. Fehlerbehebung über Chrome Verwenden Sie Haltepunkte und Protokolle, um Probleme mit der Integration zu beheben.

  4. Ändern und kompilieren Sie Ihren TypeScript-Code und wiederholen Sie dann diese Schritte.

Wenn Sie diesen Build- und Testprozess wiederholen, können Sie Ihre Änderungen schnell in Aktion sehen und Probleme mit Ihrem Code leichter erkennen und beheben.

Gerätesteuerung testen

In der Action Console müssen Sie die URL Ihrer Webanwendung angeben, über die die HTML-Datei bereitgestellt wird, die beim lokalen Ausführen auf das Google Home- oder Google Nest-Gerät geladen wird.

So testen Sie die Gerätesteuerung mit lokalem Fulfillment:

Chrome

  1. Öffnen Sie Ihr Smart-Home-Projekt in der Actions Console.
  2. Klicken Sie im linken Navigationsbereich auf Aktionen.
  3. Geben Sie unter Local Home SDK konfigurieren (optional) > Test-URL für Chrome eingeben die URL des Entwicklungsservers an, über den die HTML-Datei bereitgestellt wird, die Ihre lokale Fulfillment-App ausführt.
  4. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
  5. Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
  6. Geben Sie einen Befehl an Ihr Smart-Home-Gerät. Wenn Ihr Gerät beispielsweise die Eigenschaft OnOff implementiert, können Sie sagen: „Hey Google, schalt das Licht an.“

Node.js

  1. Öffnen Sie Ihr Smart-Home-Projekt in der Actions Console.
  2. Klicken Sie im linken Navigationsbereich auf Aktionen.
  3. Geben Sie unter Local Home SDK konfigurieren (optional) > Test-URL für Node eingeben die Anwendungsserver-URL an, die den JavaScript-Code für die Ausführung Ihrer lokalen Auftragsausführungs-App bereitstellt.
  4. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
  5. Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
  6. Geben Sie einen Befehl an Ihr Smart-Home-Gerät. Wenn Ihr Gerät beispielsweise die Eigenschaft OnOff implementiert, können Sie sagen: „Hey Google, schalt das Licht an.“

Weitere Informationen dazu, welche Laufzeit von Ihrem Gerät verwendet wird, finden Sie unter Unterstützte Geräte.

auf den Normalbetrieb zurücksetzen.

Debugging über Chrome

Sie können Ihre App für die lokale Auftragsausführung mit den Chrome-Entwicklertools debuggen. Prüfen Sie vor dem Debuggen, ob Ihre Umgebung richtig eingerichtet ist:

  • Du hast deine Entwicklungs-URL in der Konsole auf eine URL festgelegt, auf die das Google Home- oder Google Nest-Gerät zugreifen kann (entweder über das Local Area Network oder über das Internet).
  • Der Computer ist mit demselben Local Area Network wie das Google Home- oder Google Nest-Gerät verbunden, das Sie testen.
  • Ihr Netzwerk blockiert keine Pakete zwischen Geräten.
  • Sie sind in der Actions Console und auf dem Google Home- oder Google Nest-Gerät mit demselben Google-Konto angemeldet.
  • Sie haben die SYNC-Antwort in Ihrer Cloud-Ausführung aktualisiert. Sie sollte mindestens einen gültigen Wert im Feld otherDeviceIds zurückgeben.
  • Sie haben die richtigen Informationen zur Scankonfiguration in der Actions Console eingegeben.

So stellen Sie eine Verbindung zwischen Ihrer lokalen Fulfillment-App und dem Chrome DevTools-Debugger her:

Chrome

  1. Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
  2. Öffnen Sie im Chrome-Browser den Chrome-Inspektor, indem Sie chrome://inspect#devices in die Adressleiste eingeben. Auf der Seite sollte eine Liste der Geräte angezeigt werden. Ihre HTML-Datei sollte unter dem Namen Ihres Google Home- oder Google Nest-Testgeräts aufgeführt sein.
  3. Klicken Sie unter dem HTML-Code auf den blauen Link „Inspect“ (Prüfen), um die Chrome-Entwicklertools zu öffnen. Wechseln Sie zum Tab Console. Die Local Home-Plattform gibt deine App-Version und die Local Home SDK-Version im Konsolenprotokoll aus. Wenn Sie das Protokoll sehen, hat Google Ihre App erfolgreich geladen und kann eine Verbindung herstellen. Andernfalls starten Sie Ihr Google Home- oder Google Nest-Gerät neu.
  4. Abbildung 1: App für lokale Auftragsausführung in chrome://inspect

Node.js

  1. Installieren und starten Sie den Google Chrome-Browser auf Ihrem lokalen Entwicklungscomputer.
  2. Ermitteln Sie die lokale IP-Adresse Ihres Testgeräts.
  3. Starten Sie den Chrome Inspector im Adressfeld Ihres Chrome-Browsers, indem Sie chrome://inspect#devices eingeben.
  4. Wählen Sie Konfigurieren… aus, um die Einstellungen für die Zielerkennung zu öffnen.
  5. Abbildung 2: Einstellungen für die Zielerkennung in chrome://inspect
  6. Geben Sie DEVICE_IP_ADDRESS:9222 in die Liste ein und klicken Sie auf Fertig.
  7. Klicken Sie unter Ihrem Skript auf den blauen Link „Inspect“, um die Chrome-Entwicklertools zu starten. Wechseln Sie zum Tab Console. Die Local Home-Plattform gibt die App-Version und die Local Home SDK-Version im Konsolenprotokoll aus. Wenn Sie das Protokoll sehen, hat Google Ihre App erfolgreich geladen und kann eine Verbindung herstellen. Andernfalls starten Sie Ihr Google Home- oder Google Nest-Gerät neu.

Weitere Informationen dazu, welche Laufzeit von Ihrem Gerät verwendet wird, finden Sie unter Unterstützte Geräte.

Tipps zur Fehlerbehebung

Beachten Sie beim Debuggen Folgendes:

  • Verknüpfen Sie nicht mehrere Google Home- oder Google Nest-Geräte mit Ihrem Testkonto im selben lokalen Netzwerk. Sie können nicht festlegen, auf welches Google Home- oder Google Nest-Gerät die Befehle zur lokalen Ausführung ausgerichtet werden.
  • Aktualisieren Sie die Seite in den Chrome-Entwicklertools, um den lokalen Container der App für die Auftragsausführung mit dem neuesten Code aus Ihrer Entwicklungs-URL neu zu laden. Dadurch wird die Local Home-Plattform nicht zurückgesetzt. Das kann erforderlich sein, um Plattformabsichten wie IDENTIFY in Ihrer App für die lokale Auftragsausführung noch einmal auszulösen. Wenn Sie die Local Home-Plattform zurücksetzen möchten, starten Sie Ihr Google Home- oder Google Nest-Gerät neu.
  • Prüfen Sie, ob Ihre JavaScript-App ohne Fehler geladen wird. Sehen Sie dazu im Bereich „Konsole“ auf der Seite „Entwicklertools“ nach. Falls ein Problem auftritt, wird eine Meldung wie diese angezeigt: Uncaught TypeError: Cannot read property ‘open’ of null.
  • Der verificationId aus der IDENTIFY-Antwort muss mit einem der otherDeviceIds aus der SYNC-Antwort übereinstimmen.
  • Für den EXECUTE-Handler muss sichergestellt sein, dass deine HTTP-, TCP- oder UDP-Befehle von deinem Gerät empfangen werden können und wie erwartet funktionieren.
  • Die Handler müssen eine Promise zurückgeben.
  • Vermeiden Sie es, den globalen Status im Arbeitsspeicher zu speichern. Siehe Anwendungslebenszyklus.
  • Fehler, die von Ihrer lokalen App für die Auftragsausführung ausgegeben werden, werden in den Fehlerlogs Ihres Projekts angezeigt.

Für die Produktion vorbereiten und einführen

Wenn Sie Ihre Smart-Home-Aktion veröffentlichen möchten, gehen Sie so vor:

  1. Öffnen Sie ein Terminalfenster. Führen Sie im Projektverzeichnis den Befehl npm run build aus. Mit diesem Befehl werden die folgenden JavaScript-Bundles für Ihre App im Verzeichnis dist generiert:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Laden Sie Ihre JavaScript-App in der Konsole hoch, indem Sie auf Entwickeln > Aktionen klicken. Klicken Sie im Bereich Local Home SDK konfigurieren auf JavaScript-Dateien hochladen.
    Abbildung 3: JavaScript-App hochladen
  3. Laden Sie im Dialogfeld Dateien hochladen die zuvor generierten Bundle-Dateien hoch. Laden Sie beide Versionen der Bundle-Dateien (Node, Web) hoch, damit Ihre Aktion für alle Laufzeitumgebungen konfiguriert ist, die die lokale Auslieferung unterstützt.
    1. JavaScript für Node.js hochladen: Laden Sie die Datei bundle.js aus dem Verzeichnis dist/node hoch.
    2. JavaScript für Chrome (Browser) hochladen: Laden Sie die Datei bundle.js aus dem Verzeichnis dist/web hoch.
  4. Testen Sie Ihre Aktion auf einem Gerät mit integriertem Assistant, um zu prüfen, ob sie in einer Produktionsumgebung wie erwartet funktioniert. Weitere Informationen finden Sie unter Smart-Home-Aktion testen und freigeben.
  5. Wenn Sie mit der Funktion Ihrer Aktion zufrieden sind, reichen Sie sie zur Produktionsbereitstellung bei Google ein. Folgen Sie dazu der Anleitung unter Smart-Home-Aktion veröffentlichen. Dazu gehören auch die Schritte für den Selbsttest und den Zertifizierungsantrag.