Тестируйте и отлаживайте свое приложение

Мы рекомендуем сначала создать локальное приложение для выполнения заказов, используя описанные ранее шаги, а затем протестировать интеграцию с системой «умный дом» в вашей собственной среде хостинга, выполнив следующие действия:

  1. В вашей собственной среде хостинга разместите HTML-страницу, на которой работает ваше локальное приложение для обработки заказов. Следующий фрагмент кода показывает пример статического HTML-файла, который запускает ваше локальное приложение для обработки заказов.

    <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. Тестирование управления устройством .

  3. Отладка из Chrome . Используйте точки останова и журналы для устранения неполадок в вашей интеграции.

  4. Измените и скомпилируйте свой код на TypeScript, затем повторите эти шаги.

Повторяя этот процесс сборки и тестирования, вы сможете быстро увидеть результаты своих изменений в действии, что поможет вам отлаживать ошибки в коде.

Тестирование управления устройством

В Google Home Developer Console необходимо указать URL-адрес вашего веб-приложения, который отображает HTML-код, загружаемый на устройство Google Home или Google Nest во время локальной обработки.

Для проверки возможности управления устройством с помощью локального выполнения заказов выполните следующие действия:

Хром

  1. На странице «Настройка и конфигурация» вашей облачной интеграции в Google Home Developer Console прокрутите до раздела «Локальное выполнение» и включите соответствующую настройку.
  2. В разделе «Тестовые URL-адреса» > «Тестовый URL для Chrome» укажите URL-адрес сервера разработки, который предоставляет HTML-код для запуска вашего локального приложения обработки заказов.
  3. Нажмите «Сохранить» . Для распространения изменений в консоли Google может потребоваться до 30 минут.
  4. Перезагрузите тестовое устройство Google Home или Google Nest.
  5. Отдайте команду своему смарт-устройству. Например, если ваше устройство поддерживает функцию включения/выключения , вы можете сказать: «Привет, Google, включи свет».

Node.js

  1. На странице «Настройка и конфигурация» в Google Home Developer Console прокрутите до раздела «Локальное выполнение» и включите соответствующую настройку.
  2. В разделе «Тестовые URL-адреса» > «Тестовый URL для Node» укажите URL-адрес сервера разработки, который обслуживает JavaScript-код, используемый для запуска вашего локального приложения обработки заказов.
  3. Нажмите «Сохранить» . Для распространения изменений в консоли Google может потребоваться до 30 минут.
  4. Перезагрузите тестовое устройство Google Home или Google Nest.
  5. Отдайте команду своему смарт-устройству. Например, если ваше устройство поддерживает функцию включения/выключения , вы можете сказать: «Привет, Google, включи свет».

Для получения более подробной информации о том, какая среда выполнения используется вашим устройством, см. раздел «Поддерживаемые устройства» .

Отладка из Chrome

Вы можете отлаживать локальное приложение для выполнения заказов с помощью инструментов разработчика Chrome . Прежде чем начать отладку, убедитесь, что ваша среда правильно настроена:

Чтобы подключить локальное приложение для обработки заказов к отладчику Chrome DevTools, выполните следующие действия:

Хром

  1. На локальном компьютере разработчика установите и запустите браузер Google Chrome .
  2. В адресной строке браузера Chrome откройте инспектор Chrome, введя: chrome://inspect#devices . На странице должен отобразиться список устройств, а ваш HTML-файл должен быть указан под именем тестируемого устройства Google Home или Google Nest.
  3. Нажмите на синюю ссылку «Просмотреть код элемента» под вашим HTML-кодом, чтобы запустить инструменты разработчика Chrome. Перейдите на вкладку «Консоль» . Платформа Local Home выводит версию вашего приложения и версию SDK Local Home в журнал консоли. Если вы видите этот журнал, это означает, что Google успешно загрузил ваше приложение и может к нему подключиться. В противном случае перезагрузите ваше устройство Google Home или Google Nest.
  4. Рисунок 1: Приложение для локального выполнения заказов в chrome://inspect.

