Intents

Smart-Home-Intents sind einfache Messaging-Objekte, die beschreiben, welche Cloud-to-cloud-Integration ausgeführt werden soll, z. B. das Einschalten einer Lampe oder das Streamen von Audio auf einen Lautsprecher.

Alle smart home-Intents sind im Namespace action.devices enthalten und Sie müssen die Ausführung für sie bereitstellen. Immer wenn Google Assistant einen Intent an die Ausführung sendet, wird das OAuth 2-Zugriffstoken eines Nutzers von Drittanbietern im Autorisierungsheader übergeben.

Folgende smart home-Intents werden unterstützt:

SYNCHRONISIEREN

Mit dem Intent action.devices.SYNC wird die Liste der smart home-Geräte angefordert, die der Nutzer verbunden hat und die verwendet werden können.

Wenn ein Nutzer seine Geräte mit Google Home app (GHA) einrichtet, wird er auch für Ihre Cloud-Infrastruktur authentifiziert. Anschließend erhält Assistant ein OAuth2-Token. An diesem Punkt sendet Assistant einen action.devices.SYNC-Intent an Ihr Fulfillment, um die erste Liste der Nutzergeräte und ‑funktionen aus Ihrer Cloudinfrastruktur abzurufen.

Diese Abbildung zeigt die Interaktion zwischen der Google-Infrastruktur und der Partnerinfrastruktur. Über die Google-Infrastruktur wird eine Liste von Partnern an die Assistant-Client-App gesendet, die dann an die Partnerinfrastruktur weitergeleitet wird, um die OAuth-Authentifizierung abzuschließen. Die OAuth-Authentifizierung auf Partnerseite umfasst die Partner-Einrichtungs-Webview, die OAuth-Webview, optionale Einstellungen und Nutzungsbedingungen sowie Partner-Clouddienste. Die Partnerinfrastruktur gibt die OAuth-Anmeldedaten dann an die Assistant-Client-App zurück. Die Partner-Clouddienste senden verfügbare Geräte und Funktionen an die Assistant-Dienste, die die Informationen dann im Home Graph speichern.
Abbildung 1: Interaktion zwischen der Infrastruktur von Google und der des Partners

Um die Verknüpfung eines Nutzerkontos nicht aufheben und wiederherstellen zu müssen, können Sie eine Synchronisierungsanfrage an Assistant senden. Dadurch wird der Intent action.devices.SYNC an deinen Fulfillment-Endpunkt gesendet, um die Liste der Geräte und Funktionen zu synchronisieren. Weitere Informationen finden Sie unter Request Sync implementieren.

Flussdiagramm für eine SYNC-Absicht
Abbildung 2: SYNC-Intent

Bei der Einrichtung der lokalen Auftragsausführung prüft die Local Home-Plattform die SYNC-Antwort der Cloud-Auftragsausführung Ihrer smart home-Aktion. Weitere Informationen dazu, wie Sie Ihre SYNC-Antwort für die Unterstützung der lokalen Auftragsausführung ändern, finden Sie unter SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren.

ABFRAGE

Mit dem Intent action.devices.QUERY wird der aktuelle Status von smart home-Geräten abgefragt.

Wenn Nutzer den Gerätestatus abfragen, um eine Frage wie Hey Google, welche Lampen sind in der Küche an? zu beantworten, Assistant sendet einen action.devices.QUERY-Intent an Ihren Fulfillment-Dienst.

Flussdiagramm für einen QUERY-Intent
Abbildung 3: QUERY-Intention

Für eine optimale Nutzerfreundlichkeit sollten Sie Status melden implementieren, um den aktuellen Status der Geräte eines Nutzers proaktiv direkt an Google Home Graph zu melden. So kann Assistant beispielsweise erkennen, ob Ihr Nutzer ein Smart Light mit einem physischen Lichtschalter eingeschaltet hat.

Gerätestatus mit „Report State“ melden
Abbildung 4: Gerätestatus melden

EXECUTE

Der Intent action.devices.EXECUTE wird verwendet, um Befehle für die Ausführung auf smart home-Geräten bereitzustellen.

Wenn Nutzer Befehle an Geräte mit Assistant senden, empfängt dein Fulfillment einen action.devices.EXECUTE-Intent, der die Aktion und die Geräte beschreibt, auf die sich die Aktion bezieht. Ein Nutzer kann eine Aktion auf einem Gerät mit einem Befehl wie Hey Google, schalte das Licht im Wohnzimmer ein ausführen.

Flussdiagramm für eine EXECUTE-Intention
Abbildung 5: EXECUTE-Intent

VERBINDUNG TRENNEN

Der Intent action.devices.DISCONNECT wird ausgelöst, um Sie darüber zu informieren, wenn ein Nutzer die Verknüpfung des App-Kontos mit Assistant aufgehoben hat. Nachdem du einen action.devices.DISCONNECT-Intent erhalten hast, solltest du keinen Status für die Geräte dieses Nutzers melden.