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 du musst die Ausführung dafür bereitstellen. Wenn Google Assistant einen Intent an die Auftragsausführung sendet, wird das OAuth 2-Zugriffstoken eines Drittanbieters 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 zur Verwendung verfügbar sind.

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

Diese Abbildung zeigt die Interaktion zwischen der Google-Infrastruktur und der Partnerinfrastruktur. In der Google-Infrastruktur gibt es eine Liste von Partnern, die für die Assistant-Client-App verfügbar ist. Diese wird dann an die Partnerinfrastruktur weitergeleitet, um die OAuth-Authentifizierung abzuschließen. Die OAuth-Authentifizierung auf Partnerseite umfasst die Webansicht für die Partnereinrichtung, die OAuth-Webansicht, optionale Einstellungen und Bedingungen sowie die Clouddienste des Partners. Die Partnerinfrastruktur gibt dann die OAuth-Anmeldedaten 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

Wenn Sie die Verknüpfung eines Nutzerkontos nicht aufheben und wiederherstellen möchten, können Sie eine Synchronisierungsanfrage an Assistant senden. Dadurch wird der Intent action.devices.SYNC an deine Auftragsausführung gesendet, um die Liste der Geräte und Funktionen zu synchronisieren. Weitere Informationen findest du unter Request Sync implementieren.

Flussdiagramm eines SYNC-Intents
Abbildung 2: SYNC-Intent

Während der Einrichtung der lokalen Ausführung prüft die Local Home-Plattform die SYNC-Antwort der Cloud-Ausführung deiner smart home-Aktion. Weitere Informationen dazu, wie du deine SYNC-Antwort so änderst, dass die lokale Ausführung unterstützt wird, findest du unter SYNC-Antwort in der Cloud-Ausführung aktualisieren.

ABFRAGE

Der Intent action.devices.QUERY wird verwendet, um den aktuellen Status von smart home-Geräten abzufragen.

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

Flussdiagramm einer QUERY-Absicht
Abbildung 3: QUERY-Intent

Für eine optimale Nutzererfahrung solltest du Report State implementieren, um den aktuellen Status der Geräte eines Nutzers proaktiv direkt an Google Home Graph zu melden. So erfährt Assistant beispielsweise, ob der Nutzer eine smarte Lampe 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 bereitzustellen, die auf smart home-Geräten ausgeführt werden sollen.

Wenn Nutzer Befehle mit Assistant an Geräte senden, empfängt deine Auftragsausführung 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 eines EXECUTE-Intents
Abbildung 5: EXECUTE-Intent

VERBINDUNG TRENNEN

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