Anwendung testen und Fehler beheben

Wir empfehlen, die App für die lokale Ausführung wie oben beschrieben zu erstellen und die Smart-Home-Integration dann in Ihrer eigenen Hostingumgebung zu testen. Gehen Sie dazu so vor:

  1. Stelle in deiner eigenen Hostingumgebung die HTML-Seite bereit, auf der deine lokale Auftragsausführungs-App ausgeführt wird. Das folgende Snippet zeigt ein Beispiel für eine statische HTML-Datei, auf der deine lokale Auftragsausführungs-App 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. Über Chrome debuggen Verwenden Sie Haltepunkte und Logs, um Fehler in Ihrer Integration zu beheben.

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

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

Gerätesteuerung testen

In der Google Home Developer Console musst du die URL deiner Web-App angeben, die den HTML-Code bereitstellt, der während der lokalen Ausführung auf dem Google Home- oder Google Nest-Gerät geladen wird.

So testest du die Gerätesteuerung mit lokaler Ausführung:

Chrome

  1. Scrolle auf der Seite Einrichtung und Konfiguration deiner Cloud-to-Cloud-Integration in der Google Home Developer Console zu Lokale Ausführung und aktiviere die Einstellung.
  2. Geben Sie unter Test-URLs > Test-URL für Chrome die URL des Entwicklungsservers an, der den HTML-Code für Ihre lokale Auftragsausführungs-App bereitstellt.
  3. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google die Änderungen in der Console übernommen hat.
  4. Starte dein Google Home- oder Google Nest-Testgerät neu.
  5. Gib einen Befehl für dein Smart-Home-Gerät ein. Wenn dein Gerät beispielsweise das Attribut OnOff implementiert, kannst du „Hey Google, schalte das Licht ein“ sagen.

Node.js

  1. Scrolle auf der Seite Einrichtung und Konfiguration der Google Home Developer Console zu Lokale Auftragsausführung und aktiviere die Einstellung.
  2. Geben Sie unter Test-URLs > Test-URL für Node die URL des Entwicklungsservers an, der das JavaScript für Ihre lokale Auftragsausführungs-App bereitstellt.
  3. Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google die Änderungen in der Console übernommen hat.
  4. Starte dein Google Home- oder Google Nest-Testgerät neu.
  5. Gib einen Befehl für dein Smart-Home-Gerät ein. Wenn dein Gerät beispielsweise das Attribut OnOff implementiert, kannst du „Hey Google, schalte das Licht ein“ sagen.

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

Fehlerbehebung über Chrome

Du kannst deine lokale Auftragsausführungs-App mit den Chrome-Entwicklertools debuggen. Bevor Sie mit dem Debugging beginnen können, müssen Sie Ihre Umgebung korrekt einrichten:

So verbindest du deine lokale Auftragsausführungs-App mit dem Chrome-Entwicklertools-Debugger:

Chrome

  1. Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
  2. Geben Sie im Adressfeld Ihres Chrome-Browsers chrome://inspect#devices ein, um den Chrome-Prüfer zu starten. Auf der Seite sollte eine Liste der Geräte angezeigt werden. Deine HTML-Datei sollte unter dem Namen deines Google Home- oder Google Nest-Testgeräts aufgeführt sein.
  3. Klicken Sie unter Ihrem HTML-Code auf den blauen Link „Untersuchen“, 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, bedeutet das, dass Google Ihre App erfolgreich geladen hat und eine Verbindung zu ihr herstellen kann. Wenn nicht, starte dein Google Home- oder Google Nest-Gerät neu.
  4. Abbildung 1: Lokale Auftragsausführungs-App in chrome://inspect.

Node.js

  1. Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
  2. Ermittle die lokale IP-Adresse deines Testgeräts.
  3. Geben Sie im Adressfeld Ihres Chrome-Browsers chrome://inspect#devices ein, um den Chrome-Prüfer zu starten.
  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 „Prüfen“, 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, bedeutet das, dass Google Ihre App erfolgreich geladen hat und eine Verbindung zu ihr herstellen kann. Wenn nicht, starte dein 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

Weitere Punkte, die Sie beim Debugging beachten sollten:

  • Verknüpfe nicht mehrere Google Home- oder Google Nest-Geräte im selben lokalen Netzwerk mit deinem Testkonto. Du kannst nicht steuern, welches Google Home- oder Google Nest-Gerät mit den Befehlen für die lokale Ausführung angesprochen wird.
  • Aktualisieren Sie die Seite in den Chrome-Entwicklertools, um den Container der 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 kann jedoch erforderlich sein, um Plattform-Intents (z. B. IDENTIFY) in deiner App für die lokale Ausführung noch einmal auszulösen. Wenn du die Local Home-Plattform zurücksetzen möchtest, starte dein Google Home- oder Google Nest-Gerät neu.
  • Prüfen Sie, ob Ihre JavaScript-Anwendung fehlerfrei geladen wird. Sehen Sie sich dazu den Konsolenbereich der Entwicklertools-Seite an. 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.
  • Achte beim EXECUTE-Handler darauf, dass deine HTTP-, TCP- oder UDP-Befehle von deinem Gerät empfangen werden können und wie erwartet funktionieren.
  • Achten Sie darauf, dass die Handler ein Promise zurückgeben.
  • Vermeiden Sie es, den globalen Status im Arbeitsspeicher zu verwalten. Weitere Informationen finden Sie unter Anwendungslebenszyklus.
  • Fehler, die von deiner lokalen Auftragsausführungs-App ausgegeben werden, werden in den Fehlerlogs deines Projekts angezeigt.

Vorbereiten und in der Produktion bereitstellen

Wenn du bereit bist, deine Smart-Home-Aktion zu starten, gehe 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. Scrollen Sie auf der Seite Einrichtung und Konfiguration der Google Home Developer Console zu Lokale Ausführung und aktivieren Sie die Einstellung.
  3. Laden Sie die zuvor generierten Bundle-Dateien über die Schaltflächen JavaScript hochladen hoch.
    Abbildung 3: JavaScript-Anwendung hochladen
    Lade beide Versionen der Bundle-Dateien (Node, Web) hoch, damit deine Aktion in allen Laufzeitumgebungen, die die lokale Ausführung unterstützt, richtig konfiguriert ist.
    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. Teste deine Aktion auf einem Gerät mit integriertem Assistant, um zu prüfen, ob sie sich in einer Produktionsumgebung wie erwartet verhält. Weitere Informationen findest du unter Smart-Home-Aktion testen und teilen.
  5. Wenn du mit der Funktionsweise deiner Aktion zufrieden bist, kannst du sie gemäß der Anleitung unter Smart-Home-Aktion veröffentlichen bei Google für die Produktionsbereitstellung einreichen. Dazu gehören auch der automatische Test und die Zertifizierungsanfrage.