Witamy w Google Home Developer Center – nowym miejscu, z którego dowiesz się, jak tworzyć inteligentne działania domowe. Uwaga: nadal będziesz tworzyć działania w konsoli Actions.

Realizacja zamówień lokalnych

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Pakiet SDK strony głównej usprawnia integrację inteligentnego domu z Asystentem Google, dodając lokalną ścieżkę realizacji, do której będą kierowane intencje inteligentnego domu.

Pakiet SDK pozwala napisać lokalną aplikację do realizacji zamówień za pomocą TypeScriptu lub JavaScriptu, który zawiera inteligentny model biznesowy. Urządzenia Google Home lub Google Nest mogą wczytywać i uruchamiać aplikację na Twoim urządzeniu. Aplikacja komunikuje się bezpośrednio z istniejącymi urządzeniami przez Wi-Fi w sieci lokalnej (LAN) w celu wykonywania poleceń użytkownika za pomocą istniejących protokołów.

Integracja pakietu SDK poprawia wydajność inteligentnego domu, np. krótszy czas oczekiwania i większą niezawodność. Lokalna realizacja jest obsługiwana w przypadku wszystkich typów urządzeń i ich cech z wyjątkiem tych, które korzystają z dodatkowej weryfikacji użytkownika.

Zacznij tworzyć Wypróbuj przykład

Jak to działa

Gdy odpowiedź SYNC zostanie zrealizowana w chmurze, platforma lokalna skanuje sieć lokalną użytkownika za pomocą mDNS, transmisji UDP lub UPnP, aby znaleźć inteligentne 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 wcześniejszą odpowiedzią SYNC. Jeśli wykryte urządzenie to centrum lub most, platforma wysyła intencję REACHABLE_DEVICES i traktuje komunikację jako urządzenie proxy do komunikacji lokalnej.

Po otrzymaniu odpowiedzi potwierdzającej urządzenie lokalne platforma nawiązuje lokalną ścieżkę realizacji do urządzenia Google Home lub Google Nest użytkownika, a następnie przekierowuje polecenia użytkownika na potrzeby lokalnego realizacji.

Gdy użytkownik wywoła działanie akcji inteligentnego domu, które ma lokalną ścieżkę realizacji, Asystent wyśle intencję EXECUTE lub intencję QUERY do urządzenia Google Home lub Google Nest, a nie do realizacji chmury. Następnie na urządzeniu uruchamia się lokalna aplikacja umożliwiająca realizację intencji.

Ta liczba pokazuje przepływ wykonywania w lokalnej realizacji. Ścieżka wykonania rejestruje intencję użytkownika z telefonu za pomocą Asystenta Google. Następnie intencja użytkownika jest przetwarzana przez Google Cloud, a następnie jest uruchamiana lokalnie na urządzeniu Google Home i wykonywane jest bezpośrednio na tym urządzeniu lub bezpośrednio na nim. Chmura dla deweloperów jest dostępna jako usługa zastępcza w chmurze.
Rysunek 1. Dodawanie lokalnej ścieżki realizacji dla działania inteligentnego domu

Platforma lokalna nie określa jednoznacznie, które urządzenie Google Home lub Google Nest ma uruchomić polecenie. Intencje EXECUTE i QUERY mogą pochodzić z dowolnego urządzenia Google Home lub Google Nest zdefiniowanego w tej samej strukturze grafu domowego co urządzenie docelowe.

Lokalna aplikacja do realizacji zamówień

Aplikacja realizacji lokalnej zawiera logikę biznesową, aby przetworzyć intencje wysyłane przez platformę Home Home i uzyskać dostęp do urządzenia przez sieć lokalną. Nie przewidujemy modyfikacji sprzętu w ramach integracji lokalnej. Aplikacja obsługuje żądania inteligentnego domu, wysyłając polecenia sterowania do inteligentnego urządzenia za pomocą protokołów warstwy aplikacji, w tym HTTP, TCP lub UDP. Jeśli lokalna ścieżka realizacji zakończy się niepowodzeniem, realizacja w chmurze będzie używana jako zastępcza ścieżka wykonania.

Aby można było pomóc w tworzeniu aplikacji, pakiet SDK Home Home obejmuje 2 główne klasy:

  • DeviceManager: zapewnia metody komunikacji z urządzeniami za pomocą połączeń TCP, UDP i żądań HTTP.
  • App: zapewnia metody dołączania modułów obsługi w przypadku intencji wysyłanych przez Google po odkryciu urządzeń, którymi można sterować lokalnie (IDENTIFY, REACHABLE_DEVICES). Ta klasa wykonuje też polecenia użytkownika (EXECUTE) i odpowiada na zapytania użytkowników dotyczące bieżącego stanu urządzenia (QUERY).

