Pakiet Local Home SDK usprawnia integrację inteligentnego domu z Asystentem Google, dodając lokalną ścieżkę realizacji do kierowania intencji inteligentnego domu.
Pakiet SDK umożliwia napisanie lokalnej aplikacji do realizacji zamówień za pomocą skryptu TypeScript lub JavaScriptu, która będzie zawierać logikę biznesową inteligentnego domu. Urządzenia Google Home i Google Nest mogą wczytać aplikację i uruchomić ją na urządzeniu. Aplikacja komunikuje się bezpośrednio z dotychczasowymi urządzeniami przez Wi-Fi w sieci lokalnej (LAN), aby wykonywać polecenia użytkownika, korzystając z istniejących protokołów.
Integracja pakietu SDK poprawia wydajność działania inteligentnego domu, w tym mniejsze opóźnienia i większą niezawodność. Realizacja lokalna jest obsługiwana w przypadku urządzeń wszystkich typów i cech z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkowników.
Zacznij tworzyć Wypróbuj fragment
Jak to działa
Po otrzymaniu odpowiedzi SYNC
z realizacji w chmurze platforma Local Home skanuje lokalną sieć użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby wykryć urządzenia połączone z Asystentem.
Platforma wysyła intencję IDENTIFY
, aby określić, czy urządzenie można kontrolować lokalnie, porównując identyfikator urządzenia w odpowiedzi IDENTIFY
z identyfikatorem zwróconym przez wcześniejszą odpowiedź SYNC
. Jeśli wykryte urządzenie to centrum lub most, platforma wysyła intencję REACHABLE_DEVICES
i traktuje centrum jako urządzenie proxy do lokalnej komunikacji.
Gdy otrzymuje odpowiedź potwierdzającą, że urządzenie jest używane lokalnie, platforma wyznacza lokalną ścieżkę realizacji zamówień do urządzenia Google Home lub Google Nest użytkownika, a następnie przekierowuje polecenia użytkownika do lokalnej realizacji.
Gdy użytkownik aktywuje akcję w inteligentnym domu, która ma lokalną ścieżkę realizacji, Asystent wysyła intencję EXECUTE
lub QUERY
do urządzenia Google Home lub Google Nest, a nie do realizacji w chmurze. Następnie urządzenie uruchomi lokalną aplikację do realizacji intencji, aby przetworzyć intencję.
Przy wyborze urządzenia Google Home lub Google Nest, które ma uruchamiać polecenie, platforma Local Home nie jest deterministyczna. 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 do lokalnej realizacji zamówień zawiera logikę biznesową, która przetwarza intencje wysyłane przez platformę Local Home i uzyskuje dostęp do urządzenia przez sieć lokalną. Żadna modyfikacja sprzętu nie powinna być uwzględniana w lokalnej realizacji zamówień. Aplikacja realizuje żądania akcji w inteligentnym domu, wysyłając do urządzenia polecenia sterujące za pomocą protokołów warstwy aplikacji, w tym HTTP, TCP lub UDP. Jeśli lokalna ścieżka realizacji zakończy się niepowodzeniem, jako alternatywna ścieżka wykonania zostanie użyta realizację w chmurze.
Aby ułatwić tworzenie aplikacji, pakiet Local Home SDK udostępnia te 2 główne klasy:
DeviceManager
: zapewnia metody komunikowania się z urządzeniami za pomocą protokołów TCP, gniazd UDP lub żądań HTTP.App
: zapewnia metody dołączania modułów obsługi dla intencji wysyłanych przez Google po wykryciu urządzeń kontrolowanych lokalnie (IDENTIFY
,REACHABLE_DEVICES
). Ta klasa wykonuje też polecenia użytkownika (EXECUTE
) i odpowiada na ich zapytania dotyczące bieżącego stanu urządzenia (QUERY
).
W trakcie programowania możesz skompilować i przetestować aplikację, wczytując ją na własnym serwerze hostingowym lub lokalnym maszynie programowej. W wersji produkcyjnej Google hostuje aplikację w bezpiecznej piaskownicy JavaScript na urządzeniu Google Home lub Google Nest użytkownika.
Interfejs Report State API nie jest obecnie obsługiwany w realizacji lokalnej. Google przetwarza te żądania, korzystając z usług w chmurze.
Cykl życia aplikacji
Twoja aplikacja do lokalnej 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 zamiary na realizację związane ze zidentyfikowanym wcześniej urządzeniem.
Urządzenia Google Home i Google Nest mają ograniczoną pamięć, a lokalna aplikacja do realizacji zamówień może zostać w każdej chwili zamknięta z powodu zbyt dużej ilości pamięci. Może się tak zdarzyć, gdy aplikacja zacznie wykorzystywać za dużo pamięci lub system musi zrobić miejsce na kolejną aplikację. Platforma Local Home ponownie uruchamia aplikację tylko wtedy, gdy pojawią się nowe zamiary dostarczenia i uruchomienia odpowiedniej ilości pamięci.
Platforma Local Home uruchamia Twoją aplikację po upływie czasu bezczynności, gdy użytkownik odłącza swoje konto lub gdy nie ma już urządzeń obsługujących lokalną realizację zamówień powiązanych z jego agentUserId
.
Obsługiwane urządzenia
Platforma Local Home uruchamia Twoją lokalną aplikację do realizacji zamówień na obsługiwanych urządzeniach Google Home lub Google Nest. W tabeli poniżej opisujemy obsługiwane urządzenia i ich środowisko wykonawcze. Więcej informacji o wymaganiach dotyczących środowiska wykonawczego znajdziesz w artykule Środowisko wykonywania.
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 | Reklamy displayowe | Chrome |
Nest Hub Max | Reklamy displayowe | Chrome |
Nest Wifi | Router | Node.js |
Punkt | Chrome |
Środowisko wykonawcze
Środowisko wykonywania lokalnej aplikacji do realizacji zamówień 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
z systemem Chrome w wersji M80 lub nowszej z obsługą ECMAScript w wersji ES2018. - Node.js lokalna aplikacja do realizacji zamówień jest wykonywana jako skrypt w procesie Node.js z uruchomionym Node.x LTS lub nowszym z obsługą ECMAScript w wersji ES2018.
Struktura kodu źródłowego
Zalecamy grupowanie zależności w jednym pliku JavaScript przy użyciu konfiguracji pakietów zapewnianych przez pakiet SDK Local Home SDK i pakowanie kodu źródłowego w wyrażenia natychmiastowego wywołania funkcji (IIFE).
Ścieżka implementacji
Aby zintegrować z inteligentnym domem za pomocą pakietu SDK Local Home SDK, musisz wykonać te czynności:
1 | Konfigurowanie konfiguracji skanowania | Skonfiguruj konsolę Actions w parametry niezbędne do wykrywania przez Asystenta urządzeń, którymi można zarządzać lokalnie. |
2 | Aktualizowanie odpowiedzi SYNC w realizacji w chmurze | W realizacji w chmurze zmodyfikuj moduł obsługi żądania SYNC tak, aby obsługiwał pole
otherDeviceIds , którego platforma używa do ustanowienia lokalnej ścieżki realizacji. W tym polu podaj identyfikatory urządzeń, którymi można sterować lokalnie.
|
3 | Wdróż lokalną aplikację do realizacji zamówień | Za pomocą pakietu Local Home SDK utwórz aplikację w języku JavaScript do obsługi intencji IDENTIFY ,
EXECUTE i
QUERY . W przypadku centralnych lub mostowych urządzeń proxy musisz też obsłużyć intencję REACHABLE_DEVICES .
|
4 | Testowanie i debugowanie aplikacji | Sprawdź integrację (lub poddaj się samodzielnej certyfikacji) za pomocą Google Home Test Suite. |
Zanim zaczniesz
- Zapoznaj się z podstawami tworzenia inteligentnego działania w domu.
- W konsoli Actions sprawdź, czy masz już projekt inteligentnego domu i czy skonfigurowane jest łączenie kont.
- Pamiętaj, aby zalogować się na to samo konto Google w Konsoli Actions i w Asystencie na urządzeniu testowym.
- Do napisania aplikacji potrzebujesz środowiska Node.js. Do instalowania Node.js i npm zalecamy użycie Menedżera wersji węzła.
- Aby korzystać z najnowszej wersji pakietu Local Home SDK, musisz zarejestrować urządzenia testowe w programie podglądu przesyłania.