Przeznaczenie

Intencje inteligentnego domu to proste obiekty wiadomości, które opisują, jaką integrację Cloud-to-cloud należy wykonać, np. włączyć światło lub przesłać dźwięk na głośnik.

Wszystkie intencje smart home znajdują się w przestrzeni nazw action.devices i musisz zapewnić ich realizację. Za każdym razem, gdy usługa Google Assistant wysyła intencję do realizacji, token dostępu OAuth 2.0 użytkownika jest przekazywany w nagłówku Authorization.

Oto obsługiwane smart homeintencje:

SYNC

Intencja action.devices.SYNC służy do wysyłania prośby o listę urządzeńsmart home, które użytkownik podłączył i które są dostępne do użycia.

Gdy użytkownik skonfiguruje urządzenia za pomocą Google Home app (GHA), zostanie też uwierzytelniony w Twojej infrastrukturze chmurowej. Następnie Assistant otrzymuje token OAuth2. W tym momencie usługa Assistant wysyła do Twojej usługi action.devices.SYNC intencję, aby pobrać z infrastruktury w chmurze początkową listę urządzeń i możliwości użytkownika.

Ilustracja przedstawia interakcję między infrastrukturą Google a infrastrukturą partnera. W infrastrukturze Google znajduje się lista partnerów dostępna dla aplikacji klienta Asystenta, która następnie jest przekazywana do infrastruktury partnera w celu ukończenia uwierzytelniania OAuth. Uwierzytelnianie OAuth po stronie partnera obejmuje widok internetowy konfiguracji partnera, widok internetowy OAuth, opcjonalne ustawienia i warunki oraz usługi w chmurze partnera. Infrastruktura partnera zwraca dane logowania OAuth do aplikacji klienta Asystenta. Usługi w chmurze partnera wysyłają dostępne urządzenia i funkcje do usług Asystenta, które następnie przechowują te informacje w Home Graph.
Ilustracja 1. Interakcja między infrastrukturą Google a infrastrukturą partnera

Aby uniknąć odłączania i ponownego łączenia konta użytkownika, możesz wysłać prośbę o synchronizację do Assistant. Spowoduje to wysłanie intencji action.devices.SYNC do usługi, aby zsynchronizować listę urządzeń i możliwości. Więcej informacji znajdziesz w artykule Implementowanie synchronizacji żądań.

Schemat blokowy intencji SYNC
Rysunek 2. Intencja SYNC

Podczas konfigurowania realizacji lokalnej platforma Local Home sprawdza odpowiedź SYNC z realizacji w chmurze działania smart home. Aby dowiedzieć się więcej o tym, jak zmodyfikować odpowiedź SYNC, aby obsługiwać lokalną realizację, przeczytaj artykuł Aktualizowanie odpowiedzi SYNC w przypadku realizacji w chmurze.

ZAPYTANIE

Intencja action.devices.QUERY służy do wysyłania zapytań o bieżący stan urządzeń smart home.

Gdy użytkownicy pytają o stan urządzenia, aby uzyskać odpowiedź na pytanie w rodzaju Hej Google, jakie światła są włączone w kuchni?. Assistant wysyła intencję action.devices.QUERY do Twojej usługi.

Schemat blokowy intencji QUERY
Rysunek 3. Intencja ZAPYTANIA

Aby zapewnić użytkownikom jak najlepsze wrażenia, zaimplementuj funkcję Report State, która będzie proaktywnie raportować bieżący stan urządzeń użytkownika bezpośrednio do Google Home Graph. Na przykład dzięki temu Assistant wie, czy użytkownik włączył inteligentne oświetlenie za pomocą fizycznego włącznika światła.

Raportowanie stanu urządzenia za pomocą funkcji Report State
Rysunek 4. Raportowanie stanu urządzenia

WYKONAJ

Intencja action.devices.EXECUTE służy do przekazywania poleceń do wykonania na urządzeniach smart home.

Gdy użytkownicy wysyłają polecenia do urządzeń z Assistant, Twoja usługa realizująca otrzymuje intencję action.devices.EXECUTE, która opisuje działanie i urządzenia, na których ma zostać wykonane. Użytkownik może wykonać działanie na urządzeniu za pomocą polecenia, np. OK Google, włącz światło w salonie.

Schemat blokowy intencji EXECUTE
Rysunek 5. INTENCJA WYKONANIA

ODŁĄCZ

Intencja action.devices.DISCONNECT jest wywoływana, aby poinformować Cię, gdy użytkownik odłączy konto aplikacji od Assistant. Po otrzymaniu intencji action.devices.DISCONNECT nie należy zgłaszać stanu urządzeń tego użytkownika.