Das Local Home SDK optimiert Ihre Smart-Home-Integration mit Google Assistant, indem es einen Pfad für die lokale Ausführung von Smart Home-Intents hinzufügt.
Das Local Home SDK bietet zwei Funktionen: die lokale Ausführung und die lokale Anfrage.
- Mit Lokale Ausführung können Befehle ausgeführt werden, indem
EXEC
-Intents über den lokalen Ausführungspfad gesendet werden, anstatt einen Cloud-API-Aufruf zu starten. Die Anfrage „Schalte das Licht ein“ könnte beispielsweise durch die lokale Ausführung verarbeitet werden. - Mit Local Query können Sie Anfragen zum Gerätestatus verarbeiten, indem Sie
QUERY
-Intents über den lokalen Fulfillment-Pfad senden. Mit Local Query wird beispielsweise die Anfrage „Ist mein Licht an?“ beantwortet, ohne dass ein Cloud-API-Aufruf erfolgt.
Mit dem SDK können Sie eine lokale Fulfillment-App in TypeScript oder JavaScript schreiben, die Ihre Smart-Home-Geschäftslogik enthält. Google Home- oder Google Nest-Geräte können Ihre App auf dem Gerät laden und ausführen. Ihre App kommuniziert direkt über WLAN in einem lokalen Netzwerk (LAN) mit Ihren vorhandenen Smart-Home-Geräten, um Nutzerbefehle über vorhandene Protokolle auszuführen.
Die Integration des SDK bietet Leistungsverbesserungen für Ihre Cloud-to-cloud-Integration, darunter eine geringere Latenz und eine höhere Zuverlässigkeit. Die lokale Ausführung wird für alle Gerätetypen und Geräteattribute unterstützt, mit Ausnahme derer, die die sekundäre Nutzerbestätigung verwenden.
Loslegen Beispiel ausprobieren
Funktionsweise
Nachdem Sie eine SYNC
-Antwort von Ihrem Cloud-Fulfillment erhalten haben, scannt die Local Home-Plattform das lokale Netzwerk des Nutzers über mDNS, UDP-Broadcast oder UPnP, um Smart-Home-Geräte zu erkennen, die mit Assistant verbunden sind.
Die Plattform sendet einen IDENTIFY
-Intent, um festzustellen, ob das Gerät lokal gesteuert werden kann. Dazu wird die Geräte-ID in der IDENTIFY
-Antwort mit den IDs verglichen, die in der vorherigen SYNC
-Antwort zurückgegeben wurden. Wenn das erkannte Gerät ein Hub oder eine Bridge ist, sendet die Plattform einen REACHABLE_DEVICES
-Intent und behandelt den Hub als Proxygerät für die lokale Kommunikation.
Wenn die Plattform eine Antwort erhält, die ein lokales Gerät bestätigt, wird ein lokaler Pfad für die Auftragsausführung zum Google Home- oder Google Nest-Gerät des Nutzers eingerichtet und Nutzerbefehle werden anschließend für die lokale Auftragsausführung weitergeleitet.
Wenn ein Nutzer eine Cloud-to-cloud-Integration mit einem Pfad für die lokale Ausführung auslöst, sendet Assistant den Intent EXECUTE
oder QUERY
an das Google Home- oder Google Nest-Gerät und nicht an die Cloud-Ausführung. Das Gerät führt dann die lokale Fulfillment-App aus, um den Intent zu verarbeiten.
Die Local Home-Plattform ist nicht deterministisch bei der Auswahl des Google Home- oder Google Nest-Geräts, das den Befehl auslösen soll. Die Intents EXECUTE
und QUERY
können über jedes Google Home- oder Google Nest-Gerät gesendet werden, das in derselben Home Graph-Struktur wie das Zielgerät definiert ist.
App für die lokale Ausführung
Die App für die lokale Ausführung enthält die Geschäftslogik für die Verarbeitung der von der Local Home-Plattform gesendeten Intents und den Zugriff auf Ihr Smart-Home-Gerät über das lokale Netzwerk. Für die Integration der lokalen Abwicklung ist keine Änderung Ihrer Hardware erforderlich. Die App erfüllt Cloud-to-cloud-Integrationsanfragen, indem sie Steuerbefehle über Protokolle der Anwendungsschicht wie HTTP, TCP oder UDP an das Smart-Home-Gerät sendet. Wenn der lokale Ausführungspfad fehlschlägt, wird die Cloud-Ausführung als Fallback-Ausführungspfad verwendet.
Das Local Home SDK bietet die folgenden beiden Hauptklassen, um die Entwicklung der App zu unterstützen:
DeviceManager
: Bietet Methoden zur Kommunikation mit Smart-Home-Geräten über TCP-, UDP-Sockets oder HTTP-Anfragen.App
: Stellt Methoden zum Anhängen von Handlern für Intents bereit, die Google nach dem Erkennen lokal steuerbarer Geräte (IDENTIFY
,REACHABLE_DEVICES
) sendet. Diese Klasse führt auch Nutzerbefehle (EXECUTE
) aus und beantwortet Nutzeranfragen zum aktuellen Gerätestatus (QUERY
).
Während der Entwicklung können Sie die App erstellen und testen, indem Sie sie auf Ihren eigenen Hosting-Server oder Ihren lokalen Entwicklungscomputer laden. In der Produktionsumgebung hostet Google Ihre App in einer sicheren JavaScript-Sandbox-Umgebung auf dem Google Home- oder Google Nest-Gerät des Nutzers.
Die Report State API wird derzeit nicht für die lokale Ausführung unterstützt. Google nutzt Ihr Cloud-Fulfillment, um diese Anfragen zu verarbeiten.
Anwendungslebenszyklus
Ihre lokale Fulfillment-App wird bei Bedarf geladen, wenn die Local Home-Plattform neue lokale Geräte erkennt, die der Scan-Konfiguration des Projekts entsprechen, oder wenn ausstehende Intents für ein zuvor identifiziertes Gerät vorhanden sind.
Google Home- oder Google Nest-Geräte haben nur begrenzten Arbeitsspeicher. Ihre lokale Fulfillment-App kann jederzeit aufgrund von Arbeitsspeicherproblemen im System beendet werden. Das kann passieren, wenn Ihre App zu viel Arbeitsspeicher belegt oder das System Platz für eine andere App schaffen muss. Die Local Home-Plattform startet Ihre App nur dann neu, wenn neue Intents zugestellt werden müssen und genügend Arbeitsspeicher für die Ausführung der App vorhanden ist.
Die Local Home-Plattform entlädt deine App nach einem Leerlauf-Zeitlimit, wenn der Nutzer die Verknüpfung seines Kontos aufhebt oder keine Geräte mehr vorhanden sind, die die lokale Ausführung unterstützen und mit dem agentUserId
des Nutzers verknüpft sind.
Unterstützte Geräte
Auf der Local Home-Plattform wird Ihre lokale Fulfillment-App auf unterstützten Google Home- oder Google Nest-Geräten ausgeführt. In der folgenden Tabelle werden die unterstützten Geräte und die auf den einzelnen Geräten verwendete Laufzeit beschrieben. Weitere Informationen zu Laufzeitanforderungen finden Sie unter Ausführungsumgebung.
Gerät | Typ | Umgebung |
---|---|---|
Google Home | Lautsprecher | Chrome |
Google Home Mini | Lautsprecher | Chrome |
Google Home Max | Lautsprecher | Chrome |
Nest Mini | Lautsprecher | Chrome |
Nest Hub | Display | Chrome |
Nest Hub Max | Display | Chrome |
Nest Wifi | Router | Node.js |
Punkt | Chrome |
Ausführungsumgebung
Die Ausführungsumgebung für Ihre lokale Fulfillment-App hängt von Ihrem Gerät ab. Die Local Home-Plattform unterstützt die folgenden Laufzeitumgebungen:
- Chrome: Ihre lokale Fulfillment-App wird im Kontext eines Chrome-Browsers
window
ausgeführt, auf dem Chrome M80 oder höher mit Unterstützung für ECMAScript-Version ES2018 ausgeführt wird. - Node.js: Ihre lokale Ausführungs-App wird als Skript in einem Node.js-Prozess ausgeführt, in dem Node v10.x LTS oder höher mit Unterstützung für ECMAScript-Version ES2018 ausgeführt wird.
Struktur des Quellcodes
Wir empfehlen, Ihre Abhängigkeiten mit den vom Local Home SDK bereitgestellten Bundler-Konfigurationen in einer einzigen JavaScript-Datei zu bündeln und Ihren Quellcode als Immediately-invoked Function Expression (IIFE) zu verpacken.
Vorgehensweise bei der Implementierung
Wenn Sie das Local Home SDK für Ihre Smart-Home-Integration verwenden möchten, müssen Sie die folgenden Aufgaben ausführen:
1 | Scankonfiguration einrichten | Konfiguriere die Google Home Developer Console mit den erforderlichen Parametern, damit Assistant lokal steuerbare Geräte erkennen kann. |
2 | SYNC-Antwort in der Cloud-Ausführung aktualisieren | Ändern Sie in Ihrem Cloud-Fulfillment den Anfrage-Handler SYNC , um das Feld
otherDeviceIds zu unterstützen, das von der Plattform verwendet wird, um einen lokalen Fulfillment-Pfad einzurichten. Geben Sie in diesem Feld die IDs der Geräte an, die lokal gesteuert werden können.
|
3 | App für die lokale Auftragsausführung implementieren | Verwende das Local Home SDK, um eine JavaScript-App zu erstellen, die die Intents IDENTIFY ,
EXECUTE und
QUERY verarbeitet. Bei Hub- oder Bridge-Proxy-Geräten sollten Sie auch den Intent REACHABLE_DEVICES verarbeiten.
|
4 | App testen und Fehler beheben | Testen Sie Ihre Integration (oder führen Sie eine Selbstzertifizierung durch) mit der Google Home Test Suite. |
Hinweis
- Machen Sie sich mit den Grundlagen des Erstellens einer Cloud-to-cloud-Integration vertraut.
- Prüfe, ob du im Google Home Developer Console ein Smart-Home-Projekt hast und die Kontoverknüpfung konfiguriert ist.
- Achte darauf, dass du auf deinem Testgerät in der Developer Console und in Assistant mit demselben Google-Konto angemeldet bist.
- Sie benötigen eine Node.js-Umgebung, um Ihre App zu schreiben. Für die Installation von Node.js und npm wird der Node Version Manager empfohlen.
- Wenn Sie die neueste Version des Local Home SDK verwenden möchten, müssen Sie Ihre Testgeräte für das Cast Preview-Programm registrieren.