Witamy w Google Home Developer Center – nowym miejscu, z którego dowiesz się, jak tworzyć inteligentne działania domowe. Uwaga: nadal będziesz tworzyć działania w konsoli Actions.

Przeznaczenie

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Intencje inteligentnego domu to proste obiekty komunikacyjne, które opisują działanie funkcji smart home, takie jak włączanie ś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 zapewnić dla nich realizację. Za każdym razem, gdy Google Assistant wysyła intencję do realizacji, w nagłówku autoryzacji przekazywany jest token dostępu OAuth 2 innej firmy.

Oto obsługiwane intencje smart home:

SYNC

Intencja action.devices.SYNC służy do wysyłania prośby o listę urządzeń smart home połączonych przez użytkownika i dostępnych do użytku.

Gdy użytkownik skonfiguruje urządzenia za pomocą 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 realizacji zamówienia intencję action.devices.SYNC, aby pobrać początkową listę urządzeń i możliwości użytkowników z Twojej infrastruktury chmurowej.

Ta ilustracja przedstawia interakcję między infrastrukturą Google a infrastrukturą partnera. Z infrastruktury Google dostępna jest lista partnerów, którzy są dostępni w aplikacji klienckiej Asystenta, a następnie trafiają do infrastruktury partnera, aby dokończyć uwierzytelnianie OAuth. Uwierzytelnianie OAuth po stronie partnera obejmuje komponent WebView konfiguracji partnera, komponent WebView protokołu OAuth, opcjonalne ustawienia i warunki usługi oraz usługi w chmurze partnera. Następnie infrastruktura partnera zwraca dane logowania OAuth do aplikacji klienckiej Asystenta. Usługi w chmurze partnera wysyłają do usług Asystenta dostępne urządzenia i możliwości, które zapisują informacje na wykresie głównym.
Ilustracja 1. Interakcja między infrastrukturą Google i partnerami

Aby uniknąć rozłączenia i ponownego połączenia konta użytkownika, możesz wysłać prośbę o synchronizację na adres Assistant. Wysyła intencję action.devices.SYNC do realizacji zamówienia w celu synchronizacji listy urządzeń i możliwości. Więcej informacji znajdziesz w artykule na temat wdrażania synchronizacji.

Schemat procesu intencji SYNC
Ilustracja 2. Intencja SYNC

Podczas konfigurowania lokalnej realizacji platforma lokalna sprawdza odpowiedź SYNC z realizacji w chmurze dotyczącej działania smart home. Więcej informacji o modyfikowaniu odpowiedzi SYNC w taki sposób, aby obsługiwała lokalną realizację, znajdziesz w artykule Aktualizowanie odpowiedzi SYNC w realizacji w chmurze.

QUERY

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

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

Schemat procesu intencji QUERY
Ilustracja 3. Zamiar zapytania

Dla wygody użytkowników należy wdrożyć raportowanie stanu, aby aktywnie przekazywać informacje o bieżącym stanie urządzeń użytkowników bezpośrednio do usługi 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.

Raportowanie stanu urządzenia za pomocą stanu raportu
Ilustracja 4. Raportowanie stanu urządzenia

WYKONAJ

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

Gdy użytkownicy wysyłają polecenia na urządzenia z identyfikatorem Assistant, Twoja realizacja otrzymuje intencję action.devices.EXECUTE opisującą działanie i urządzenia, na których ma zostać wykonane działanie. Użytkownik może wykonać jakieś działanie na urządzeniu za pomocą polecenia takiego jak OK Google, włącz oświetlenie w salonie.

Schemat procesu intencji EXECUTE
Ilustracja 5. Egzekwowanie intencji

ODŁĄCZ

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