Testowanie i debugowanie aplikacji

Zalecamy utworzenie aplikacji do realizacji lokalnej zgodnie z opisanymi wcześniej instrukcjami, a następnie przetestowanie integracji z inteligentnym domem w Twoim własnym środowisku hostingu:

  1. W swoim środowisku hostingu udostępnij stronę HTML, która uruchamia aplikację do realizacji lokalnej. Poniższy fragment kodu przedstawia przykład statycznego pliku HTML, który uruchamia aplikację do realizacji lokalnej.

    <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>
  2. Sterowanie urządzeniem testowym.

  3. Debuguj w Chrome. Użyj punktów przerwania i logów, aby rozwiązać problemy z integracją.

  4. Zmodyfikuj i skompiluj kod TypeScript, a następnie powtórz te czynności.

Powtarzając ten proces tworzenia i testowania, możesz szybko zobaczyć zmiany w działaniu, co pomoże Ci w debugowaniu problemów z kodem.

Sterowanie urządzeniem testowym

W Google Home Developer Console musisz określić adres URL aplikacji internetowej, która udostępnia kod HTML wczytywany na urządzeniu Google Home lub urządzeniu Google Nest podczas realizacji lokalnej.

Aby przetestować sterowanie urządzeniem za pomocą realizacji lokalnej, wykonaj te czynności:

Chrome

  1. Na stronie Konfiguracja integracji z chmurą w Google Home Developer Console przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  2. W sekcji Adresy URL testowe > Adres URL testowy dla Chrome określ adres URL serwera deweloperskiego, który udostępnia kod HTML uruchamiający aplikację do realizacji lokalnej.
  3. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  4. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  5. Wydaj polecenie na urządzeniu inteligentnym. Jeśli na przykład urządzenie implementuje cechę OnOff, możesz powiedzieć „OK Google, włącz światła”.

Node.js

  1. Na stronie Konfiguracja w Google Home Developer Console, przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  2. W sekcji Adresy URL testowe > Adres URL testowy dla Node określ adres URL serwera deweloperskiego, który udostępnia kod JavaScript uruchamiający aplikację do realizacji lokalnej.
  3. Kliknij Zapisz. Rozpowszechnienie zmian w konsoli może potrwać do 30 minut.
  4. Uruchom ponownie testowe urządzenie Google Home lub Google Nest.
  5. Wydaj polecenie na urządzeniu inteligentnym. Jeśli na przykład urządzenie implementuje cechę OnOff, możesz powiedzieć „OK Google, włącz światła”.

Więcej informacji o tym, jakiego środowiska wykonawczego używa Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.

.

Debugowanie w Chrome

Aplikację do realizacji lokalnej możesz debugować za pomocą Narzędzi deweloperskich w Chrome. Zanim zaczniesz debugować, upewnij się, że Twoje środowisko jest prawidłowo skonfigurowane:

  • W konsoli ustawiono adres URL deweloperski na adres URL dostępny dla urządzenia Google Home lub urządzenia Google Nest (w lokalnej sieci komputerowej lub w internecie).
  • Twój komputer jest połączony z tą samą lokalną siecią komputerową co testowane urządzenie Google Home lub urządzenie Google Nest.
  • Twoja sieć nie blokuje pakietów między urządzeniami.
  • W Google Home Developer Console oraz na urządzeniu Google Home lub Google Nest jesteś zalogowany(-a) na to samo konto Google.
  • Odpowiedź SYNC została zaktualizowana w realizacji w chmurze. Powinna ona zwracać co najmniej 1 prawidłową wartość w polu otherDeviceIds.
  • Wpisano prawidłowe informacje o konfiguracji skanowania w Google Home Developer Console.

Aby połączyć aplikację do realizacji lokalnej z debuggerem Narzędzi deweloperskich w Chrome, wykonaj te czynności:

Chrome

  1. Na lokalnym komputerze używanym do programowania zainstaluj i uruchom przeglądarkę Google Chrome.
  2. W polu adresu przeglądarki Chrome uruchom inspektora Chrome wpisując: chrome://inspect#devices. Na stronie powinna się wyświetlić lista urządzeń, a plik HTML powinien być widoczny pod nazwą testowego urządzenia Google Home lub urządzenia Google Nest.
  3. Kliknij niebieski link inspect (sprawdź) pod kodem HTML, aby uruchomić Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu Local Home SDK. Jeśli widzisz log, oznacza to, że Google pomyślnie wczytało Twoją aplikację i może się z nią połączyć. Jeśli nie, uruchom ponownie urządzenie Google Home lub Google Nest.
  4. Rysunek 1. Aplikacja do realizacji lokalnej w chrome://inspect.

