Przeznaczenie

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.
Rysunek 1. Interakcja między Google a infrastrukturą partnerską

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
Rysunek 2. Intencja SYNCHRONIZACJI

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
Rysunek 3. Intencja QUERY

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
Rysunek 4. Raportowanie stanu urządzenia

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
Rysunek 5. WYKONAJ intencję

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.