Pakiet Local Home SDK ulepsza integrację inteligentnego domu z Google Asystentem, dodając lokalną ścieżkę realizacji, do której będą kierowane intencje inteligentnego domu.
Pakiet Local Home SDK oferuje 2 funkcje: lokalne wykonywanie i lokalne zapytania.
- Lokalne wykonywanie umożliwia realizowanie poleceń przez wysyłanie intencji
EXECprzez lokalną ścieżkę realizacji zamiast wywoływania interfejsu API w chmurze. Na przykład żądanie „Włącz światło” może być obsługiwane przez lokalne wykonywanie. - Lokalne zapytania umożliwiają obsługiwanie zapytań dotyczących stanu urządzenia przez wysyłanie intencji
QUERYprzez lokalną ścieżkę realizacji. Na przykład lokalne zapytanie zrealizuje zapytanie „Czy moje światło jest włączone?” bez wywoływania interfejsu API w chmurze.
Pakiet SDK umożliwia napisanie aplikacji do lokalnej realizacji w języku TypeScript lub JavaScript, która zawiera logikę biznesową inteligentnego domu. Urządzenia Google Home lub Google Nest mogą wczytywać i uruchamiać aplikację na urządzeniu. Aplikacja komunikuje się bezpośrednio z istniejącymi urządzeniami inteligentnymi przez Wi-Fi w lokalnej sieci komputerowej (LAN), aby realizować polecenia użytkownika za pomocą istniejących protokołów.
Integracja pakietu SDK zwiększa wydajność integracji z Cloud-to-cloud chmurą, w tym zmniejsza opóźnienia i zwiększa niezawodność. Lokalna realizacja jest obsługiwana w przypadku wszystkich typów urządzeń i cech urządzeń , 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 realizacji w chmurze platforma Local Home skanuje lokalną sieć komputerową użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby wykryć urządzenia inteligentne połączone z Asystentem.
Platforma wysyła intencję IDENTIFY, aby sprawdzić, czy urządzenie można sterować lokalnie, porównując identyfikator urządzenia w odpowiedzi IDENTIFY z identyfikatorami zwróconymi przez wcześniejszą odpowiedź SYNC. Jeśli wykryte urządzenie jest koncentratorem lub mostem, platforma wysyła intencję REACHABLE_DEVICES i traktuje koncentrator 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 aktywuje integrację Cloud-to-cloud, która ma lokalną ścieżkę realizacji, Asystent wysyła intencję EXECUTE lub QUERY do urządzenia Google Home lub urządzenia Google Nest zamiast do realizacji w chmurze. Urządzenie uruchamia wtedy aplikację do lokalnej realizacji, aby przetworzyć intencję.
Platforma Local Home nie jest deterministyczna w wyborze urządzenia Google Home lub urządzenia Google Nest, które 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
Aplikacja do lokalnej realizacji zawiera logikę biznesową do przetwarzania intencji wysyłanych przez platformę Local Home i uzyskiwania dostępu do urządzenia inteligentnego przez lokalną sieć komputerową. Aby zintegrować lokalną realizację, nie trzeba modyfikować sprzętu. Aplikacja realizuje żądania integracji, wysyłając polecenia sterujące do urządzenia inteligentnego za pomocą protokołów warstwy aplikacji, w tym HTTP, TCP lub UDP.Cloud-to-cloud Jeśli lokalna ścieżka realizacji nie działa, jako ścieżka rezerwowa używana jest realizacja 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, UDP lub żądań HTTP.App: udostępnia metody dołączania obsługi intencji wysyłanych przez Google po wykryciu urządzeń, którymi można sterować lokalnie (IDENTIFY,REACHABLE_DEVICES). Ta klasa realizuje też polecenia użytkownika (EXECUTE) i odpowiada na zapytania użytkownika dotyczące bieżącego stanu urządzenia (QUERY).
Podczas programowania możesz tworzyć i testować aplikację, wczytując ją na własnym serwerze hostingowym lub lokalnym komputerze używanym do programowania. W środowisku produkcyjnym Google hostuje Twoją aplikację w bezpiecznym środowisku JavaScript sandbox na urządzeniu Google Home lub urządzeniu Google Nest użytkownika.
Interfejs Report State API nie jest obecnie obsługiwany w przypadku lokalnej realizacji. Google polega na realizacji w chmurze w zakresie przetwarzania tych żądań.
Cykl życia aplikacji
Aplikacja do lokalnej realizacji jest wczytywana na żądanie, gdy platforma Local Home wykryje nowe urządzenia lokalne pasujące do konfiguracji skanowania projektu lub gdy ma oczekujące intencje do dostarczenia związane z wcześniej zidentyfikowanym urządzeniem.
Urządzenia Google Home lub Google Nest mają ograniczoną pamięć, a aplikacja do lokalnej realizacji 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 na inną aplikację. Platforma Local Home ponownie uruchamia aplikację tylko wtedy, gdy są nowe intencje do dostarczenia i wystarczająca ilość pamięci do uruchomienia aplikacji.
Platforma Local Home zwalnia aplikację po upływie limitu czasu bezczynności, gdy użytkownik odłączy swoje konto lub gdy nie ma już urządzeń obsługujących lokalną realizację powiązanych z agentUserId użytkownika.
Obsługiwane urządzenia
Platforma Local Home uruchamia aplikację do lokalnej realizacji 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 dotyczących ś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 |
| Point | Chrome |
Środowisko wykonawcze
Środowisko wykonawcze aplikacji do lokalnej realizacji zależy od Twojego urządzenia. Platforma Local Home obsługuje te środowiska wykonawcze:
- Chrome: aplikacja do lokalnej realizacji jest wykonywana w kontekście okna przeglądarki Chrome
działającej w wersji Chrome
M80
lub nowszej z obsługą
ECMAScript w wersji ES2018.
window - Node.js: aplikacja do lokalnej realizacji jest wykonywana jako skrypt w procesie Node.js działającym w wersji Node v10.x LTS lub nowszej z obsługą ECMAScript w wersji ES2018.
Struktura kodu źródłowego
Zalecamy spakowanie zależności w jeden plik JavaScript za pomocą konfiguracji pakietu Local Home SDK i spakowanie kodu źródłowego jako natychmiast wywoływanego wyrażenia funkcyjnego (IIFE).
Ścieżka implementacji
Aby używać pakietu Local Home SDK do integracji inteligentnego domu, musisz wykonać te czynności:
| 1 | Skonfiguruj konfigurację skanowania | Skonfiguruj Google Home Developer Console za pomocą parametrów niezbędnych do wykrywania przez Asystenta urządzeń, którymi można sterować lokalnie. |
| 2 | Zaktualizuj odpowiedź SYNC w realizacji w chmurze | W realizacji w chmurze zmodyfikuj
SYNC
obsługę żądań, aby obsługiwała
otherDeviceIds pole, które platforma wykorzystuje do ustanawiania
lokalnej ścieżki realizacji. W tym polu określ identyfikatory urządzeń, którymi można sterować
lokalnie.
|
| 3 | Zaimplementuj aplikację do lokalnej realizacji | Użyj pakietu Local Home SDK, aby utworzyć aplikację JavaScript do
obsługi intencji IDENTIFY,
EXECUTE, i
QUERY. W przypadku urządzeń proxy, takich jak koncentrator lub most, należy też obsługiwać intencję REACHABLE_DEVICES.
|
| 4 | Testuj i debuguj aplikację | Testuj integrację (lub samocertyfikuj się) za pomocą pakietu Google Home Test Suite. |
Zanim zaczniesz
- Zapoznaj się z podstawami tworzenia integracji.Cloud-to-cloud
- W Google Home Developer Console upewnij się, że masz projekt inteligentnego domu i że łączenie kont jest skonfigurowane.
- Upewnij się, że na urządzeniu testowym jesteś zalogowany(-a) na to samo konto Google w Developer Console i w Asystencie.
- Do napisania aplikacji potrzebujesz środowiska Node.js. Do instalowania Node.js i npm zalecamy używanie Node Version Manager.
- Aby korzystać z najnowszej wersji pakietu Local Home SDK, musisz zarejestrować urządzenia testowe w programie Cast Preview Program.