Intencje związane z inteligentnym domem to proste obiekty do przekazywania komunikatów, które opisują działanie smart home, np. włączenie światła lub przesyłanie dźwięku na głośnik.
Wszystkie intencje smart home są zawarte w przestrzeni nazw action.devices
i musisz dla nich zapewnić realizację. Za każdym razem, gdy Google Assistant wysyła intencję do realizacji, zewnętrzny token dostępu OAuth 2 użytkownika jest przekazywany w nagłówku Autoryzacja.
Oto obsługiwane intencje smart home:
SYNC
Intencja action.devices.SYNC
służy do wysyłania żądania listy smart home urządzeń, które użytkownik połączył i są dostępne do użycia.
Gdy użytkownik skonfiguruje swoje urządzenia za pomocą Google Home app (GHA), zostanie też uwierzytelnione w Twojej infrastrukturze w chmurze. Następnie Assistant otrzymuje token OAuth2. W tym momencie Assistant wysyła do Twojej realizacji intencję action.devices.SYNC
, aby pobrać początkową listę urządzeń i możliwości użytkownika z Twojej infrastruktury w chmurze.
![Ten rysunek pokazuje interakcję między infrastrukturą Google a infrastrukturą partnera. W infrastrukturze Google znajduje się lista partnerów dostępna dla aplikacji klienckiej Asystenta, która jest następnie przekazywana do infrastruktury partnera w celu przeprowadzenia uwierzytelniania OAuth. Uwierzytelnianie OAuth po stronie partnera obejmuje konfigurację WebView partnera, komponent OAuth WebView, opcjonalne ustawienia i warunki korzystania z usług oraz usługi w chmurze partnera. infrastruktura partnera, a następnie zwraca dane logowania OAuth do aplikacji klienckiej Asystenta. Usługi w chmurze partnera wysyłają dostępne urządzenia i funkcje do usług Asystenta, które następnie zapisują te informacje w Home Graph.](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome001.png?authuser=0&hl=pl)
Aby uniknąć rozłączania i ponownego łączenia kont użytkownika, możesz wysłać do usługi Assistant prośbę o synchronizację. Powoduje to wysłanie do Twojej realizacji intencji action.devices.SYNC
, aby zsynchronizować listę urządzeń i funkcji. Więcej informacji znajdziesz w artykule o wdrażaniu synchronizacji żądań.
![Schemat procesu intencji SYNC](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome002.png?authuser=0&hl=pl)
Podczas konfiguracji realizacji lokalnej platforma Local Home sprawdza odpowiedź SYNC
z Twojej realizacji akcji smart home w chmurze. Więcej informacji o modyfikowaniu odpowiedzi SYNC
na potrzeby lokalnej realizacji znajdziesz w artykule Aktualizowanie odpowiedzi SYNC w ramach realizacji w chmurze.
ZAPYTANIE
Intencja action.devices.QUERY
jest używana 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, np. OK Google, jakie światła są włączone w kuchni?,
Assistant wysyła intencję action.devices.QUERY
do Twojej realizacji.
![Diagram przepływu intencji QUERY](https://developers.home.google.com/static/cloud-to-cloud/primer/images/query-diagram.png?authuser=0&hl=pl)
Aby zadbać o jak najlepsze wrażenia użytkowników, zaimplementuj stan raportu, który będzie aktywnie przekazywać informacje o bieżącym stanie urządzeń użytkownika bezpośrednio do Google Home Graph. Dzięki temu Assistant będzie na przykład wiedzieć, czy użytkownik włączył inteligentne oświetlenie za pomocą fizycznego przełącznika światła.
![Raportowanie stanu urządzenia za pomocą stanu raportu](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome004.png?authuser=0&hl=pl)
WYKONAJ
Intencja action.devices.EXECUTE
służy do dostarczania poleceń do wykonania na urządzeniach z systemem smart home.
Gdy użytkownicy wysyłają polecenia do urządzeń z funkcją Assistant, realizacja otrzymuje intencję action.devices.EXECUTE
do realizacji zamówienia, która opisuje działanie i urządzenia, na których ma on działać. Użytkownik może wykonać działanie na urządzeniu za pomocą polecenia takiego jak OK Google, włącz światło w salonie.
![Diagram przepływu intencji EXECUTE](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome003.png?authuser=0&hl=pl)
ODŁĄCZ
Aktywowana jest intencja action.devices.DISCONNECT
informująca o tym, że użytkownik odłączył konto aplikacji od konta Assistant.
Po otrzymaniu intencji action.devices.DISCONNECT
nie zgłaszaj stanu urządzeń tego użytkownika.