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 so Probleme mit Ihrem Code beheben.

Gerätesteuerung testen

Geben Sie in Google Home Developer Console die URL Ihrer Webanwendung an, die den HTML-Code bereitstellt, der 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. Scrollen Sie auf der Seite Einrichtung und Konfiguration Ihrer Cloud-zu-Cloud-Verknüpfung im Bereich Google Home Developer Console zu Lokale Auftragsausführung und aktivieren Sie die Einstellung.
  2. Geben Sie unter Test-URLs > Test-URL für Chrome die URL des Entwicklungsservers an, über den die HTML-Datei bereitgestellt wird, die Ihre lokale Fulfillment-App ausführt.
  3. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
  4. Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
  5. 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. Scrollen Sie auf der Seite Einrichtung und Konfiguration der Google Home Developer Console zu Lokale Auftragsausführung und aktivieren Sie die Einstellung.
  2. Geben Sie unter Test-URLs > Test-URL für Node die URL des Entwicklungsservers an, über den das JavaScript bereitgestellt wird, mit dem Ihre lokale Fulfillment-App ausgeführt wird.
  3. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
  4. Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
  5. 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 auf Ihrem Gerät verwendet wird, finden Sie unter Unterstützte Geräte.

auf den Normalbetrieb zurücksetzen.

Über Chrome debuggen

Sie können Ihre App für die lokale Auftragsausführung mit den Chrome-Entwicklertools debuggen. Bevor Sie mit der Fehlerbehebung beginnen können, muss Ihre Umgebung richtig eingerichtet sein:

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 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.
  4. Abbildung 1: App für lokale Auftragsausführung in chrome://inspect

Node.js

  1. Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
  2. Ermitteln Sie die lokale IP-Adresse Ihres Testgeräts.
  3. Öffnen Sie im Chrome-Browser den Chrome-Inspektor, indem Sie chrome://inspect#devices in die Adressleiste 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 dem Script auf den blauen Link „Inspect“ (Prüfen), um die Chrome DevTools zu öffnen. 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 auf 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“ der Seite „Entwicklertools“ nach. Wenn 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 und wie erwartet funktionieren.
  • Die Handler müssen eine Promise zurückgeben.
  • Vermeiden Sie es, den globalen Status im Arbeitsspeicher zu speichern. Weitere Informationen finden Sie unter Anwendungslebenszyklus.
  • Fehler, die von Ihrer App für die lokale Auftragsausführung verursacht werden, werden in den Fehlerprotokollen 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. Scrollen Sie auf der Seite Einrichtung und Konfiguration des Google Home Developer Console zu Lokale Auftragsausführung und aktivieren Sie die Einstellung.
  3. Laden Sie die zuvor generierten Bundle-Dateien mit den Schaltflächen JavaScript hochladen hoch.
    Abbildung 3: JavaScript-App hochladen
    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.