Lokale Auftragsausführung

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.

Diese Abbildung zeigt den Ausführungsablauf für die lokale Auftragsausführung. Die
            erfasst die Absicht eines Nutzers auf einem Smartphone mit
            Google Assistant verwenden, wird der Nutzerabsicht
            in der Google Cloud, dann wird er lokal auf dem Google Home-Gerät
            und der Befehl wird direkt an den Geräte-Hub oder
            direkt auf dem Gerät. Die Entwickler-Cloud ist als
            Cloud-Fallback.
Abbildung 1: Lokalen Lieferpfad für Ihr Smart Home hinzufügen Aktion:

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:

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