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 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.

Diese Abbildung zeigt den Ausführungsablauf für die lokale Auftragsausführung. Der Ausführungspfad erfasst die Absicht eines Nutzers über ein Smartphone mit Google Assistant. Der Nutzer-Intent 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: Pfad für die lokale Auftragsausführung für die Smart-Home-Aktion hinzufügen

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:

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