Pakiet Local Home SDK ulepsza integrację inteligentnego domu z Asystentem Google, dodając lokalną ścieżkę realizacji, do której będą kierowane intencje inteligentnego domu.
Pakiet Local Home SDK udostępnia 2 funkcje: lokalne wykonywanie i lokalne zapytania.
- Lokalne wykonywanie umożliwia realizowanie poleceń przez wysyłanie
EXEC
intencji ścieżką lokalnej realizacji zamiast wywoływania interfejsu API w chmurze. Na przykład żądanie „Włącz światło” może być obsługiwane przez lokalne wykonanie. - Zapytanie lokalne umożliwia obsługę zapytań dotyczących stanu urządzenia przez wysyłanie intencji
QUERY
ścieżką realizacji lokalnej. Na przykład zapytanie lokalne zrealizuje zapytanie „Czy moje światło jest włączone?” bez wywoływania interfejsu API w chmurze.
Pakiet SDK umożliwia napisanie aplikacji do realizacji lokalnej w języku TypeScript lub JavaScript, która zawiera logikę biznesową inteligentnego domu. Urządzenia Google Home i Google Nest mogą wczytywać i uruchamiać aplikację na urządzeniu. Aplikacja komunikuje się bezpośrednio z obecnymi inteligentnymi urządzeniami przez Wi-Fi w sieci lokalnej (LAN), aby realizować polecenia użytkownika za pomocą istniejących protokołów.
Integracja pakietu SDK zwiększa wydajność integracji z Cloud-to-cloud, w tym skraca czas oczekiwania i zwiększa niezawodność. Realizacja lokalna jest obsługiwana w przypadku wszystkich typów urządzeń i ich cech, z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkownika.
Rozpocznij tworzenie Wypróbuj przykład
Jak to działa
Po otrzymaniu odpowiedzi SYNC
z usługi w chmurze platforma Local Home skanuje lokalną sieć użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby wykryć inteligentne urządzenia połączone z Asystentem.
Platforma wysyła intencję IDENTIFY
, aby sprawdzić, czy urządzenie można sterować lokalnie. W tym celu porównuje identyfikator urządzenia w odpowiedzi IDENTIFY
z identyfikatorami zwróconymi we wcześniejszej odpowiedzi SYNC
. Jeśli wykryte urządzenie jest hubem lub mostkiem, platforma wysyła intencję REACHABLE_DEVICES
i traktuje hub jako urządzenie proxy do komunikacji lokalnej.
Gdy platforma otrzyma odpowiedź potwierdzającą urządzenie lokalne, ustanawia lokalną ścieżkę realizacji do urządzenia Google Home lub Google Nest użytkownika, a następnie kieruje polecenia użytkownika do lokalnej realizacji.
Gdy użytkownik uruchomi integrację Cloud-to-cloud, która ma lokalną ścieżkę realizacji, Asystent wyśle intencję EXECUTE
lub QUERY
do urządzenia Google Home lub Google Nest zamiast do realizacji w chmurze. Urządzenie uruchamia wtedy aplikację do realizacji lokalnej, aby przetworzyć intencję.
Platforma Local Home nie określa, które urządzenie Google Home lub Google Nest ma wywołać polecenie. Intencje EXECUTE
i QUERY
mogą pochodzić z dowolnego urządzenia Google Home lub Google Nest zdefiniowanego w tej samej strukturze Home Graph co urządzenie docelowe.
Aplikacja do lokalnej realizacji zamówień
Aplikacja lokalnej realizacji zawiera logikę biznesową do przetwarzania intencji wysyłanych przez platformę Local Home i uzyskiwania dostępu do urządzenia inteligentnego za pomocą sieci lokalnej. Aby zintegrować lokalną realizację zamówień, nie musisz modyfikować sprzętu. Aplikacja realizuje żądania integracji Cloud-to-cloud, wysyłając polecenia sterujące do urządzenia inteligentnego za pomocą protokołów warstwy aplikacji, w tym HTTP, TCP lub UDP. Jeśli lokalna ścieżka realizacji zamówienia zawiedzie, jako ścieżka rezerwowa zostanie użyta realizacja zamówienia w chmurze.
Aby ułatwić tworzenie aplikacji, pakiet Local Home SDK udostępnia te 2 główne klasy:
DeviceManager
: Udostępnia metody komunikacji z urządzeniami inteligentnymi za pomocą gniazd TCP i UDP lub żądań HTTP.App
: Zawiera metody dołączania modułów obsługi intencji wysyłanych przez Google po wykryciu urządzeń sterowanych lokalnie (IDENTIFY
,REACHABLE_DEVICES
). Ta klasa realizuje też polecenia użytkownika (EXECUTE
) i odpowiada na jego pytania dotyczące bieżącego stanu urządzenia (QUERY
).
Podczas programowania możesz tworzyć i testować aplikację, wczytując ją na własny serwer hostingowy lub lokalny komputer deweloperski. W środowisku produkcyjnym Google hostuje Twoją aplikację w bezpiecznym środowisku piaskownicy JavaScript na urządzeniu Google Home lub Google Nest użytkownika.
Interfejs Report State API nie jest obecnie obsługiwany w przypadku realizacji lokalnej. Google korzysta z realizacji w chmurze, aby przetwarzać te żądania.
Cykl życia aplikacji
Lokalna aplikacja do realizacji zamówień jest wczytywana na żądanie, gdy platforma Local Home wykryje nowe urządzenia lokalne pasujące do konfiguracji skanowania projektu lub ma oczekujące intencje do dostarczenia związane z wcześniej zidentyfikowanym urządzeniem.
Urządzenia Google Home i Google Nest mają ograniczoną pamięć, a aplikacja lokalnego spełniania może zostać w każdej chwili zamknięta z powodu braku pamięci w systemie. Może się to zdarzyć, jeśli aplikacja zacznie zużywać zbyt dużo pamięci lub jeśli system będzie musiał zwolnić miejsce dla innej aplikacji. Platforma Local Home ponownie uruchamia aplikację tylko wtedy, gdy są nowe intencje do przekazania i wystarczająca ilość pamięci, aby aplikacja mogła działać.
Platforma Local Home zwalnia aplikację po upływie limitu czasu bezczynności, gdy użytkownik odłączy konto lub gdy nie ma już urządzeń obsługujących lokalną realizację zamówień powiązanych z agentUserId
użytkownika.
Obsługiwane urządzenia
Platforma Local Home uruchamia aplikację do realizacji lokalnej na obsługiwanych urządzeniach Google Home lub Google Nest. W tabeli poniżej znajdziesz listę obsługiwanych urządzeń i środowisk wykonawczych używanych na każdym z nich. Więcej informacji o wymaganiach środowiska wykonawczego znajdziesz w sekcji Środowisko wykonawcze.
Urządzenie | Typ | Środowisko |
---|---|---|
Google Home | Głośnik | Chrome |
Google Home Mini | Głośnik | Chrome |
Google Home Max | Głośnik | Chrome |
Nest Mini | Głośnik | Chrome |
Nest Hub | Wyświetlacz | Chrome |
Nest Hub Max | Wyświetlacz | Chrome |
Nest Wifi | Router | Node.js |
Punkt | Chrome |
Środowisko wykonawcze
Środowisko wykonawcze aplikacji do realizacji zamówień lokalnych zależy od urządzenia. Platforma Local Home obsługuje te środowiska wykonawcze:
- Chrome lokalna aplikacja do realizacji zamówień jest wykonywana w kontekście przeglądarki Chrome
window
w wersji Chrome M80 lub nowszej, która obsługuje ECMAScript w wersji ES2018. - Node.js lokalna aplikacja realizująca zamówienia jest wykonywana jako skrypt w procesie Node.js działającym w Node w wersji 10.x LTS lub nowszej z obsługą ECMAScript w wersji ES2018.
Struktura kodu źródłowego
Zalecamy spakowanie zależności w jednym pliku JavaScript za pomocą konfiguracji narzędzia do pakowania udostępnianych przez pakiet Local Home SDK i spakowanie kodu źródłowego jako wyrażenia funkcji wywoływanej natychmiast (IIFE).
Ścieżka implementacji
Aby używać pakietu Local Home SDK w integracji z inteligentnym domem, musisz wykonać te czynności:
1 | Skonfiguruj skanowanie | Skonfiguruj Google Home Developer Console, podając niezbędne parametry, aby Asystent mógł wykrywać urządzenia sterowane lokalnie. |
2 | Aktualizowanie odpowiedzi SYNC w realizacji w chmurze | W usłudze realizacji w chmurze zmodyfikuj
SYNC
procedurę obsługi żądań, aby obsługiwała pole
otherDeviceIds , którego platforma używa do ustalenia
lokalnej ścieżki realizacji. W tym polu podaj identyfikatory urządzeń, którymi można sterować lokalnie.
|
3 | Wdrażanie aplikacji do realizacji zamówień lokalnych | Użyj pakietu Local Home SDK, aby utworzyć aplikację w JavaScript, która będzie obsługiwać intencje IDENTIFY ,
EXECUTE i
QUERY . W przypadku urządzeń proxy typu hub lub bridge należy też obsługiwać intencję REACHABLE_DEVICES .
|
4 | Testowanie i debugowanie aplikacji | Przetestuj integrację (lub uzyskaj samodzielnie certyfikat) za pomocą pakietu testów Google Home. |
Zanim zaczniesz
- Zapoznaj się z podstawowymi informacjami na temat tworzenia Cloud-to-cloudintegracji.
- W sekcji Google Home Developer Console upewnij się, że masz projekt inteligentnego domu i że połączenie konta jest skonfigurowane.
- Sprawdź, czy na urządzeniu testowym logujesz się w Developer Console i Asystencie za pomocą tego samego konta Google.
- Do napisania aplikacji potrzebujesz środowiska Node.js. Do instalacji Node.js i npm zalecamy użycie Node Version Manager.
- Aby korzystać z najnowszej wersji pakietu Local Home SDK, musisz zarejestrować urządzenia testowe w programie Cast Preview.