Lokalna realizacja zamówień

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 EXEC przez ś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ę.

Ten rysunek przedstawia proces realizacji lokalnej. Ścieżka wykonywania przechwytuje intencję użytkownika z telefonu z Asystentem Google, która jest następnie przetwarzana przez Google Cloud i wykonywana lokalnie na urządzeniu Google Home, a polecenie jest wysyłane bezpośrednio do centrum urządzeń lub bezpośrednio do urządzenia. Chmura dla deweloperów jest dostępna jako chmura zastępcza.
Ilustracja 1. Dodawanie lokalnej ścieżki realizacji do akcji inteligentnego domu.

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:

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