Zalecamy utworzenie aplikacji do realizacji zamówień lokalnych, korzystając z opisanych wcześniej czynności, a następnie przetestowanie integracji z urządzeniami inteligentnego domu w własnym środowisku hostingu. Aby to zrobić:
W własnym środowisku hostingu wyświetl stronę HTML, która uruchamia Twoją aplikację do obsługi zamówień lokalnych. Poniższy fragment kodu to przykład stałego pliku HTML, który uruchamia aplikację do obsługi zamówień lokalnych.
<html> <head> <!-- Local Home SDK --> <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script> <!-- Local app under development --> <script src="local_execution.js"></script> </head> </html>
Debugowanie w Chrome. Aby rozwiązać problemy z integracją, użyj punktów przerwania i logów.
Zmodyfikuj i skompiluj kod TypeScript, a potem powtórz te czynności.
Powtarzając proces kompilacji i testowania, możesz szybko sprawdzać zmiany w działaniu oraz łatwiej wykrywać i rozwiązywać problemy z kodem.
Testowanie sterowania urządzeniem
W Konsoli czynności musisz podać adres URL swojej aplikacji internetowej, która udostępnia kod HTML wczytywany na urządzeniu Google Home lub Google Nest podczas realizacji lokalnej.
Aby przetestować kontrolę urządzenia z wykonywaniem lokalnym:
Chrome
- Otwórz projekt Smart Home w konsoli Actions.
- W panelu użytkownika po lewej stronie kliknij Działania.
- W sekcji Skonfiguruj pakiet SDK lokalnego interfejsu domowego (opcjonalnie) > Wpisz adres URL testowy Chrome podaj adres URL serwera programistycznego, który udostępnia kod HTML używany przez Twoją aplikację do realizacji lokalnej.
- Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
- Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
- Wydaj polecenie na urządzeniu smart. Jeśli na przykład Twoje urządzenie obsługuje cechę OnOff, możesz powiedzieć „OK Google, włącz światło”.
Node.js
- Otwórz projekt Smart Home w konsoli Actions.
- W panelu użytkownika po lewej stronie kliknij Działania.
- W sekcji Konfigurowanie pakietu SDK lokalnego domu (opcjonalnie) > Wpisz adres URL testowy dla węzła określ adres URL serwera deweloperskiego, który udostępnia kod JavaScript, na podstawie którego działa Twoja lokalna aplikacja do realizacji.
- Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
- Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
- Wydaj polecenie na urządzeniu smart. Jeśli na przykład Twoje urządzenie obsługuje cechę OnOff, możesz powiedzieć „OK Google, włącz światła”.
Więcej informacji o tym, z którego środowiska uruchomieniowego korzysta Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.
Debugowanie w Chrome
Aplikację do obsługi zamówień lokalnych możesz debugować za pomocą Narzędzi deweloperskich w Chrome. Zanim zaczniesz debugować, sprawdź, czy środowisko jest prawidłowo skonfigurowane:
- w konsoli ustawiony jest URL do celów testowania, który jest dostępny z urządzenia Google Home lub Google Nest (w sieci lokalnej lub przez Internet);
- Twoje urządzenie jest połączone z tą samą siecią LAN co testowane urządzenie Google Home lub Google Nest.
- Twoja sieć nie blokuje pakietów między urządzeniami.
- Zaloguj się na to samo konto Google w Konsoli Actions i na urządzeniu Google Home lub Google Nest.
- Zaktualizowano odpowiedź SYNC w usłudze przetwarzania w chmurze.
W polu
otherDeviceIds
musi zwracać co najmniej 1 prawidłową wartość. - W Konsoli czynności wpisano prawidłowe informacje o konfiguracji skanowania.
Aby połączyć lokalną aplikację do obsługi zapytań z debugerem w Narzędziach deweloperskich Chrome, wykonaj te czynności:
Chrome
- Na lokalnym komputerze deweloperskim zainstaluj i uruchom przeglądarkę Google Chrome.
- W polu adresu przeglądarki Chrome uruchom Chrome inspektora, wpisując:
chrome://inspect#devices
. Na stronie powinna wyświetlić się lista urządzeń, a plik HTML powinien być widoczny pod nazwą testowanego urządzenia Google Home lub Google Nest. - Kliknij niebieski link „Zbadaj” pod kodem HTML, aby otworzyć Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu SDK Local Home. Jeśli widzisz ten dziennik, oznacza to, że Google załadowało Twoją aplikację i może się z nią połączyć. Jeśli nie, uruchom ponownie urządzenie Google Home lub Google Nest.
Node.js
- Na lokalnym komputerze deweloperskim zainstaluj i uruchom przeglądarkę Google Chrome.
- Określ lokalny adres IP urządzenia testowego.
- W polu adresu przeglądarki Chrome uruchom Chrome inspektora, wpisując:
chrome://inspect#devices
. - Kliknij Konfiguruj…, aby otworzyć Ustawienia wykrywania docelowego.
- Wpisz
DEVICE_IP_ADDRESS:9222
na liście i kliknij Gotowe. - Kliknij niebieski link „Sprawdź” pod skryptem, aby otworzyć Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu SDK Local Home. Jeśli widzisz dziennik, oznacza to, że Google załadowało Twoją aplikację i może się z nią połączyć. Jeśli nie, uruchom ponownie urządzenie Google Home lub Google Nest.
Więcej informacji o tym, z którego środowiska uruchomieniowego korzysta Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.
Wskazówki dotyczące debugowania
Podczas debugowania należy pamiętać o kilku dodatkowych kwestiach:
- Nie łącz wielu urządzeń Google Home ani Google Nest z kontem testowym w tej samej sieci lokalnej. Nie będziesz mieć możliwości wyboru urządzenia Google Home ani Google Nest, które ma być docelowe dla poleceń lokalnego przetwarzania.
- Odśwież stronę w Narzędziach dla deweloperów w Chrome, aby ponownie załadować kontener aplikacji do realizacji lokalnej z najnowszym kodem z adresu URL wersji deweloperskiej. Nie powoduje to zresetowania platformy lokalnej w domu, która może być potrzebna do ponownego wywołania intencji platformy (np.
IDENTIFY
) w lokalnej aplikacji do realizacji. Aby zresetować platformę lokalną w domu, zrestartuj urządzenie Google Home lub Google Nest. - Sprawdź, czy aplikacja JavaScript wczytuje się bez błędów. Aby to zrobić, sprawdź sekcję konsoli na stronie Narzędzi deweloperskich. Jeśli wystąpi problem, zobaczysz komunikat podobny do tego:
Uncaught TypeError: Cannot read property ‘open’ of null.
- Wartość
verificationId
w odpowiedziIDENTIFY
musi być zgodna z jedną z wartościotherDeviceIds
w odpowiedziSYNC
. - W przypadku obsługi
EXECUTE
sprawdź, czy urządzenie może odbierać polecenia HTTP, TCP lub UDP i czy działają one zgodnie z oczekiwaniami. - Pamiętaj, aby zwracać
Promise
z obsługiwanych elementów. - Unikaj utrzymywania stanu globalnego w pamięci. Zobacz cykl życia aplikacji.
- Błędy wygenerowane przez aplikację do obsługi zamówień lokalnych pojawią się w dziennikach błędów projektu.
Przygotowywanie i wprowadzanie wersji do wersji produkcyjnej
Gdy wszystko będzie gotowe, wykonaj te czynności:
- Otwórz terminal. W katalogu projektu uruchom polecenie
npm run build
. To polecenie wygeneruje w katalogudist
te pakiety JavaScriptu dla Twojej aplikacji:project-directory/ └── dist ├── web │ └── bundle.js └── node └── bundle.js
- W konsoli prześlij aplikację JavaScript, klikając Tworzenie > Działania. W sekcji Skonfiguruj pakiet SDK Local Home kliknij Prześlij pliki JavaScript.
- W oknie Prześlij pliki prześlij wcześniej wygenerowane pliki pakietu. Prześlij obie wersje plików pakietu (Node i Web), aby działanie akcji było prawidłowo skonfigurowane we wszystkich środowiskach uruchomieniowych obsługiwanych przez realizację lokalną.
- Przesyłanie kodu JavaScript kierowanego na Node.js: prześlij plik
bundle.js
z katalogudist/node
. - Prześlij kod JavaScript kierowany na Chrome (przeglądarkę): prześlij plik
bundle.js
z katalogudist/web
.
- Przesyłanie kodu JavaScript kierowanego na Node.js: prześlij plik
- przetestować działanie aplikacji na urządzeniu z Asystentem, aby sprawdzić, czy działa ona zgodnie z oczekiwaniami w środowisku produkcyjnym. Więcej informacji znajdziesz w artykule Testowanie i udostępnianie akcji inteligentnego domu.
- Gdy będziesz zadowolony z działania swojego działania, prześlij je do Google w celu wdrożenia w wersji produkcyjnej, wykonując instrukcje podane w artykule Uruchomienie działania inteligentnego domu. Obejmuje to wykonanie testu samodzielnego i wysłanie prośby o certyfikację.