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

Местное исполнение

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

Local Home SDK улучшает интеграцию вашего умного дома с Google Assistant, добавляя локальный путь выполнения для маршрутизации намерений умного дома .

SDK позволяет вам написать локальное приложение, используя TypeScript или JavaScript, которое содержит бизнес-логику вашего умного дома. Устройства Google Home или Google Nest могут загружать и запускать ваше приложение на устройстве. Ваше приложение связывается напрямую с вашими существующими смарт-устройствами через Wi-Fi в локальной сети (LAN) для выполнения пользовательских команд по существующим протоколам.

Интеграция SDK обеспечивает повышение производительности вашего умного дома Action, включая более низкую задержку и более высокую надежность. Локальное выполнение поддерживается для всех типов устройств и характеристик устройств, кроме тех, которые используют дополнительную проверку пользователя .

Начать сборку Попробовать образец

Понять, как это работает

Получив ответ SYNC от вашего облачного решения, платформа Local Home сканирует локальную сеть пользователя, используя mDNS, широковещательную рассылку UDP или UPnP, чтобы обнаружить интеллектуальные устройства, подключенные к Assistant.

Платформа отправляет намерение IDENTIFY , чтобы определить, является ли устройство управляемым локально, путем сравнения идентификатора устройства в ответе IDENTIFY с идентификаторами, возвращенными более ранним ответом SYNC . Если обнаруженное устройство является концентратором или мостом, платформа отправляет намерение REACHABLE_DEVICES и рассматривает концентратор как прокси-устройство для локальной связи.

Когда она получает ответ, подтверждающий локальное устройство, платформа устанавливает локальный путь выполнения к устройству Google Home или Google Nest пользователя, а затем направляет пользовательские команды для локального выполнения.

Когда пользователь запускает действие умного дома с локальным путем выполнения, помощник отправляет намерение EXECUTE или QUERY на устройство Google Home или Google Nest, а не на облачное выполнение. Затем устройство запускает локальное приложение для обработки намерения.

На этом рисунке показан поток выполнения для локального выполнения. Путь выполнения захватывает намерение пользователя с телефона с помощью Google Assistant, затем намерение пользователя обрабатывается Google Cloud, затем выполняется локально на устройстве Google Home, и команда выдается непосредственно на концентратор устройства или непосредственно на устройство. . Облако разработчика доступно в качестве резервного облака.
Рисунок 1: Добавление локального пути выполнения для вашего действия «умный дом».

Платформа Local Home не является детерминированной при выборе устройства Google Home или Google Nest для запуска команды. EXECUTE и QUERY могут поступать через любое устройство Google Home или Google Nest, определенное в той же структуре Home Graph, что и целевое устройство.

Местное приложение для выполнения

Локальное приложение выполнения содержит бизнес-логику для обработки намерений, отправленных платформой Local Home, и доступа к вашему интеллектуальному устройству через локальную сеть. Ожидается, что никакая модификация вашего оборудования не будет интегрировать локальное исполнение. Приложение выполняет запросы действий умного дома, отправляя команды управления на смарт-устройство через протоколы прикладного уровня, включая HTTP, TCP или UDP. В случае сбоя локального пути выполнения ваше облачное выполнение используется в качестве резервного пути выполнения.

Для поддержки создания приложения Local Home SDK предоставляет следующие два основных класса:

  • DeviceManager : предоставляет методы для связи со смарт-устройствами с использованием сокетов TCP, UDP или HTTP-запросов.
  • App : предоставляет методы для присоединения обработчиков намерений, которые Google отправляет после обнаружения локально управляемых устройств ( IDENTIFY , REACHABLE_DEVICES ). Этот класс также выполняет пользовательские команды ( EXECUTE ) и отвечает на пользовательские запросы о текущем состоянии устройства ( QUERY ).

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

Report State API в настоящее время не поддерживается для локального выполнения. Google полагается на ваше облачное исполнение для обработки этих запросов.

Жизненный цикл приложения

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

Устройства Google Home или Google Nest ограничены в памяти, и ваше локальное приложение выполнения может быть прекращено в любое время из-за нехватки памяти в системе. Это может произойти, если ваше приложение начинает потреблять слишком много памяти или если системе нужно освободить место для другого приложения. Платформа Local Home перезапускает ваше приложение только тогда, когда появляются новые намерения для доставки и достаточные ресурсы памяти для запуска приложения.

Платформа Local Home выгружает ваше приложение после тайм-аута простоя, когда пользователь отменяет связь со своей учетной записью или больше нет устройств, поддерживающих локальное выполнение, связанных с agentUserId пользователя.

Поддерживаемые устройства

Платформа Local Home запускает ваше локальное приложение на поддерживаемых устройствах Google Home или Google Nest. В следующей таблице описаны поддерживаемые устройства и среда выполнения, используемая на каждом устройстве. Дополнительные сведения о требованиях к среде выполнения см. в разделе Среда выполнения .

Устройство Тип Среда
Главная страница Google Оратор Хром
Google Главная Мини Оратор Хром
Google Главная Макс Оратор Хром
Гнездо Мини Оратор Хром
Гнездо Хаб Отображать Хром
Гнездо Хаб Макс Отображать Хром
Гнездо Wi-Fi Маршрутизатор Node.js
Точка Хром

Среда выполнения

Среда выполнения вашего локального приложения зависит от вашего устройства . Платформа Local Home поддерживает следующие среды выполнения:

  • Chrome : ваше локальное приложение выполнения выполняется в контексте window браузера Chrome с Chrome M80 или более поздней версии с поддержкой ECMAScript версии ES2018 .
  • Node.js : ваше локальное приложение выполнения выполняется как сценарий в процессе Node.js, работающем под управлением Node v10.x LTS или более поздней версии с поддержкой ECMAScript версии ES2018 .

Структура исходного кода

Мы рекомендуем объединять ваши зависимости в один файл JavaScript, используя конфигурации сборщика, предоставляемые Local Home SDK, и упаковывать исходный код в виде немедленно вызываемого функционального выражения (IIFE) .

Путь реализации

Чтобы использовать Local Home SDK для интеграции вашего умного дома, вам необходимо выполнить следующие задачи:

1 Настройте конфигурацию сканирования Настройте консоль действий с необходимыми параметрами, чтобы Помощник мог обнаруживать локально управляемые устройства.
2 Обновите ответ SYNC в вашем облаке В своем облачном выполнении измените обработчик запроса SYNC , чтобы он поддерживал поле otherDeviceIds , которое платформа использует для установления локального пути выполнения. В этом поле укажите идентификаторы устройств, которыми можно управлять локально.
3 Внедрите локальное приложение выполнения Используйте Local Home SDK для создания приложения JavaScript для обработки намерений IDENTIFY , EXECUTE и QUERY . Для узловых или мостовых прокси-устройств также следует обрабатывать намерение REACHABLE_DEVICES .
4 Тестируйте и отлаживайте свое приложение Протестируйте свою интеграцию (или пройдите самостоятельную сертификацию ) с помощью Google Home Test Suite .

Прежде чем вы начнете