Przeznaczenie

Intencje inteligentnego domu to proste obiekty wiadomości, które opisują jakie Cloud-to-cloud integracje mają zostać wykonane, np. włączenie światła lub przesyłanie dźwięku do głośnika.

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

Oto obsługiwane smart home intencje:

SYNC

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

Gdy użytkownik konfiguruje urządzenia w aplikacji Google Home app (GHA), jest też uwierzytelniany w Twojej infrastrukturze w chmurze. Następnie, Assistant otrzymuje token OAuth2. W tym momencie, Assistant wysyła intencję action.devices.SYNC do Twojej realizacji, aby pobrać początkową listę urządzeń i funkcji użytkownika z Twojej infrastruktury w chmurze.

Ilustracja przedstawia interakcję między infrastrukturą Google a infrastrukturą partnera. Z infrastruktury Google do aplikacji klienta Asystenta jest przesyłana lista partnerów, która następnie trafia do infrastruktury partnera w celu ukończenia uwierzytelniania OAuth. Uwierzytelnianie OAuth po stronie partnera obejmuje widok internetowy konfiguracji partnera, widok internetowy OAuth, ustawienia i warunki opcjonalne 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.
Rysunek 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 Twojej realizacji, aby zsynchronizować listę urządzeń i funkcji. Więcej informacji znajdziesz w artykule Implementowanie prośby o synchronizację.

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 inteligentnego domu. Więcej informacji o tym, jak zmodyfikować odpowiedź SYNC, aby obsługiwała realizację lokalną, znajdziesz w artykule Aktualizowanie odpowiedzi SYNC w realizacji w chmurze.

QUERY

Intencja action.devices.QUERY służy do sprawdzania bieżącego stanu urządzeń smart home.

Gdy użytkownicy sprawdzają stan urządzenia, aby odpowiedzieć na pytanie takie jak OK Google, jakie światła są włączone w kuchni?, Assistant wysyła intencję action.devices.QUERY do Twojej realizacji.

Schemat blokowy intencji QUERY
Rysunek 3. Intencja QUERY

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

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

EXECUTE

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ń za pomocą Assistant, Twoja realizacja 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 takiego jak OK Google, włącz światło w salonie.

Schemat blokowy intencji EXECUTE
Rysunek 5. Intencja EXECUTE

DISCONNECT

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.