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:
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>
Fehlerbehebung über Chrome Verwenden Sie Haltepunkte und Protokolle, um Probleme mit der Integration zu beheben.
Ä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
- 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.
- 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.
- Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
- Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
- 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
- Scrollen Sie auf der Seite Einrichtung und Konfiguration der Google Home Developer Console zu Lokale Auftragsausführung und aktivieren Sie die Einstellung.
- 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.
- Klicken Sie auf Speichern. Es kann bis zu 30 Minuten dauern, bis Google Ihre Konsolenänderungen übernommen hat.
- Starten Sie Ihr Google Home- oder Google Nest-Testgerät neu.
- 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:
- Sie haben Ihre Entwicklungs-URL in der Console auf eine URL festgelegt, die vom Google Home- oder Google Nest-Gerät erreichbar ist (entweder über das lokale 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 mit demselben Google-Konto auf dem Google Home Developer Console und auf dem Google Home- oder Google Nest-Gerät 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 die richtigen Informationen zur Scankonfiguration in Google Home Developer Console eingegeben.
So stellen Sie eine Verbindung zwischen Ihrer lokalen Fulfillment-App und dem Chrome DevTools-Debugger her:
Chrome
- Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
- Ö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. - 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.
Node.js
- Installieren und starten Sie auf Ihrem lokalen Entwicklungscomputer den Google Chrome-Browser.
- Ermitteln Sie die lokale IP-Adresse Ihres Testgeräts.
- Öffnen Sie im Chrome-Browser den Chrome-Inspektor, indem Sie
chrome://inspect#devices
in die Adressleiste eingeben. - Wählen Sie Konfigurieren aus, um die Einstellungen für die Zielerkennung zu öffnen.
- Geben Sie
DEVICE_IP_ADDRESS:9222
in die Liste ein und klicken Sie auf Fertig. - 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 derIDENTIFY
-Antwort muss mit einem derotherDeviceIds
aus derSYNC
-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:
- Ö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 Verzeichnisdist
generiert:project-directory/ └── dist ├── web │ └── bundle.js └── node └── bundle.js
- Scrollen Sie auf der Seite Einrichtung und Konfiguration des Google Home Developer Console zu Lokale Auftragsausführung und aktivieren Sie die Einstellung.
- Laden Sie die zuvor generierten Bundle-Dateien mit den Schaltflächen JavaScript hochladen 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.
- JavaScript für Node.js hochladen: Laden Sie die Datei
bundle.js
aus dem Verzeichnisdist/node
hoch. - JavaScript für Chrome (Browser) hochladen: Laden Sie die Datei
bundle.js
aus dem Verzeichnisdist/web
hoch.
- JavaScript für Node.js hochladen: Laden Sie die Datei
- 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.
- 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.