Anwendung testen und Fehler beheben

Wir empfehlen dir, deine App für die lokale Auftragsausführung anhand der zuvor beschriebenen Schritte zu erstellen und dann deine Smart-Home-Integration in deiner eigenen Hostingumgebung mit den folgenden Schritten zu testen:

  1. Stellen Sie in Ihrer eigenen Hosting-Umgebung die HTML-Seite bereit, auf der Ihre lokale Auftragsausführungs-App ausgeführt wird. Das folgende Snippet zeigt ein Beispiel für eine statische HTML-Datei, auf der Ihre lokale Ausführungsanwendung 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. Fehler in Chrome beheben. Verwenden Sie Haltepunkte und Logs, um Probleme bei der Integration zu beheben.

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

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

Gerätesteuerung testen

In der Aktionskonsole musst du die URL deiner Web-App angeben, die den HTML-Code bereitstellt, der bei der lokalen Auftragsausführung auf das Google Home- oder Google Nest-Gerät geladen wird.

So testen Sie die Gerätesteuerung mit lokaler Auftragsausführung:

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 der HTML-Code bereitgestellt wird, auf dem Ihre lokale Auftragsausführungs-App ausgeführt wird.
  4. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google die Konsolenänderungen wirksam macht.
  5. Starten Sie das Google Home- oder Google Nest-Testgerät neu.
  6. Geben Sie einen Befehl an Ihr Smart-Home-Gerät. Wenn auf deinem Gerät beispielsweise die Eigenschaft OnOff implementiert ist, kannst du „Hey Google, schalte das Licht an“ sagen.

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 Entwicklungsserver-URL an, über die der JavaScript-Code bereitgestellt wird, mit dem Ihre lokale Auftragsausführungs-App ausgeführt wird.
  4. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google die Konsolenänderungen wirksam macht.
  5. Starten Sie das Google Home- oder Google Nest-Testgerät neu.
  6. Geben Sie einen Befehl an Ihr Smart-Home-Gerät. Wenn auf deinem Gerät beispielsweise die Eigenschaft OnOff implementiert ist, kannst du „Hey Google, schalte das Licht an“ sagen.

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

Fehlerbehebung mit Chrome

Sie können Fehler in Ihrer lokalen App für die Auftragsausführung mit den Chrome-Entwicklertools beheben. Damit Sie Fehler beheben können, muss Ihre Umgebung korrekt eingerichtet sein:

  • Sie haben die Entwicklungs-URL in der Console auf eine URL festgelegt, die über das Google Home- oder Google Nest-Gerät erreichbar ist (entweder im Local Area Network oder über das Internet).
  • Ihr Computer ist mit demselben LAN wie das Google Home- oder Google Nest-Gerät verbunden, das Sie testen.
  • Pakete zwischen Geräten werden von Ihrem Netzwerk nicht blockiert.
  • 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 der Cloud-Auftragsausführung aktualisiert. Es sollte mindestens ein gültiger Wert im Feld otherDeviceIds zurückgegeben werden.
  • Sie haben in der Actions Console die richtigen Informationen zur Scankonfiguration eingegeben.

So verbinden Sie Ihre lokale App für die Auftragsausführung mit dem Chrome-Entwicklertools-Debugger:

Chrome

  1. Installieren und starten Sie den Google Chrome-Browser auf Ihrem lokalen Entwicklungscomputer.
  2. Starten Sie das Chrome Inspector-Tool im Adressfeld Ihres Chrome-Browsers. Geben Sie dazu chrome://inspect#devices ein. Auf der Seite sollte eine Liste der Geräte angezeigt werden und die HTML-Datei sollte unter dem Namen Ihres Google Home- oder Google Nest-Testgeräts aufgeführt sein.
  3. Klicken Sie auf den blauen Link „Inspect“ unter dem HTML-Code, um die Chrome-Entwicklertools zu starten. Wechseln Sie zum Tab Console. Die Local Home-Plattform gibt deine App-Version und die Local Home SDK-Version im Konsolenprotokoll aus. Wenn das Log angezeigt wird, hat Google Ihre Anwendung erfolgreich geladen und kann eine Verbindung herstellen. Falls nicht, starten Sie Google Home bzw. Google Nest neu.
  4. Abbildung 1: Lokale App für die Auftragsausführung unter chrome://Inspect.

