Przeznaczenie

Intencje dotyczące inteligentnego domu to proste obiekty służące do przesyłania wiadomości, które opisują, jakie działanie smart home ma 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 Google Assistant wysyła intencję do realizacji, zewnętrzny token dostępu OAuth 2 użytkownika jest przekazywany w nagłówku Authorization.

Oto obsługiwane intencje smart home:

SYNC

Intencja action.devices.SYNC służy do żądania listy smart home urządzeń, które użytkownik połączył i są dostępnych do użycia.

Gdy użytkownik skonfiguruje swoje urządzenia przy użyciu Google Home app (GHA), zostanie też uwierzytelniony w Twojej infrastrukturze w chmurze. Następnie Assistant otrzymuje token OAuth2. Na tym etapie Assistant wysyła do Twojej realizacji intencję action.devices.SYNC, aby pobrać początkową listę urządzeń i możliwości użytkowników z Twojej infrastruktury w chmurze.

Ten rysunek przedstawia interakcję między infrastrukturą Google a infrastrukturą partnera. W infrastrukturze Google znajduje się lista partnerów dostępnych dla aplikacji klienckiej Asystenta. Następnie jest ona przesyłana do infrastruktury partnera w celu przeprowadzenia uwierzytelniania OAuth. Uwierzytelnianie OAuth po stronie partnera obejmuje konfigurację komponentu WebView, OAuth WebView, opcjonalne ustawienia i warunki oraz usługi chmurowe partnera. Infrastruktura partnera 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ą informacje w Home Graph.
Rysunek 1. Interakcja między Google a infrastrukturą partnera

Aby uniknąć rozłączania i ponownego łączenia konta użytkownika, możesz wysłać prośbę o synchronizację do Assistant. Spowoduje to wysłanie do realizacji intencji action.devices.SYNC w celu zsynchronizowania listy urządzeń i funkcji. Więcej informacji znajdziesz w artykule o implementowaniu synchronizacji żądań.

Schemat blokowy intencji SYNC
Rys. 2. Intencja SYNC

Podczas konfiguracji realizacji lokalnej platforma lokalna strona główna sprawdza odpowiedź SYNC z realizacji transakcji smart home w chmurze. Więcej informacji o tym, jak zmodyfikować odpowiedź SYNC pod kątem obsługi lokalnej realizacji, znajdziesz w artykule Aktualizowanie odpowiedzi SYNC w realizacji w chmurze.

ZAPYTANIE

Intencja action.devices.QUERY służy do wysyłania zapytań dotyczących bieżącego stanu urządzeń smart home.

gdy użytkownicy pytają o stan urządzenia, odpowiadają na przykład na OK Google, jakie światła świecą się w kuchni?, Assistant wysyła intencję action.devices.QUERY do realizacji.

Schemat blokowy intencji QUERY
Rysunek 3. Zgodność z zamiarem ZAPYTANIA

Aby zadbać o wygodę użytkowników, warto zaimplementować stan raportu, aby aktywnie raportować bieżący stan urządzeń użytkownika bezpośrednio do usługi Google Home Graph. Dzięki temu Assistant może 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

ZREALIZUJ

Intencja action.devices.EXECUTE służy do udostępniania poleceń do wykonywania na urządzeniach z smart home.

Gdy użytkownicy wysyłają polecenia do urządzeń z Assistant, Twoja realizacja otrzymuje intencję action.devices.EXECUTE do realizacji zamówienia, która zawiera opis działania i urządzeń, na których ma wykonać działanie. Użytkownik może wykonać działanie na urządzeniu, używając polecenia, np. OK Google, włącz światło w salonie.

Schemat blokowy intencji EXECUTE
Rysunek 5. WYKONANIE

ODŁĄCZ

Intencja action.devices.DISCONNECT jest aktywowana, aby poinformować Cię o odłączeniu konta w aplikacji od konta Assistant. Po otrzymaniu intencji action.devices.DISCONNECT nie należy raportować stanu urządzeń tego użytkownika.