Das Local Home SDK verbessert die Smart-Home-Integration mit Google Assistant, indem es einen Pfad für die lokale Auftragsausführung zum Weiterleiten von Smart-Home-Intents hinzufügt.
Mit dem SDK können Sie eine lokale Auftragsausführungs-App mit TypeScript oder JavaScript schreiben, die Ihre Smart-Home-Geschäftslogik enthält. Ihre App kann von Google Home- oder Google Nest-Geräten auf dem Gerät geladen und ausgeführt werden. Ihre App kommuniziert direkt über WLAN in einem LAN (Local Area Network) mit Ihren vorhandenen Smart-Home-Geräten, um Nutzerbefehle über vorhandene Protokolle auszuführen.
Die Integration des SDK bietet Leistungsverbesserungen für deine Smart-Home-Aktion, einschließlich geringerer Latenz und höherer Zuverlässigkeit. Die lokale Auftragsausführung wird für alle Gerätetypen und Gerätemerkmale unterstützt, mit Ausnahme von Geräten, für die die sekundäre Nutzerbestätigung verwendet wird.
Mit dem Erstellen beginnen Beispiel ausprobieren
Funktionsweise
Nachdem die Cloud-Auftragsausführung eine SYNC
-Antwort erhalten hat, scannt die Local Home-Plattform das Local Area Network des Nutzers mithilfe von mDNS, UDP Broadcast oder UPnP, um Smart-Home-Geräte zu finden, 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 der früheren SYNC
-Antwort verglichen. 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 sie eine Antwort zur Bestätigung eines lokalen Geräts erhält, erstellt die Plattform einen lokalen Auftragsausführungspfad zum Google Home- oder Google Nest-Gerät des Nutzers und leitet anschließend Nutzerbefehle zur lokalen Auftragsausführung weiter.
Wenn ein Nutzer eine Smart-Home-Aktion mit einem lokalen Ausführungspfad auslöst, sendet Assistant den Intent EXECUTE
oder QUERY
an das Google Home- oder Google Nest-Gerät statt an die Cloud-Auftragsausführung. Das Gerät führt dann die lokale Auftragsausführungs-App aus, um den Intent zu verarbeiten.

