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.
Local Home SDK zapewnia 2 funkcje: wykonywanie lokalne i zapytanie lokalne.
- Lokalne wykonywanie umożliwia realizowanie poleceń przez wysyłanie intencji
EXECprzez ścieżkę realizacji lokalnej zamiast wywoływania interfejsu API w chmurze. Na przykład żądanie „Włącz światło” może zostać obsłużone przez wykonanie lokalne. - 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 może odpowiedzieć na pytanie „Czy światło jest włączone?” bez wywoływania interfejsu Cloud API.
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 lub urządzenia 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 wykonywać polecenia użytkownika za pomocą istniejących protokołów.
Integracja pakietu SDK zwiększa wydajność integracji z Cloud-to-cloud, m.in. skraca czas oczekiwania i zwiększa niezawodność. Realizacja lokalna jest obsługiwana w przypadku wszystkich typów i cech urządzeń, z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkownika.
Zacznij tworzyć Wypróbuj przykładową aplikację
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ć inteligentne urządzenia połączone z Asystentem.
Platforma wysyła intencję IDENTIFY, aby określić, czy urządzeniem można sterować lokalnie, porównując identyfikator urządzenia w odpowiedzi IDENTIFY z identyfikatorami zwróconymi we wcześniejszej odpowiedzi SYNC. Jeśli wykryte urządzenie jest koncentratorem lub mostkiem, 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 ścieżkę realizacji lokalnej do urządzenia Google Home lub Google Nest użytkownika, a następnie kieruje polecenia użytkownika do realizacji lokalnej.
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, a nie do realizacji w chmurze. Urządzenie uruchomi aplikację do realizacji lokalnej, aby przetworzyć intencję.
Platforma Local Home nie wybiera w sposób deterministyczny, które urządzenie Google Home lub urządzenie 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 realizacji lokalnej
Aplikacja do realizacji lokalnej zawiera logikę biznesową, która przetwarza intencje wysyłane przez platformę Local Home i uzyskuje dostęp do urządzenia inteligentnego przez lokalną sieć komputerową. Integracja realizacji lokalnej nie wymaga modyfikacji 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, takich jak HTTP, TCP lub UDP. Jeśli ścieżka realizacji lokalnej nie powiedzie się, jako ścieżka zastępcza zostanie użyta 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 modułów 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 jego zapytania dotyczące bieżącego stanu urządzenia (QUERY).
Podczas tworzenia aplikacji możesz ją skompilować i przetestować, wczytując ją na własny serwer hostingowy lub lokalny komputer używany do programowania. W środowisku produkcyjnym Google hostuje aplikację w bezpiecznym środowisku piaskownicy JavaScript na urządzeniu Google Home lub urządzeniu Google Nest użytkownika.
Interfejs Report State API nie jest obecnie obsługiwany w przypadku realizacji lokalnej. Google korzysta z Twojej realizacji w chmurze, aby przetwarzać te żądania.
Cykl życia aplikacji
Aplikacja do realizacji lokalnej 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 urządzenia Google Nest mają ograniczoną pamięć, a aplikacja do realizacji lokalnej może zostać w każdej chwili zamknięta z powodu braku pamięci w systemie. Może się tak 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 dostarczenia i wystarczające zasoby pamięci, aby aplikacja mogła działać.
Platforma Local Home wyłącza aplikację po upływie czasu bezczynności, gdy użytkownik odłączy swoje konto lub gdy nie ma już urządzeń obsługujących realizację lokalną 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 obsługiwane urządzenia i środowiska wykonawcze używane na każdym z nich. Więcej informacji o wymaganiach dotyczących środowiska wykonawczego znajdziesz w artykule o środowisku wykonawczym.
| 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 lokalnej zależy od urządzenia. Platforma Local Home obsługuje te środowiska wykonawcze:
- Chrome aplikacja do realizacji lokalnej jest wykonywana w kontekście przeglądarki Chrome
windoww wersji Chrome M80 lub nowszej z obsługą ECMAScript w wersji ES2018. - Node.js aplikacja do realizacji lokalnej jest wykonywana jako skrypt w procesie Node.js, w którym działa Node w wersji 10.x LTS lub nowszej z obsługą ECMAScript w wersji ES2018.
Struktura kodu źródłowego
Zalecamy połączenie zależności w jeden plik JavaScript za pomocą konfiguracji pakietu udostępnianych przez pakiet Local Home SDK i spakowanie kodu źródłowego jako wywołania funkcji natychmiastowej (IIFE).
Ścieżka implementacji
Aby korzystać z Local Home SDK w ramach integracji z inteligentnym domem, musisz wykonać te czynności:
| 1 | Konfigurowanie skanowania | Skonfiguruj Google Home Developer Console za pomocą niezbędnych parametrów, aby Asystent mógł wykrywać urządzenia, którymi można sterować lokalnie. |
| 2 | Zaktualizuj odpowiedź SYNC w usłudze realizacji w chmurze | W realizacji w chmurze zmodyfikuj moduł obsługi żądań SYNC, aby obsługiwał pole
otherDeviceIds, którego platforma używa do ustanawiania lokalnej ścieżki realizacji. W tym polu podaj identyfikatory urządzeń, którymi można sterować lokalnie.
|
| 3 | Wdrażanie aplikacji do realizacji lokalnej | Użyj pakietu Local Home SDK, aby utworzyć aplikację JavaScript do obsługi intencji IDENTIFY,
EXECUTE i
QUERY. W przypadku urządzeń proxy koncentratora lub mostka należy też obsługiwać zamiar REACHABLE_DEVICES.
|
| 4 | Testowanie i debugowanie aplikacji | Przetestuj integrację (lub przeprowadź samodzielną certyfikację) za pomocą zestawu testów Google Home. |
Zanim zaczniesz
- Zapoznaj się z podstawami tworzenia integracji Cloud-to-cloud.
- Upewnij się, że w Google Home Developer Console masz już projekt inteligentnego domu i że połączenie kont jest skonfigurowane.
- Upewnij się, że logujesz się na to samo konto Google w Developer Console i w Asystencie na urządzeniu testowym.
- Do napisania aplikacji potrzebujesz środowiska Node.js. Do zainstalowania Node.js i npm zalecamy użycie menedżera wersji Node.
- Aby korzystać z najnowszej wersji pakietu Local Home SDK, musisz zarejestrować urządzenia testowe w programie Cast Preview.