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

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

  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, а затем повторите эти шаги.

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

Контроль испытательного устройства

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

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

Хром

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

Node.js

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

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

Отладка из Chrome

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

  • Вы установили URL-адрес разработки в консоли как URL-адрес, доступный для устройства Google Home или Google Nest (либо в локальной сети, либо через Интернет).
  • Ваше устройство подключено к той же локальной сети, что и тестируемое устройство Google Home или Google Nest.
  • Ваша сеть не блокирует пакеты между устройствами.
  • Вы вошли в систему с одной и той же учетной записью Google на консоли действий и на устройстве Google Home или Google Nest.
  • Вы обновили ответ SYNC в своем облачном исполнении . Он должен возвращать хотя бы одно допустимое значение в otherDeviceIds .
  • Вы ввели правильную информацию о конфигурации сканирования в консоли действий.

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

Хром

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

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

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

Некоторые дополнительные вещи, которые следует учитывать во время отладки, включают:

  • Не подключайте несколько устройств Google Home или Google Nest к своей тестовой учетной записи в одной локальной сети. Вы не сможете контролировать, какое устройство Google Home или Google Nest предназначено для локальных команд выполнения.
  • Обновите страницу в Chrome DevTools, чтобы перезагрузить контейнер локального приложения для выполнения последней версии кода с URL-адреса разработки. Это не сбрасывает локальную домашнюю платформу, которая может потребоваться для повторного запуска намерений платформы (например, IDENTIFY ) в вашем местном приложении выполнения. Чтобы сбросить платформу Local Home, перезагрузите устройство Google Home или Google Nest.
  • Убедитесь, что ваше приложение JavaScript загружается без ошибок. Для этого проверьте раздел консоли на странице DevTools. Если возникнет проблема, вы увидите такое сообщение: 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. В консоли загрузите приложение JavaScript, нажав «Разработка» > «Действия» . В разделе «Настроить локальный домашний SDK» нажмите «Загрузить файлы JavaScript» .
    Рисунок 3. Загрузите приложение JavaScript.
  3. В диалоговом окне «Загрузить файлы » загрузите ранее созданные файлы пакета. Обязательно загрузите обе версии файлов пакета (Node, Web), чтобы ваше действие было настроено для правильной работы во всех средах выполнения, которые поддерживают локальное выполнение.
    1. Загрузите свой JavaScript, ориентированный на Node.js. Загрузите файл bundle.js из каталога dist/node .
    2. Загрузите свой JavaScript для Chrome (браузер) . Загрузите файл bundle.js из каталога dist/web .
  4. Проверьте свое действие на устройстве с поддержкой Ассистента, чтобы убедиться, что оно ведет себя должным образом в производственной среде. Чтобы узнать больше, см. «Протестируйте и поделитесь своим умным домом. Действие» .
  5. Когда вы будете удовлетворены тем, как работает ваше действие, отправьте его в Google для производственного развертывания, следуя инструкциям в разделе «Запуск действия умного дома» . Это включает в себя выполнение шагов самотестирования и запроса на сертификацию.