Die Local Home-Plattform ist bei der Auswahl, welches Google Home- oder Google Nest-Gerät der Befehl auslöst, nicht deterministisch. Die Intents EXECUTE
und QUERY
können von jedem Google Home- oder Google Nest-Gerät stammen, das mit derselben Home Graph-Struktur wie das Zielgerät definiert ist.
App für lokale Auftragsausführung
Die App für die lokale Auftragsausführung enthält die Geschäftslogik, um die von der Local Home-Plattform gesendeten Intents zu verarbeiten und über das Local Area Network auf Ihr Smart-Home-Gerät zuzugreifen. Für die lokale Auftragsausführung sind keine Änderungen der Hardware zu erwarten. Die App führt Smart-Home-Aktionsanfragen durch, indem sie Steuerbefehle über Protokolle auf Anwendungsebene, einschließlich HTTP, TCP oder UDP, an das Smart-Home-Gerät sendet. Falls der lokale Auftragsausführungspfad fehlschlägt, wird die Auftragsausführung in der Cloud als Fallback-Ausführungspfad verwendet.
Um die Erstellung der App zu unterstützen, bietet das Local Home SDK die folgenden beiden Hauptklassen:
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 Erkennung lokal steuerbarer Geräte (IDENTIFY
,REACHABLE_DEVICES
) sendet. Diese Klasse führt auch Nutzerbefehle (EXECUTE
) aus und beantwortet Nutzerabfragen zum aktuellen Gerätestatus (QUERY
).
Während der Entwicklung können Sie die Anwendung erstellen und testen, indem Sie sie auf Ihren eigenen Hostingserver oder einen lokalen Entwicklungscomputer laden. In der Produktion hostet Google deine 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 Auftragsausführung unterstützt. Google benötigt zur Verarbeitung dieser Anfragen Ihre Cloud-Auftragsausführung.
Anwendungslebenszyklus
Ihre lokale Auftragsausführungs-App wird bei Bedarf geladen, wenn die Local Home-Plattform neue lokale Geräte erkennt, die der Scankonfiguration des Projekts entsprechen, oder ausstehende Lieferabsichten in Verbindung mit einem zuvor identifizierten Gerät hat.
Der Arbeitsspeicher von Google Home- und Google Nest-Geräten ist begrenzt und Ihre App für die lokale Auftragsausführung kann jederzeit aufgrund von Speicherauslastung im System beendet werden. Dies kann passieren, wenn Ihre App zu viel Arbeitsspeicher verbraucht oder das System Platz für eine andere App schaffen muss. Die Local Home-Plattform startet Ihre App nur dann neu, wenn neue Intents zur Bereitstellung vorhanden sind und genügend Arbeitsspeicherressourcen für die Ausführung der App vorhanden sind.
Die Local Home-Plattform entlädt Ihre App nach einer Zeitüberschreitung bei Inaktivität, wenn der Nutzer die Verknüpfung seines Kontos aufhebt oder keine Geräte mehr unterstützen, die die lokale Auftragsausführung unterstützen, die mit der agentUserId
des Nutzers verknüpft sind.
Unterstützte Geräte
Die Local Home-Plattform führt die App für die lokale Auftragsausführung auf unterstützten Google Home- oder Google Nest-Geräten aus. In der folgenden Tabelle werden die unterstützten Geräte und die jeweils 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 | Displaynetzwerk | Chrome |
Nest Hub Max | Displaynetzwerk | Chrome |
Nest Wifi | Router | Node.js |
Punkt | Chrome |
Ausführungsumgebung
Die Ausführungsumgebung für Ihre lokale Auftragsausführungs-App hängt von Ihrem Gerät ab. Die Local Home-Plattform unterstützt die folgenden Laufzeitumgebungen:
- Chrome: Ihre lokale Auftragsausführungs-App wird im Kontext eines Chrome-Browsers
window
ausgeführt, auf dem Chrome M80 oder höher mit Unterstützung der ECMAScript-Version ES2018 ausgeführt wird. - Node.js: Die lokale Auftragsausführungsanwendung wird als Skript in einem Node.js-Prozess ausgeführt, der Node v10.x LTS oder höher mit Unterstützung der ECMAScript-Version ES2018 ausführt.
Struktur des Quellcodes
Wir empfehlen, die Abhängigkeiten mithilfe der vom Local Home SDK bereitgestellten Bundler-Konfigurationen in einer einzigen JavaScript-Datei zu bündeln und den Quellcode als Sofort aufgerufene Funktionsausdruck (IIFE) zu verpacken.
Vorgehensweise bei der Implementierung
Wenn du das Local Home SDK für deine Smart-Home-Integration verwenden möchtest, musst du die folgenden Schritte ausführen:
1 | Scankonfiguration einrichten | Konfigurieren Sie die Actions Console mit den erforderlichen Parametern, damit Assistant lokal steuerbare Geräte erkennen kann. |
2 | SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren | Ändern Sie in der Cloud-Auftragsausführung den Anfrage-Handler SYNC so, dass das Feld
otherDeviceIds unterstützt wird, mit dem die Plattform einen lokalen Auftragsausführungspfad erstellt. 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 | Erstelle mit dem Local Home SDK eine JavaScript-App zur Verarbeitung der Intents IDENTIFY ,
EXECUTE und
QUERY . Bei Hub- oder Bridge-Proxygeräten sollten Sie auch den Intent REACHABLE_DEVICES verarbeiten.
|
4 | App testen und Fehler beheben | Teste deine Integration (oder lasse dich selbst zertifizieren) mit der Google Home Test Suite. |
Hinweis
- Mach dich mit den Grundlagen zum Erstellen einer Smart-Home-Aktion vertraut.
- Prüfen Sie in der Actions Console, ob Sie ein Smart-Home-Projekt haben und die Kontoverknüpfung konfiguriert ist.
- Achte darauf, dass du in der Actions Console und in Assistant auf deinem Testgerät mit demselben Google-Konto angemeldet bist.
- Sie benötigen eine Node.js, um die Anwendung zu schreiben. Für die Installation von Node.js und npm wird der Node Version Manager empfohlen.
- Damit du die neueste Version des Local Home SDK verwenden kannst, musst du deine Testgeräte für das Cast-Vorschauprogramm registrieren.