Добро пожаловать в Центр разработчиков Google Home, новое место, где можно научиться разрабатывать действия для умного дома. Примечание. Вы продолжите создавать действия в консоли действий.

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

  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. Нажмите Сохранить . Распространение изменений консоли может занять до 30 минут.
  5. Перезагрузите тестовое устройство Google Home или Google Nest.
  6. Выполните команду на смарт-устройство. Например, если на вашем устройстве реализована черта OnOff , вы можете сказать: «Окей, Google, включи свет».

Node.js

  1. Откройте свой проект «Умный дом» в консоли «Действия».
  2. На левой панели навигации нажмите Действия .
  3. В разделе Настройка локального домашнего SDK (необязательно) > Введите URL-адрес тестирования для Node укажите URL-адрес сервера разработки, который обслуживает JavaScript, который запускает ваше локальное приложение выполнения.
  4. Нажмите Сохранить . Распространение изменений консоли может занять до 30 минут.
  5. Перезагрузите тестовое устройство Google Home или Google Nest.
  6. Выполните команду на смарт-устройство. Например, если на вашем устройстве реализована черта OnOff , вы можете сказать: «Окей, 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 от обработчиков.
  • Избегайте хранения глобального состояния в памяти. См. Жизненный цикл приложения .
  • Ошибки, выдаваемые вашим локальным приложением выполнения, будут отображаться в журналах ошибок вашего проекта.

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

Когда вы будете готовы запустить свой умный дом Action, выполните следующие действия:

  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 для развертывания в рабочей среде, следуя инструкциям в разделе Запустите действие для умного дома . Это включает в себя выполнение шагов самопроверки и запроса на сертификацию.