Podczas programowania możesz tworzyć i testować aplikację, wczytując ją na własnym serwerze hostującym lub lokalnym komputerze programistycznym. W środowisku produkcyjnym Google hostuje Twoją aplikację w bezpiecznym środowisku piaskownicy JavaScriptu na urządzeniu Google Home lub Google Nest użytkownika.

Interfejs API Report State nie jest obecnie obsługiwany w przypadku realizacji lokalnej. Google przetwarza je, korzystając z realizacji zamówień w chmurze.

Cykl życia aplikacji

Lokalna aplikacja realizacji zamówień jest wczytywana na żądanie, gdy platforma lokalna wykrywa nowe urządzenia lokalne pasujące do konfiguracji skanowania projektu lub oczekuje na dostarczenie powiązane z wcześniej zidentyfikowanym urządzeniem.

Urządzenia Google Home lub Google Nest mają ograniczoną pamięć, a lokalna aplikacja realizacji zamówień może zostać w dowolnym momencie zakończona z powodu presji pamięci w systemie. Może się tak zdarzyć, jeśli aplikacja zaczyna zużywać zbyt dużo pamięci lub gdy system musi zrobić miejsce na inną aplikację. Platforma lokalna uruchamia aplikację ponownie tylko wtedy, gdy ma być dostępna nowa ilość pamięci i odpowiednie zasoby do uruchomienia.

Gdy użytkownik rozłączy swoje konto lub nie ma już urządzeń, które obsługują realizację lokalnie na koncie agentUserId, platforma lokalna wyładuje aplikację po przekroczeniu limitu czasu bezczynności.

Obsługiwane urządzenia

Platforma lokalna uruchamia aplikację do realizacji zamówień lokalnych na obsługiwanych urządzeniach Google Home lub Google Nest. Poniższa tabela zawiera opis obsługiwanych urządzeń i środowiska wykonawczego, które zostało użyte na każdym z nich. Więcej informacji o wymaganiach dotyczących czasu działania 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 Wyświetlacz Chrome
Nest Hub Max Wyświetlacz Chrome
Nest Wifi Router Node.js
Punkt Chrome

Środowisko wykonywania

Środowisko wykonywania lokalnej aplikacji do realizacji zamówień zależy od urządzenia. Platforma lokalna obsługuje następujące środowiska wykonawcze:

  • Chrome: lokalna aplikacja do realizacji zamówień jest uruchamiana w kontekście przeglądarki Chrome window działającej w Chrome M80 lub nowszej z obsługą wersji ECMAscript ES2018.
  • Node.js: lokalna aplikacja realizacji zamówień jest uruchamiana jako skrypt w procesie Node.js obsługującym Node v10.x LTS lub nowszą wersję z obsługą ECMAScript w wersji ES2018.

Struktura kodu źródłowego

Zalecamy powiązanie zależności w jeden plik JavaScript za pomocą konfiguracji pakietów dostępnych w lokalnym pakiecie SDK SDK i spakowanie kodu źródłowego jako wywołania funkcji natychmiastowej (IIFE).

Ścieżka implementacji

Aby używać lokalnego pakietu SDK do integracji inteligentnego domu, musisz wykonać te zadania:

1 Skonfiguruj konfigurację skanowania Skonfiguruj w Konsoli Actions niezbędne parametry, które pozwolą Asystentowi wykryć urządzenia kontrolowane lokalnie.
2 Aktualizowanie odpowiedzi SYNC w ramach realizacji chmury W realizacji realizacji w chmurze zmodyfikuj moduł obsługi żądań SYNC, tak aby obsługiwał pole otherDeviceIds używane przez platformę do ustalania lokalnej ścieżki realizacji. W tym polu podaj identyfikatory urządzeń, którymi można sterować lokalnie.
3 Wdrożenie lokalnej aplikacji realizacji zamówień Użyj pakietu SDK lokalnego ekranu głównego, aby utworzyć aplikację JavaScript do obsługi intencji IDENTIFY, EXECUTE i QUERY. W przypadku urządzeń proxy lub mostków należy też obsłużyć intencję REACHABLE_DEVICES.
4 Testowanie i debugowanie aplikacji Przetestuj integrację (lub samodzielnie oceń), korzystając z Google Home Test Suite.

Zanim zaczniesz