Das Local Home SDK verbessert die Smart-Home-Integration mit Google Assistant. Es fügt einen Pfad für die lokale Auftragsausführung hinzu, um Smart-Home-Intents weiterzuleiten.
Mit dem SDK können Sie mit TypeScript oder JavaScript eine lokale Auftragsausführungs-App schreiben, die Ihre Geschäftslogik für Smart Home enthält. Google Home- oder Google Nest-Geräte können deine App auf dem Gerät laden und ausführen. Ihre Anwendung kommuniziert über WLAN direkt in einem lokalen Netzwerk (LAN) mit Ihren vorhandenen Smart-Home-Geräten, um Nutzerbefehle über vorhandene Protokolle auszuführen.
Die Einbindung 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 mit Ausnahme derer unterstützt, die die sekundäre Nutzerbestätigung verwenden.
Mit dem Erstellen beginnen Beispiel ausprobieren
Funktionsweise
Nachdem Sie eine SYNC
-Antwort von Ihrer Cloud-Auftragsausführung erhalten haben, scannt die Local Home-Plattform das lokale Netzwerk des Nutzers mithilfe von mDNS, UDP-Broadcast oder UPnP, um mit Assistant verbundene Smart-Home-Geräte zu erkennen.
Die Plattform sendet einen IDENTIFY
-Intent, um zu bestimmen, ob das Gerät lokal steuerbar ist. Dazu wird die Geräte-ID in der IDENTIFY
-Antwort mit der von der vorherigen SYNC
-Antwort zurückgegebenen Antwort verglichen. Wenn das erkannte Gerät ein Hub oder eine Brücke ist, sendet die Plattform einen REACHABLE_DEVICES
-Intent und behandelt den Hub als Proxygerät für die lokale Kommunikation.
Wenn er eine Antwort erhält, die ein lokales Gerät bestätigt, wird auf der Plattform ein lokaler Auftragsausführungspfad zum Google Home- oder Google Nest-Gerät des Nutzers eingerichtet. Anschließend werden Nutzerbefehle für die lokale Auftragsausführung weitergeleitet.
Wenn ein Nutzer eine Smart-Home-Aktion mit einem lokalen Auftragsausführungspfad auslöst, sendet Assistant den Intent EXECUTE
oder QUERY
an das Google Home- oder Google Nest-Gerät und nicht an die Cloud-Auftragsausführung. Das Gerät führt dann die lokale Auftragsausführungs-App aus, um den Intent zu verarbeiten.

