Das Local Home SDK verbessert die Smart-Home-Integration mit Google Assistant durch Hinzufügen eines Pfads für die lokale Ausführung zur Weiterleitung Smart-Home-Intents.
Mit dem SDK können Sie mit TypeScript oder JavaScript eine lokale App für die Auftragsausführung schreiben. die Ihre Smart-Home-Geschäftslogik enthält. Google Home- oder Google Nest-Geräte können die App auf dem Gerät ausführen. Ihre App kommuniziert direkt mit Ihrem vorhandenen intelligenten über WLAN in einem Local Area Network (LAN), um Nutzerbefehle auszuführen, im Vergleich zu bestehenden Protokollen.
Die Integration des SDK sorgt für Leistungsverbesserungen bei deinem Smart Home. Maßnahme, einschließlich geringerer Latenz und höherer Zuverlässigkeit. Lokale Ausführung ist werden für alle Gerätetypen und Geräte-Traits unterstützt, mit Ausnahme derjenigen, die sekundärer Nutzer .
Jetzt loslegen Beispiel ausprobieren
Funktionsweise
Nach Erhalt einer SYNC
-Antwort
aus der Cloud-Auftragsausführung ab, scannt die Local Home-Plattform die
Local Area Network, das mithilfe von mDNS, UDP-Broadcast oder UPnP
Smart-Home-Geräte, die mit Assistant verbunden sind.
Die Plattform sendet den Intent IDENTIFY
, um festzustellen, ob das Gerät
lokal gesteuert, durch Vergleichen der Geräte-ID in der IDENTIFY
-Antwort
zu den von der früheren SYNC
-Antwort zurückgegebenen Werten. Wenn das erkannte Gerät ein
Hub oder Bridge sendet die Plattform einen REACHABLE_DEVICES
-Intent und verarbeitet den
Hub als Proxy-Gerät für die lokale Kommunikation.
Wenn sie eine Antwort zur Bestätigung eines lokalen Geräts erhält, richtet die Plattform einen lokalen Pfad für die Auftragsausführung zum Google Home- oder Google Nest-Gerät des Nutzers und anschließend Routen Nutzerbefehle für die lokale Ausführung.
Wenn ein Nutzer eine Smart-Home-Aktion auslöst,
die einen lokalen Ausführungspfad hat,
Assistant sendet die EXECUTE
oder QUERY
-Intent mit dem
Google Home- oder Google Nest-Gerät und nicht die Cloud-Ausführung. Auf dem Gerät
führt die lokale Auftragsausführungs-App aus, um den Intent zu verarbeiten.
Die Local Home-Plattform entscheidet nicht selbst darüber, welches Google Home- oder Google Nest-Gerät
den Befehl auslösen. Die Intents EXECUTE
und QUERY
können über beliebige
Google Home- oder Google Nest-Gerät, die im selben Home Graph definiert sind
Struktur als Zielgerät festlegen.
Lokale App für die Auftragsausführung
Die lokale Auftragsausführungs-App enthält die Geschäftslogik zur Verarbeitung der von der Local-Home-Plattform und greifen über das Local Area Network auf Ihr Smart-Home-Gerät zu. Es sind keine Änderungen an Ihrer Hardware für die lokale Auftragsausführung erforderlich. Die die Smart-Home-Aktionsanfragen durch Senden von Befehlen an den über Protokolle auf Anwendungsebene (einschließlich HTTP, TCP oder UDP) zu verbinden. Sollte der lokale Auftragsausführungspfad fehlschlagen, wird die Cloud-Fulfillment-Lösung verwendet. als Fallback-Ausführungspfad.
Um die Entwicklung der App zu unterstützen, bietet das Local Home SDK diese beiden Klassen:
DeviceManager
: Bietet Methoden zur Kommunikation mit Smart-Home-Geräten mithilfe von TCP-, UDP-Sockets oder HTTP-Anfragen.App
: Bietet Methoden zum Anhängen von Handlern für Intents, die von Google gesendet werden nach der Erkennung lokal steuerbarer Geräte (IDENTIFY
,REACHABLE_DEVICES
. In diesem Kurs werden auch Nutzerbefehle (EXECUTE
) ausgeführt. beantwortet Nutzeranfragen zum aktuellen Gerätestatus (QUERY
).
Während der Entwicklung können Sie die App selbst erstellen und testen, indem Sie sie laden Hostserver oder lokalen Entwicklungscomputer. In der Produktion hostet Google App in einer sicheren JavaScript-Sandbox-Umgebung auf dem Google Home- oder Google Nest-Gerät des Nutzers installieren.
Die Report State API ist wird derzeit für die lokale Ausführung nicht unterstützt. Google verlässt sich auf Ihre Cloud Fulfillment, um diese Anfragen zu verarbeiten.
Anwendungslebenszyklus
Ihre App für die lokale Auftragsausführung wird bei Bedarf geladen, wenn die Local Home-Plattform feststellt, neue lokale Geräte, die der Scankonfiguration des Projekts entsprechen oder ausstehend sind Intents, die mit einem zuvor identifizierten Gerät verknüpft sind.
Der Arbeitsspeicher von Google Home- oder Google Nest-Geräten ist begrenzt und die App für die lokale Auftragsausführung ist eingeschränkt. kann jederzeit aufgrund von Speicherauslastung im System beendet werden. Dies kann wenn Ihre App zu viel Arbeitsspeicher verbraucht oder das System um Platz für eine andere App zu schaffen. Die Local Home-Plattform startet Ihre App nur dann neu, wenn es neue Intents liefern und genügend Arbeitsspeicherressourcen für die Ausführung der App bereitstellen.
Die Local Home-Plattform entlädt Ihre App nach einer Zeitüberschreitung bei Inaktivität, wenn der Nutzer
die Verknüpfung des Kontos aufhebt oder es keine Geräte mehr gibt, die lokale
Auftragsausführung, die der agentUserId
des Nutzers zugeordnet ist.
Unterstützte Geräte
Die Local Home-Plattform führt Ihre App für die lokale Auftragsausführung auf unterstützten Google Home- oder Google Nest-Geräte. In der folgenden Tabelle werden die unterstützten Geräte und die die auf jedem Gerät verwendet wird. 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 Ihrer lokalen Auftragsausführungsanwendung hängt von der Gerät selbst auswählen. Die Local Home-Plattform unterstützt Folgendes: Laufzeitumgebungen:
- Chrome: Ihre lokale Auftragsausführungs-App wird im Kontext eines Chrome-Browsers ausgeführt.
Browser
window
mit Chrome M80 oder später mit Unterstützung für ECMAScript-Version ES2018 - Node.js: Die lokale Auftragsausführungs-App wird als Skript innerhalb eines Node.js ausgeführt. Prozess, auf dem Node v10.x ausgeführt wird LTS oder später mit Unterstützung für ECMAScript-Version ES2018.
Struktur des Quellcodes
Wir empfehlen, Ihre Abhängigkeiten mithilfe der Methode Bundler-Konfigurationen die vom Local Home SDK bereitgestellt werden, und verpacken deinen Quellcode als Sofort aufgerufener Funktionsausdruck (IIFE)
Vorgehensweise bei der Implementierung
Um das Local Home SDK für deine Smart-Home-Integration zu verwenden, musst du folgende Aufgaben ausführen:
1 | Scan einrichten konfigurieren | Konfigurieren Sie die Actions Console mit den erforderlichen Parametern für die Assistant findet lokal steuerbare Geräte. |
2 | Aktualisieren Sie die SYNC-Antwort in Ihrer Cloud-Auftragsausführung | Ändern Sie bei der Cloud-Ausführung
SYNC
-Anforderungs-Handler zur Unterstützung des
otherDeviceIds -Feld, das die Plattform zum Einrichten eines
lokalen Pfad für die Auftragsausführung. Geben Sie in diesem Feld die IDs der Geräte an, die
lokal gesteuert.
|
3 | Implementieren Sie die lokale App für Auftragsabwicklung | Verwenden Sie das Local Home SDK, um eine JavaScript-App für folgende Aktionen zu erstellen:
verarbeitet den IDENTIFY ,
EXECUTE - und
QUERY -Intents. Für Hub- oder Bridge-Proxy-Geräte sollten Sie
verarbeiten auch den Intent REACHABLE_DEVICES .
|
4 | App testen und Fehler beheben | Teste deine Integration (oder Selbstzertifizierung) mithilfe des Google Home-Test-Suite |
Hinweis
- Mach dich mit den Grundlagen der Erstellung eines Smart Homes vertraut. Aktion:
- Klicken Sie auf Aktionen ob du bereits ein Smart-Home-Projekt hast und die Kontoverknüpfung konfiguriert.
- Achten Sie darauf, dass Sie mit demselben Google-Konto angemeldet sind in der Actions Console und in Assistant auf deinem Testgerät.
- Sie benötigen ein Node.js-Skript in der Sie Ihre Anwendung schreiben. Für die Installation von Node.js und npm Knotenversion Administrator wird empfohlen.
- Um mit der neuesten Version des Local Home SDK zu arbeiten, musst du Testgeräte für Cast Preview registrieren Programm.