Lokalna realizacja zamówień

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 EXECintencji 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ę.

Rysunek przedstawiający proces realizacji zamówienia lokalnego. Ścieżka wykonania rejestruje intencję użytkownika z telefonu z Asystentem Google, a potem jest przetwarzana przez Google Cloud. Następnie jest wykonywana lokalnie na urządzeniu Google Home, a polecenie jest wysyłane bezpośrednio do huba urządzenia lub bezpośrednio do urządzenia. Chmura dla deweloperów jest dostępna jako alternatywa dla chmury.
Ilustracja 1. Dodawanie lokalnej ścieżki realizacji dla inteligentnego domu Działanie.

Platforma Local Home nie wybiera w sposób deterministyczny urządzenia Google Home ani Google Nest, które ma wywołać polecenie. Intencje EXECUTEQUERY 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:

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 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