Lokalna realizacja zamówień

Pakiet Local Home SDK usprawnia integrację inteligentnego domu z Asystentem Google, dodając lokalną ścieżkę realizacji do kierowania intencji inteligentnego domu.

Pakiet SDK umożliwia napisanie lokalnej aplikacji do realizacji zamówień za pomocą skryptu TypeScript lub JavaScriptu, która będzie zawierać logikę biznesową inteligentnego domu. Urządzenia Google Home i Google Nest mogą wczytać aplikację i uruchomić ją na urządzeniu. Aplikacja komunikuje się bezpośrednio z dotychczasowymi urządzeniami przez Wi-Fi w sieci lokalnej (LAN), aby wykonywać polecenia użytkownika, korzystając z istniejących protokołów.

Integracja pakietu SDK poprawia wydajność działania inteligentnego domu, w tym mniejsze opóźnienia i większą niezawodność. Realizacja lokalna jest obsługiwana w przypadku urządzeń wszystkich typów i cech z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkowników.

Zacznij tworzyć Wypróbuj fragment

Jak to działa

Po otrzymaniu odpowiedzi SYNC z realizacji w chmurze platforma Local Home skanuje lokalną sieć użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby wykryć urządzenia połączone z Asystentem.

Platforma wysyła intencję IDENTIFY, aby określić, czy urządzenie można kontrolować lokalnie, porównując identyfikator urządzenia w odpowiedzi IDENTIFY z identyfikatorem zwróconym przez wcześniejszą odpowiedź SYNC. Jeśli wykryte urządzenie to centrum lub most, platforma wysyła intencję REACHABLE_DEVICES i traktuje centrum jako urządzenie proxy do lokalnej komunikacji.

Gdy otrzymuje odpowiedź potwierdzającą, że urządzenie jest używane lokalnie, platforma wyznacza lokalną ścieżkę realizacji zamówień do urządzenia Google Home lub Google Nest użytkownika, a następnie przekierowuje polecenia użytkownika do lokalnej realizacji.

Gdy użytkownik aktywuje akcję w inteligentnym domu, która ma lokalną ścieżkę realizacji, Asystent wysyła intencję EXECUTE lub QUERY do urządzenia Google Home lub Google Nest, a nie do realizacji w chmurze. Następnie urządzenie uruchomi lokalną aplikację do realizacji intencji, aby przetworzyć intencję.

Ten rysunek przedstawia przepływ wykonywania lokalnej realizacji zamówień. Ścieżka wykonania rejestruje intencję użytkownika z telefonu za pomocą Asystenta Google. Google Cloud przetwarza intencję użytkownika. Następnie jest 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 dewelopera jest dostępna jako chmura zastępczej.
Rysunek 1. Dodawanie lokalnej ścieżki realizacji dla działania dotyczącego inteligentnego domu.

Przy wyborze urządzenia Google Home lub Google Nest, które ma uruchamiać polecenie, platforma Local Home nie jest deterministyczna. 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 zamówień

Aplikacja do lokalnej realizacji zamówień zawiera logikę biznesową, która przetwarza intencje wysyłane przez platformę Local Home i uzyskuje dostęp do urządzenia przez sieć lokalną. Żadna modyfikacja sprzętu nie powinna być uwzględniana w lokalnej realizacji zamówień. Aplikacja realizuje żądania akcji w inteligentnym domu, wysyłając do urządzenia polecenia sterujące za pomocą protokołów warstwy aplikacji, w tym HTTP, TCP lub UDP. Jeśli lokalna ścieżka realizacji zakończy się niepowodzeniem, jako alternatywna ścieżka wykonania zostanie użyta realizację w chmurze.

Aby ułatwić tworzenie aplikacji, pakiet Local Home SDK udostępnia te 2 główne klasy:

  • DeviceManager: zapewnia metody komunikowania się z urządzeniami za pomocą protokołów TCP, gniazd UDP lub żądań HTTP.
  • App: zapewnia metody dołączania modułów obsługi dla intencji wysyłanych przez Google po wykryciu urządzeń kontrolowanych lokalnie (IDENTIFY, REACHABLE_DEVICES). Ta klasa wykonuje też polecenia użytkownika (EXECUTE) i odpowiada na ich zapytania dotyczące bieżącego stanu urządzenia (QUERY).

