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 Testvorgang 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 URL des Entwicklungsservers an, über den das JavaScript bereitgestellt wird, mit dem Ihre lokale Fulfillment-App ausgeführt wird.
  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 auf 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. Bevor Sie mit der Fehlerbehebung beginnen können, muss Ihre Umgebung richtig eingerichtet sein:

  • Sie haben Ihre Entwicklungs-URL in der Console auf eine URL festgelegt, die vom Google Home- oder Google Nest-Gerät erreichbar ist (entweder im lokalen Netzwerk oder über das Internet).
  • Ihr Computer ist mit demselben lokalen Netzwerk verbunden wie das Google Home- oder Google Nest-Gerät, 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. Es sollte mindestens einen gültigen Wert im Feld otherDeviceIds zurückgeben.
  • Sie haben in der Actions Console die richtigen Informationen zur Scankonfiguration 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 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. 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 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. 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.