Node.js

  1. Na lokalnym komputerze używanym do programowania zainstaluj i uruchom przeglądarkę Google Chrome.
  2. Określ lokalny adres IP urządzenia testowego.
  3. W polu adresu przeglądarki Chrome uruchom inspektora Chrome wpisując: chrome://inspect#devices.
  4. Kliknij Configure... (Skonfiguruj...), aby otworzyć Target discovery settings (Ustawienia wykrywania celu).
  5. Rysunek 2. Ustawienia wykrywania celu w chrome://inspect.
  6. Wpisz DEVICE_IP_ADDRESS:9222 na liście i kliknij Done.
  7. Kliknij niebieski link inspect (sprawdź) pod skryptem, aby uruchomić Narzędzia deweloperskie w Chrome. Przejdź na kartę Konsola. Platforma Local Home wyświetla w logu konsoli wersję aplikacji i wersję pakietu Local Home SDK. Jeśli widzisz log, oznacza to, że Google pomyślnie wczytał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, jakiego środowiska wykonawczego używa Twoje urządzenie, znajdziesz w sekcji Obsługiwane urządzenia.

Wskazówki dotyczące debugowania

Podczas debugowania warto pamiętać o tych dodatkowych kwestiach:

  • Nie łącz z kontem testowym kilku urządzeń Google Home lub Google Nest w tej samej sieci lokalnej. Nie będziesz mieć możliwości sterowania, które urządzenie Google Home lub urządzenie Google Nest jest celem poleceń realizacji lokalnej.
  • Odśwież stronę w Narzędziach deweloperskich w Chrome, aby ponownie wczytać kontener aplikacji do realizacji lokalnej z najnowszym kodem z adresu URL deweloperskiego. Nie powoduje to zresetowania platformy Local Home, co może być konieczne, aby ponownie wywołać intencje platformy (np. IDENTIFY) w aplikacji do realizacji lokalnej. Aby zresetować platformę Local Home, uruchom ponownie 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 z odpowiedzi IDENTIFY musi być zgodna z jedną z wartości otherDeviceIds z odpowiedzi SYNC.
  • W przypadku modułu obsługi EXECUTE upewnij się, że polecenia HTTP, TCP lub UDP mogą być odbierane przez urządzenie i działają zgodnie z oczekiwaniami.
  • Pamiętaj, aby moduły obsługi zwracały Promise.
  • Unikaj utrzymywania stanu globalnego w pamięci. Zobacz Cykl życia aplikacji.
  • Błędy zgłaszane przez aplikację do realizacji lokalnej będą widoczne w logach błędów projektu .

Przygotowanie i udostępnienie wersji produkcyjnej

Gdy wszystko będzie gotowe do udostępnienia akcji inteligentnego domu, wykonaj te czynności:

  1. Otwórz terminal. W katalogu projektu uruchom polecenie npm run build. To polecenie generuje te pakiety JavaScript dla Twojej aplikacji w katalogu dist:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Na stronie Konfiguracja w Google Home Developer Console, przewiń do sekcji Realizacja lokalna i włącz to ustawienie.
  3. Za pomocą przycisków Prześlij JavaScript prześlij wygenerowane wcześniej pliki pakietu.
    Rysunek 3. Prześlij aplikację JavaScript.
    Prześlij obie wersje plików pakietu (Node, Web) aby akcja była skonfigurowana do prawidłowego działania we wszystkich środowiskach wykonawczych obsługiwanych przez realizację lokalną.
    1. Prześlij JavaScript kierowany na Node.js: prześlij bundle.js plik z katalogu dist/node.
    2. Prześlij JavaScript kierowany na Chrome (przeglądarkę): prześlij plik bundle.js z katalogu dist/web.
  4. Przetestuj akcję na urządzeniu z Asystentem, aby sprawdzić, czy działa zgodnie z oczekiwaniami w środowisku produkcyjnym. Więcej informacji znajdziesz w artykule Testowanie i udostępnianie akcji inteligentnego domu.
  5. Gdy będziesz zadowolony(-a) z działania akcji, prześlij ją do Google w celu wdrożenia w środowisku produkcyjnym, postępując zgodnie z instrukcjami w artykule Udostępnianie akcji inteligentnego domu. Obejmuje to wykonanie testu samodzielnego i przesłanie prośby o certyfikację.