Willkommen beim Google Home Developer Center, der neuen Anlaufstelle für Smart-Home-Aktionen. Hinweis:Sie erstellen weiterhin Aktionen in der Actions Console.

Lokale Auftragsausführung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Das Local Home SDK verbessert die Integration von Smart Home in Google Assistant. Dazu wird ein Pfad für die lokale Auftragsausführung hinzugefügt, um Smart Home-Intents weiterzuleiten.

Mit dem SDK können Sie eine lokale Auftragsausführungs-App mit TypeScript oder JavaScript erstellen, die die Geschäftslogik Ihres Smart Homes enthält. Google Home- oder Google Nest-Geräte können deine 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 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 unterstützt, mit Ausnahme von Geräten, für die die sekundäre Nutzerbestätigung verwendet wird.

Jetzt loslegen Beispiel ansehen

Funktionsweise

Nachdem Sie von Ihrer Cloud-Auftragsausführung eine SYNC-Antwort erhalten haben, scannt die lokale Startseite das lokale Netzwerk des Nutzers mit mDNS, UDP-Broadcast oder UPnP, um Smart-Home-Geräte zu finden, die mit Assistant verbunden sind.

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 früheren SYNC-Antwort zurückgegebenen verglichen. Wenn das erkannte Gerät ein Hub oder eine Brücke ist, sendet die Plattform den Intent REACHABLE_DEVICES und behandelt den Hub als Proxygerät für die lokale Kommunikation.

Wenn die Antwort ein lokales Gerät bestätigt, wird ein lokaler Auftragsausführungspfad zum Google Home- oder Google Nest-Gerät des Nutzers eingerichtet. Anschließend werden die Nutzerbefehle für die lokale Auftragsausführung weitergeleitet.

Wenn ein Nutzer eine Smart-Home-Aktion mit einem lokalen Pfad für die Auftragsausführung 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 Anwendung für die Auftragsausführung aus, um den Intent zu verarbeiten.

Diese Abbildung zeigt den Ausführungsablauf für die lokale Auftragsausführung. Der Ausführungspfad erfasst den Intent eines Nutzers auf einem Smartphone mit Google Assistant. Dieser wird dann von Google Cloud verarbeitet, dann lokal auf dem Google Home-Gerät ausgeführt und der Befehl wird direkt an den Geräte-Hub oder direkt an das Gerät gesendet. Die Entwickler-Cloud ist als Cloud-Fallback verfügbar.
Abbildung 1: Einen lokalen Auftragsausführungspfad für deine Smart-Home-Aktion hinzufügen

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 erfolgen, das in derselben Home Graph-Struktur wie das Zielgerät definiert ist.

Lokale App für die 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 Local Area Network zuzugreifen. Für die lokale Auftragsausführung wird keine Änderung Ihrer Hardware erwartet. Die App erfüllt die Smart-Home-Aktionsanfragen durch Senden von Steuerbefehlen an das Smart-Home-Gerät über Protokolle auf Anwendungsebene, darunter HTTP, TCP oder UDP. Falls der lokale Pfad für die Auftragsausführung fehlschlägt, wird die Auftragsausführung in der Cloud als Fallback-Ausführungspfad verwendet.

Das Local Home SDK bietet zwei Hauptklassen für die Entwicklung der App:

  • 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 dem Erkennen 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. Laden Sie sie dazu auf Ihren eigenen Hostserver oder auf einen lokalen Entwicklungscomputer. 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 für die lokale Auftragsausführung nicht unterstützt. Google nutzt Ihre Auftragsausführung in der Cloud, um diese Anfragen zu verarbeiten.

Anwendungslebenszyklus

Ihre App für die lokale Auftragsausführung wird on demand geladen, wenn die lokale Startseite neue lokale Geräte erkennt, die der Konfiguration des Projektscans entsprechen, oder ausstehende Intents im Zusammenhang mit einem zuvor identifizierten Gerät bereitstellen muss.

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 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 bereitgestellt werden und genügend Arbeitsspeicherressourcen zur Ausführung der App vorhanden sind.

Die Local Home-Plattform 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 Ausführung, die mit dem agentUserId des Nutzers verknüpft ist, 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
Zugangspunkt Chrome

Ausführungsumgebung

Die Ausführungsumgebung Ihrer lokalen Anwendung zur Auftragsausführung hängt von Ihrem Gerät ab. Die Local Home-Plattform unterstützt die folgenden Laufzeitumgebungen:

  • Chrome: Ihre lokale Anwendung für die Auftragsausführung wird im Zusammenhang mit dem Chrome-Browser window ausgeführt, auf dem Chrome M80 oder höher mit der ECMAScript-Version ES2018 ausgeführt wird.
  • Node.js: Ihre lokale Anwendung für die Auftragsausführung wird als Skript in einem Node.js-Prozess ausgeführt, auf dem Node v10.x LTS oder höher mit Unterstützung für ECMAScript Version ES2018 ausgeführt wird.

Struktur des Quellcodes

Wir empfehlen, deine Abhängigkeiten mithilfe der Bundle-Konfigurationen, die vom Local Home SDK zur Verfügung gestellt werden, in einer einzigen JavaScript-Datei zu bündeln und deinen Quellcode als Immediately-Invooked Functions Expression (IIFE) zu packen.

Vorgehensweise bei der Implementierung

So verwenden Sie das Local Home SDK für Ihre Smart-Home-Integration:

1 Scankonfiguration einrichten Konfigurieren Sie die Actions Console mit den erforderlichen Parametern, damit Assistant lokal steuernde Geräte erkennen kann.
2 SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren Ändern Sie in der Cloud-Auftragsausführung den Anfrage-Handler SYNC, um das Feld otherDeviceIds zu unterstützen, mit dem die Plattform einen lokalen Pfad für die Auftragsausführung erstellt. Geben Sie in diesem Feld die IDs der Geräte an, die lokal gesteuert werden können.
3 Lokale Anwendung für die Auftragsausführung implementieren Verwende das Local Home SDK, um eine JavaScript-Anwendung zur Verarbeitung der Intents IDENTIFY, EXECUTE und QUERY zu erstellen. Für Hub- oder Bridge-Proxygeräte sollten Sie auch den Intent REACHABLE_DEVICES verarbeiten.
4 App testen und Fehler beheben Teste deine Integration (oder selbst zertifizieren) mithilfe der Google Home Test Suite.

Hinweis