Pakiet Local Home SDK umożliwia ulepszanie integracji inteligentnego domu z Asystentem Google poprzez dodanie lokalnej ścieżki realizacji, do której będą kierowane intencje inteligentnego domu.
Pakiet Local Home SDK udostępnia 2 funkcje: lokalną realizację i lokalne zapytanie.
- Wykonywanie lokalnie umożliwia realizację poleceń przez wysyłanie
EXEC
intencji za pomocą lokalnego procesu realizacji zamiast wywoływania interfejsu API w chmurze. Na przykład żądanie „Włącz światło” może być obsługiwane przez lokalną funkcję wykonawczą. - Zapytanie lokalne umożliwia obsługę zapytań dotyczących stanu urządzenia przez wysyłanie intencji
QUERY
przez lokalną ścieżkę realizacji. 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 tworzenie aplikacji do realizacji lokalnie za pomocą TypeScript lub JavaScript, która zawiera logikę biznesową inteligentnego domu. Urządzenia Google Home lub Google Nest mogą wczytywać i uruchamiać Twoją aplikację na urządzeniu. Aplikacja komunikuje się bezpośrednio z dotychczasowymi urządzeniami inteligentnymi za pomocą Wi-Fi w sieci lokalnej (LAN), aby wykonywać polecenia użytkownika w ramach dotychczasowych protokołów.
Integracja pakietu SDK poprawia wydajność integracji z Cloud-to-cloud, m.in. zmniejsza opóźnienia i zwiększa niezawodność. Realizacja lokalna jest obsługiwana w przypadku wszystkich typów urządzeń i właściwości urządzeń, z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkownika.
Rozpocznij tworzenie Wypróbuj przykładową wersję
Jak to działa
Po otrzymaniu odpowiedzi SYNC
z usług w chmurze platforma Local Home skanuje sieć lokalną użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby wykryć urządzenia inteligentne połączone z Asystentem.
Platforma wysyła intencję IDENTIFY
, aby określić, czy urządzenie można kontrolować lokalnie. W tym celu porównuje identyfikator urządzenia w odpowiedzi IDENTIFY
z identyfikatorami z wcześniejszej odpowiedzi SYNC
. Jeśli wykryte urządzenie to hub lub most, platforma wysyła intencję REACHABLE_DEVICES
i traktuje hub jako urządzenie proxy do komunikacji lokalnej.
Gdy otrzyma odpowiedź potwierdzającą urządzenie lokalne, platforma ustala lokalną ścieżkę realizacji dla urządzenia Google Home lub Google Nest użytkownika, a następnie kieruje polecenia użytkownika do lokalnego wykonania.
Gdy użytkownik uruchamia integrację Cloud-to-cloud z lokalną ścieżką realizacji, Asystent wysyła intencję EXECUTE
lub intencję QUERY
do urządzenia Google Home lub Google Nest, a nie do realizacji w chmurze. Następnie urządzenie uruchamia lokalną aplikację do realizacji, aby przetworzyć intencję.
Platforma Local Home nie wybiera w sposób deterministyczny urządzenia Google Home ani 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 realizacji zamówień lokalnych
Aplikacja lokalnego przetwarzania zawiera logikę biznesową, która przetwarza intencje wysyłane przez platformę Local Home i zapewnia dostęp do urządzenia inteligentnego przez sieć lokalną. Integracja lokalnego procesu realizacji zamówienia nie wymaga modyfikacji sprzętu. Aplikacja spełnia żądania integracji Cloud-to-cloud, wysyłając polecenia sterujące do urządzenia inteligentnego za pomocą protokołów na poziomie aplikacji, takich jak HTTP, TCP lub UDP. Jeśli lokalna ścieżka realizacji nie powiedzie się, jako ścieżka wykonania użyjesz ścieżki realizacji w chmurze.
Aby ułatwić tworzenie aplikacji, Local Home SDK udostępnia te 2 główne klasy:
DeviceManager
: Zapewnia metody komunikacji z urządzeniami inteligentnymi za pomocą żądań TCP, gniazd UDP lub HTTP.App
: Oferuje metody dołączania programów obsługi dla intencji wysyłanych przez Google po wykryciu urządzeń, które można kontrolować lokalnie (IDENTIFY
,REACHABLE_DEVICES
). Ta klasa realizuje też polecenia użytkownika (EXECUTE
) i odpowiada na pytania o obecny stan urządzenia (QUERY
).
Podczas tworzenia aplikacji możesz ją skompilować i przetestować, wczytując ją na własny serwer hostingowy lub lokalny komputer programistyczny. W środowisku produkcyjnym Google hostuje Twoją aplikację w bezpiecznym środowisku piaskownicy JavaScript na urządzeniu Google Home lub Google Nest użytkownika.
Interfejs API Report State nie jest obecnie obsługiwany w przypadku realizacji lokalnej. Google korzysta z usług przetwarzania w Google Cloud do obsługi tych żądań.
Cykl życia aplikacji
Aplikacja do realizacji usług lokalnych 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 dostawy związane z wcześniej zidentyfikowanym urządzeniem.
Urządzenia Google Home i Google Nest mają ograniczoną ilość pamięci, a lokalna aplikacja do realizacji 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 musi zrobić miejsce dla innej aplikacji. Platforma Local Home uruchamia ponownie Twoją aplikację tylko wtedy, gdy są nowe intencje do wykonania i wystarczająca ilość pamięci do jej uruchomienia.
Platforma Local Home wyładowuje 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 lokalne wypełnianie powiązane z kontem użytkownika agentUserId
.
Obsługiwane urządzenia
Platforma Local Home uruchamia aplikację do realizacji lokalnie na obsługiwanych urządzeniach Google Home lub Google Nest. W tabeli poniżej opisano obsługiwane urządzenia i czas wykonywania używany na każdym z nich. Więcej informacji o wymaganiach dotyczących czasu wykonywania 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 | Sieć reklamowa | Chrome |
Nest Hub Max | Sieć reklamowa | Chrome |
Nest Wifi | Router | Node.js |
Punkt | Chrome |
Środowisko wykonawcze
Środowisko wykonawcze aplikacji do obsługi lokalnego zamówienia zależy od urządzenia. Platforma Local Home obsługuje te środowiska wykonawcze:
- Chrome: lokalna aplikacja do realizacji jest wykonywana w kontekście przeglądarki Chrome
window
z wersją Chrome M80 lub nowszą z obsługą ECMAScript w wersji ES2018. - Node.js Twoja aplikacja do lokalnego przetwarzania jest wykonywana jako skrypt w procesie Node.js, który działa w wersji Node w wersji 10.x LTS lub nowszej z obsługą ECMAScript w wersji ES2018.
Struktura kodu źródłowego
Zalecamy zgrupowanie zależności w pojedynczym pliku JavaScript za pomocą konfiguracji pakietu udostępnionych przez pakiet SDK Local Home oraz spakowanie kodu źródłowego w postaci wyrażenia funkcji wywoływanej natychmiast (IIFE).
Ścieżka implementacji
Aby wykorzystać pakiet Local Home SDK do integracji z inteligentnym domem, musisz wykonać te czynności:
1 | Konfigurowanie konfiguracji skanowania | Skonfiguruj Google Home Developer Console z wymaganymi parametrami, aby Asystent mógł wykrywać urządzenia sterowane lokalnie. |
2 | Zaktualizuj odpowiedź SYNC w spełnianiu żądań w chmurze | W spełnianiu w chmurze zmodyfikuj element obsługi żądania SYNC , aby obsługiwał pole
otherDeviceIds , którego platforma używa do ustalania lokalnej ścieżki realizacji. W tym polu wpisz identyfikatory urządzeń, które można kontrolować lokalnie.
|
3 | Wdróż aplikację do realizacji zamówień lokalnych | Użyj pakietu Local Home SDK, aby utworzyć aplikację JavaScript, która będzie obsługiwać intencje IDENTIFY ,
EXECUTE i
QUERY . W przypadku urządzeń koncentratora lub mostu proxy należy również obsługiwać działanie REACHABLE_DEVICES .
|
4 | Testowanie i debugowanie aplikacji | Przetestuj integrację (lub sam się certyfikuj) za pomocą pakietu testów Google Home. |
Zanim zaczniesz
- Zapoznaj się z podstawami tworzenia integracji Cloud-to-cloud.
- W Google Home Developer Console sprawdź, czy masz już projekt inteligentnego domu i czy łączenie kont jest skonfigurowane.
- Upewnij się, że na urządzeniu testowym zalogujesz się na to samo konto Google w aplikacji Developer Console i w Asystencie.
- Do napisania aplikacji potrzebujesz środowiska Node.js. Do instalowania Node.js i npm zalecamy użycie Node Version Manager.
- Aby korzystać z najnowszej wersji pakietu SDK Local Home, musisz zarejestrować swoje urządzenia testowe w programie Cast Preview.