Node.js

  1. На локальном компьютере разработчика установите и запустите браузер Google Chrome .
  2. Определите локальный IP-адрес вашего тестового устройства.
  3. В адресной строке браузера Chrome запустите инспектор Chrome, введя: chrome://inspect#devices .
  4. Выберите «Настроить...» , чтобы открыть параметры обнаружения целевых устройств .
  5. Рисунок 2: Настройки обнаружения целей в chrome://inspect.
  6. Введите DEVICE_IP_ADDRESS :9222 в список и нажмите «Готово» .
  7. Нажмите на синюю ссылку «Проверить код элемента» под вашим скриптом, чтобы запустить инструменты разработчика Chrome. Перейдите на вкладку «Консоль» . Платформа Local Home выводит версию вашего приложения и версию SDK Local Home в журнал консоли. Если вы видите этот журнал, это означает, что Google успешно загрузил ваше приложение и может к нему подключиться. В противном случае перезагрузите устройство Google Home или Google Nest.

Для получения более подробной информации о том, какая среда выполнения используется вашим устройством, см. раздел «Поддерживаемые устройства» .

Советы по отладке

В процессе отладки следует также учитывать несколько дополнительных моментов:

  • Не подключайте несколько устройств Google Home или Google Nest к своей тестовой учетной записи в одной локальной сети. В этом случае вы не сможете контролировать, какое именно устройство Google Home или Google Nest будет использоваться для выполнения локальных команд.
  • Обновите страницу в инструментах разработчика Chrome, чтобы перезагрузить локальный контейнер приложения для выполнения заказов с последним кодом с вашего URL-адреса для разработки. Это не сбрасывает платформу Local Home, которая может потребоваться для повторного запуска намерений платформы (например, IDENTIFY ) в вашем локальном приложении для выполнения заказов. Чтобы сбросить платформу Local Home, перезагрузите устройство Google Home или Google Nest.
  • Убедитесь, что ваше JavaScript-приложение загружается без ошибок. Для этого проверьте раздел консоли на странице инструментов разработчика. Если возникнет проблема, вы увидите сообщение примерно такого вида: 'Uncaught TypeError: Cannot read property 'open' of null'.
  • verificationId из ответа IDENTIFY должен совпадать с одним из otherDeviceIds из ответа SYNC .
  • Для обработчика EXECUTE убедитесь, что ваши команды HTTP, TCP или UDP принимаются вашим устройством и работают должным образом.
  • Обязательно возвращайте Promise от обработчиков.
  • Избегайте хранения глобального состояния в памяти. См. раздел «Жизненный цикл приложения» .
  • Ошибки, возникающие в локальном приложении для обработки заказов, будут отображаться в журналах ошибок вашего проекта.

Подготовка и запуск в производство

Когда вы будете готовы запустить функцию «Умный дом», выполните следующие шаги:

  1. Откройте терминал. В каталоге вашего проекта выполните команду npm run build . Эта команда сгенерирует следующие JavaScript-пакеты для вашего приложения в каталоге dist :
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. На странице «Настройка и конфигурация» в Google Home Developer Console прокрутите до раздела «Локальное выполнение» и включите соответствующую настройку.
  3. С помощью кнопок «Загрузить JavaScript» загрузите ранее сгенерированные файлы пакета.
    Рисунок 3: Загрузите ваше JavaScript-приложение.
    Убедитесь, что вы загрузили обе версии файлов пакета (Node, Web), чтобы ваше действие было настроено для корректной работы во всех средах выполнения, поддерживаемых локальным выполнением.
    1. Загрузите свой JavaScript-код для Node.js : загрузите файл bundle.js из каталога dist/node .
    2. Загрузите JavaScript-код для Chrome (браузера) : Загрузите файл bundle.js из каталога dist/web .
  4. Протестируйте свое действие на устройстве с поддержкой Google Assistant, чтобы убедиться, что оно работает должным образом в рабочей среде. Для получения дополнительной информации см. раздел «Тестирование и отправка действий умного дома» .
  5. Когда вы убедитесь, что ваше действие работает корректно, отправьте его в Google для развертывания в производственной среде, следуя инструкциям в разделе «Запуск действия для умного дома» . Это включает в себя выполнение шагов самотестирования и запроса на сертификацию.