Intents

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

Alle smart home-Intents befinden sich im Namespace action.devices und Sie müssen eine Ausführung dafür bereitstellen. Jedes Mal, wenn Google Assistant einen Intent zur Ausführung sendet, wird das OAuth 2-Zugriffstoken eines Drittanbieters im Autorisierungsheader übergeben.

Folgende smart home-Intents werden unterstützt:

SYNCHRONISIEREN

Mit dem action.devices.SYNC-Intent wird die Liste der smart home-Geräte angefordert, die der Nutzer verbunden hat und die zur Nutzung 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 eine 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. Die Google-Infrastruktur enthält eine Liste von Partnern, die für die Assistant-Client-App verfügbar ist. Diese Liste wird dann an die Partnerinfrastruktur weitergeleitet, um die OAuth-Authentifizierung abzuschließen. Die OAuth-Authentifizierung auf Partnerseite umfasst die Webview für die Partnereinrichtung, die OAuth-Webview, optionale Einstellungen und Nutzungsbedingungen sowie Cloud-Dienste des Partners. Die Partnerinfrastruktur gibt dann die OAuth-Anmeldedaten an die Assistant-Client-App zurück. Die Cloud-Dienste des Partners senden verfügbare Geräte und Funktionen an Assistant-Dienste, die die Informationen dann im Home Graph speichern.
Abbildung 1: Interaktion zwischen Google- und Partnerinfrastruktur

Um zu vermeiden, dass die Verknüpfung des Kontos eines Nutzers aufgehoben und wiederhergestellt werden muss, kannst du eine Synchronisierungsanfrage an Assistant senden. Dadurch wird die action.devices.SYNC-Intent an die Auslieferung gesendet, um die Liste der Geräte und Funktionen zu synchronisieren. Weitere Informationen finden Sie unter Anfragesynchronisierung implementieren.

Flussdiagramm für einen SYNC-Intent
Abbildung 2: SYNC-Intent

Während der Einrichtung der lokalen Auftragsausführung prüft die Local Home-Plattform die SYNC-Antwort der Cloud-Auftragsausführung deiner smart home-Aktion. Weitere Informationen zum Ändern Ihrer SYNC-Antwort, um die lokale Auftragsausführung zu unterstützen, finden Sie unter SYNC-Antwort in der Cloud-Auftragsausführung aktualisieren.

ABFRAGE

Mit der action.devices.QUERY-Intent 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 ein action.devices.QUERY-Intent an deine Auftragsausführung.

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

Für eine optimale Nutzerfreundlichkeit solltest du Report State implementieren, um den aktuellen Status der Geräte eines Nutzers proaktiv direkt an Google Home Graph zu melden. So kann Assistant beispielsweise erkennen, ob ein Nutzer eine intelligente Glühbirne über einen physischen Lichtschalter eingeschaltet hat.

Gerätestatus mit „Status melden“ melden
Abbildung 4: Gerätestatus melden

EXECUTE

Mit der action.devices.EXECUTE-Intent können Sie Befehle für smart home-Geräte bereitstellen.

Wenn Nutzer Befehle an Geräte mit Assistant senden, wird deine Ausführung eine action.devices.EXECUTE-Intent erhalten, die die Aktion und die Geräte beschreibt, auf die sie angewendet werden soll. 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 einen EXECUTE-Intent
Abbildung 5: EXECUTE-Intent

VERBINDUNG TRENNEN

Die action.devices.DISCONNECT-Intention wird ausgelöst, um Sie darüber zu informieren, wenn ein Nutzer die Verknüpfung des App-Kontos mit Assistant aufgehoben hat. Nachdem Sie eine action.devices.DISCONNECT-Intent erhalten haben, sollten Sie den Status für die Geräte dieses Nutzers nicht melden.