Node.js

  1. Installieren und starten Sie den Google Chrome-Browser auf Ihrem lokalen Entwicklungscomputer.
  2. Ermitteln Sie die lokale IP-Adresse des Testgeräts.
  3. Starten Sie das Chrome Inspector-Tool im Adressfeld Ihres Chrome-Browsers. Geben Sie dazu chrome://inspect#devices ein.
  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 deine App-Version und die Local Home SDK-Version im Konsolenprotokoll aus. Wenn das Log angezeigt wird, hat Google Ihre Anwendung erfolgreich geladen und kann eine Verbindung herstellen. Falls nicht, starten Sie Google Home bzw. Google Nest neu.

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

Tipps zur Fehlerbehebung

Beachten Sie bei der Fehlerbehebung Folgendes:

  • Verknüpfen Sie nicht mehrere Google Home- oder Google Nest-Geräte mit Ihrem Testkonto im selben lokalen Netzwerk. Sie können mit den lokalen Ausführungsbefehlen nicht steuern, welches Google Home- oder Google Nest-Gerät als Ziel verwendet wird.
  • Aktualisieren Sie die Seite in den Chrome-Entwicklertools, um den Container Ihrer lokalen Auftragsausführungs-App mit dem neuesten Code von Ihrer Entwicklungs-URL neu zu laden. Die Local Home-Plattform wird dadurch nicht zurückgesetzt. Dies ist möglicherweise erforderlich, um Plattform-Intents (z. B. IDENTIFY) in Ihrer lokalen Auftragsausführungs-App neu auszulösen. Starten Sie dazu Ihr Google Home- oder Google Nest-Gerät neu.
  • Prüfen Sie, ob Ihre JavaScript-Anwendung fehlerfrei geladen wird. Sehen Sie sich dazu auf der Seite „Entwicklertools“ im Konsolenabschnitt 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 otherDeviceIds aus der SYNC-Antwort übereinstimmen.
  • Prüfen Sie für den EXECUTE-Handler, ob Ihre HTTP-, TCP- oder UDP-Befehle von Ihrem Gerät empfangen werden können und erwartungsgemäß funktionieren.
  • Achten Sie darauf, dass von den Handlern ein Promise zurückgegeben wird.
  • Vermeiden Sie die Beibehaltung des globalen Status im Arbeitsspeicher. Siehe Anwendungslebenszyklus.
  • Fehler, die von der lokalen Auftragsausführungs-App ausgegeben werden, werden in den Fehlerlogs Ihres Projekts angezeigt.

Produktionsvorbereitung und -einführung

Wenn Sie die Smart-Home-Aktion starten möchten, gehen Sie so vor:

  1. Öffnen Sie ein Terminalfenster. Führen Sie in Ihrem 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 in der Console Ihre JavaScript-Anwendung hoch. Klicken Sie dazu auf Entwickeln > Aktionen. Klicke im Abschnitt Local Home SDK konfigurieren auf JavaScript-Dateien hochladen.
    Abbildung 3: JavaScript-Anwendung hochladen
  3. Laden Sie im Dialogfeld Dateien hochladen die Bundle-Dateien hoch, die Sie zuvor generiert haben. Laden Sie beide Versionen der Bundle-Dateien (Knoten, Web) hoch, damit Ihre Aktion für alle Laufzeitumgebungen konfiguriert ist, die von der lokalen Auftragsausführung unterstützt werden.
    1. JavaScript-Targeting für Node.js hochladen: Laden Sie die Datei bundle.js aus dem Verzeichnis dist/node hoch.
    2. JavaScript-Code für Chrome (Browser) hochladen: Laden Sie die Datei bundle.js aus dem Verzeichnis dist/web hoch.
  4. Teste deine Aktion auf einem Gerät mit integriertem Assistant, um zu prüfen, ob sie in einer Produktionsumgebung wie erwartet funktioniert. Weitere Informationen findest du unter Smart-Home-Aktion testen und teilen.
  5. Wenn du mit der Funktionsweise deiner Aktion zufrieden bist, kannst du sie zur Produktionsbereitstellung an Google senden. Folge dazu der Anleitung unter Smart-Home-Aktion starten. Dazu gehören der Selbsttest und die Anfrage zur Zertifizierung.