W trakcie programowania możesz skompilować i przetestować aplikację, wczytując ją na własnym serwerze hostingowym lub lokalnym maszynie programowej. W wersji produkcyjnej Google hostuje aplikację w bezpiecznej piaskownicy JavaScript na urządzeniu Google Home lub Google Nest użytkownika.

Interfejs Report State API nie jest obecnie obsługiwany w realizacji lokalnej. Google przetwarza te żądania, korzystając z usług w chmurze.

Cykl życia aplikacji

Twoja aplikacja do lokalnej realizacji zamówień jest wczytywana na żądanie, gdy platforma Local Home wykryje nowe urządzenia lokalne pasujące do konfiguracji skanowania projektu lub ma oczekujące zamiary na realizację związane ze zidentyfikowanym wcześniej urządzeniem.

Urządzenia Google Home i Google Nest mają ograniczoną pamięć, a lokalna aplikacja do realizacji zamówień może zostać w każdej chwili zamknięta z powodu zbyt dużej ilości pamięci. Może się tak zdarzyć, gdy aplikacja zacznie wykorzystywać za dużo pamięci lub system musi zrobić miejsce na kolejną aplikację. Platforma Local Home ponownie uruchamia aplikację tylko wtedy, gdy pojawią się nowe zamiary dostarczenia i uruchomienia odpowiedniej ilości pamięci.

Platforma Local Home uruchamia Twoją aplikację po upływie czasu bezczynności, gdy użytkownik odłącza swoje konto lub gdy nie ma już urządzeń obsługujących lokalną realizację zamówień powiązanych z jego agentUserId.

Obsługiwane urządzenia

Platforma Local Home uruchamia Twoją lokalną aplikację do realizacji zamówień na obsługiwanych urządzeniach Google Home lub Google Nest. W tabeli poniżej opisujemy obsługiwane urządzenia i ich środowisko wykonawcze. Więcej informacji o wymaganiach dotyczących środowiska wykonawczego 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 Reklamy displayowe Chrome
Nest Hub Max Reklamy displayowe Chrome
Nest Wifi Router Node.js
Punkt Chrome

Środowisko wykonawcze

Środowisko wykonywania lokalnej aplikacji do realizacji zamówień zależy od urządzenia. Platforma Local Home obsługuje te środowiska wykonawcze:

Struktura kodu źródłowego

Zalecamy grupowanie zależności w jednym pliku JavaScript przy użyciu konfiguracji pakietów zapewnianych przez pakiet SDK Local Home SDK i pakowanie kodu źródłowego w wyrażenia natychmiastowego wywołania funkcji (IIFE).

Ścieżka implementacji

Aby zintegrować z inteligentnym domem za pomocą pakietu SDK Local Home SDK, musisz wykonać te czynności:

1 Konfigurowanie konfiguracji skanowania Skonfiguruj konsolę Actions w parametry niezbędne do wykrywania przez Asystenta urządzeń, którymi można zarządzać lokalnie.
2 Aktualizowanie odpowiedzi SYNC w realizacji w chmurze W realizacji w chmurze zmodyfikuj moduł obsługi żądania SYNC tak, aby obsługiwał pole otherDeviceIds, którego platforma używa do ustanowienia lokalnej ścieżki realizacji. W tym polu podaj identyfikatory urządzeń, którymi można sterować lokalnie.
3 Wdróż lokalną aplikację do realizacji zamówień Za pomocą pakietu Local Home SDK utwórz aplikację w języku JavaScript do obsługi intencji IDENTIFY, EXECUTE i QUERY. W przypadku centralnych lub mostowych urządzeń proxy musisz też obsłużyć intencję REACHABLE_DEVICES.
4 Testowanie i debugowanie aplikacji Sprawdź integrację (lub poddaj się samodzielnej certyfikacji) za pomocą Google Home Test Suite.

Zanim zaczniesz