Bei der Auswahl der Google Home- oder Google Nest-Geräte, durch die der Befehl ausgelöst wird, ist die lokale Home-Plattform nicht deterministisch. Die Intents EXECUTE
und QUERY
können über alle Google Home- oder Google Nest-Geräte erfolgen, die in derselben Home Graph-Struktur wie das Zielgerät definiert sind.
App für 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 auf das Smart-Home-Gerät über das lokale Netzwerk zuzugreifen. Für die lokale Auftragsausführung ist keine Änderung Ihrer Hardware erforderlich. Die App erfüllt die Smart-Home-Aktionsanfragen durch Senden von Steuerungsbefehlen an das Smart-Home-Gerät über Protokolle auf Anwendungsebene, einschließlich HTTP, TCP oder UDP. Falls der lokale Auftragsausführungspfad fehlschlägt, wird Ihre Cloud-Auftragsausführung als Fallback-Ausführungspfad verwendet.
Zum Erstellen der App bietet das Local Home SDK zwei Hauptklassen:
DeviceManager
: Bietet Methoden zur Kommunikation mit Smart-Home-Geräten über TCP, UDP-Sockets oder HTTP-Anfragen.App
: Bietet Methoden zum Anhängen von Handlern für Intents, die Google nach der Erkennung lokal steuerbarer Geräte (IDENTIFY
,REACHABLE_DEVICES
) sendet. Diese Klasse erfüllt auch Nutzerbefehle (EXECUTE
) 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 Hosting-Server oder lokalen Rechner laden. In der Produktion 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 Auftragsausführung unterstützt. Google nutzt Ihre Cloud-Auftragsausführung, um diese Anfragen zu verarbeiten.
Anwendungslebenszyklus
Ihre lokale App für die Auftragsausführung wird bei Bedarf geladen, wenn die lokale Home-Plattform neue lokale Geräte erkennt, die mit der Konfiguration des Projektscans übereinstimmen, oder ausstehende Anfragen für ein zuvor identifiziertes Gerät hat.
Google Home- oder Google Nest-Geräte sind speichergebunden und Ihre lokale Auftragsausführungs-App kann jederzeit aufgrund von Speicherauslastung im System beendet werden. Dies kann passieren, wenn die Anwendung zu viel Arbeitsspeicher belegt oder das System Platz für eine andere Anwendung schaffen muss. Die Plattform wird auf der lokalen Startseite nur dann neu gestartet, wenn neue Intents zur Verfügung stehen und genügend Arbeitsspeicherressourcen zum Ausführen der Anwendung vorhanden sind.
Die App „Local Home“ entlädt deine App nach einer Zeitüberschreitung bei Inaktivität, wenn der Nutzer die Verknüpfung seines Kontos aufhebt oder es keine Geräte mehr gibt, die die lokale Auftragsausführung im agentUserId
des Nutzers unterstützen.
Unterstützte Geräte
Die Local Home-Plattform führt Ihre lokale App für die 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 auf den einzelnen Geräten verwendete Laufzeit beschrieben. Weitere Informationen zu Laufzeitanforderungen finden Sie unter Ausführungsumgebung.
Geräte | 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 Anwendung für die Auftragsausführung hängt vom Gerät ab. Die Local Home-Plattform unterstützt die folgenden Laufzeitumgebungen:
- Chrome: Ihre lokale App für die Auftragsausführung wird im Kontext eines Chrome-Browsers
window
mit Chrome M80 oder höher mit ECMAScript-Version ES2018 ausgeführt. - Node.js: Ihre lokale Anwendung für die Auftragsausführung wird als Skript in einem Node.js-Prozess ausgeführt, der Node v10.x LTS oder höher mit ECMAScript-Version ES2018 ausführt.
Struktur des Quellcodes
Wir empfehlen, Ihre Abhängigkeiten mithilfe der Bundler-Konfigurationen, die vom Local Home SDK zur Verfügung gestellt werden, in einer einzigen JavaScript-Datei zu bündeln und Ihren Quellcode als Immediately-Invooked Functions Expression (IIFE) zu packen.
Vorgehensweise bei der Implementierung
So können Sie das Local Home SDK für die Smart-Home-Integration verwenden:
1 | Scankonfiguration einrichten | Konfigurieren Sie die Actions Console mit den erforderlichen Parametern, damit Assistant lokal steuerbare Geräte erkennen kann. |
2 | SYNCH-Antwort in der Cloud-Auftragsausführung aktualisieren | Ändern Sie in der Cloud-Auftragsausführung den Anfrage-Handler SYNC so, dass er das Feld
otherDeviceIds unterstützt, 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 zur lokalen Auftragsausführung implementieren | Erstelle mit dem Local Home SDK eine JavaScript-App für die Intents IDENTIFY ,
EXECUTE und
QUERY . Bei Hub- oder Bridge-Proxy-Geräten sollten Sie auch den REACHABLE_DEVICES -Intent verwenden.
|
4 | App testen und Fehler beheben | Teste deine Integration mit der Google Home Test Suite (oder selbstzertifiziere). |
Hinweis
- Mach dich mit den Grundlagen zum Erstellen einer Smart-Home-Aktion vertraut.
- Prüfen Sie in der Actions Console, ob Sie bereits ein Smart-Home-Projekt haben und die Kontoverknüpfung konfiguriert ist.
- Prüfen Sie, ob Sie in der Actions Console und in Assistant auf Ihrem Testgerät mit demselben Google-Konto angemeldet sind.
- Sie benötigen eine Node.js-Umgebung, um Ihre Anwendung zu schreiben. Für die Installation von Node.js und npm wird der Node Version Manager empfohlen.
- Damit Sie die neueste Version des Local Home SDK verwenden können, müssen Sie Ihre Testgeräte für das Cast Preview-Programm registrieren.