Занятия

Намерения умного дома – это простые объекты обмена сообщениями, которые описывают, какую интеграцию Cloud-to-cloud нужно выполнить, например включить свет или транслировать аудио на колонку.

Все намерения smart home содержатся в пространстве имен action.devices, и вы должны обеспечить их выполнение. Каждый раз, когда Google Assistant отправляет намерение на выполнение, токен доступа OAuth 2 стороннего пользователя передается в заголовке авторизации.

Поддерживаются следующие намерения smart home:

СИНХРОНИЗИРОВАТЬ

Намерение action.devices.SYNC используется для запроса списка устройств smart home, которые пользователь подключил и которые доступны для использования.

Когда пользователь настраивает устройство с помощью Google Home app (GHA), он также проходит аутентификацию в облачной инфраструктуре. Затем Assistant получает токен OAuth2. В этот момент Assistant отправляет намерение action.devices.SYNC в ваш сервис выполнения, чтобы получить исходный список устройств пользователя и их возможностей из вашей облачной инфраструктуры.

На рисунке показано взаимодействие между инфраструктурой Google и инфраструктурой партнера. Из инфраструктуры Google список партнеров передается в клиентское приложение Ассистента, а затем – в инфраструктуру партнера для завершения аутентификации OAuth. Аутентификация OAuth на стороне партнера включает компонент WebView для настройки партнера, компонент WebView для OAuth, дополнительные настройки и условия, а также облачные сервисы партнера. Затем инфраструктура партнера возвращает учетные данные OAuth клиентскому приложению Ассистента. Облачные сервисы партнера отправляют информацию о доступных устройствах и их возможностях сервисам Ассистента, которые затем сохраняют ее в Home Graph.
Рисунок 1. Взаимодействие между инфраструктурой Google и партнера

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

Блок-схема намерения SYNC
Рисунок 2. Намерение SYNC

При настройке локального выполнения платформа Local Home проверяет ответ SYNC от облачного выполнения действия smart home. Чтобы узнать, как изменить ответ SYNC для поддержки локального выполнения, прочитайте статью Обновление ответа SYNC в облачном выполнении.

QUERY

Намерение action.devices.QUERY используется для запроса текущего состояния устройств smart home.

Когда пользователи запрашивают статус устройства, например Окей, Google, какой свет включен на кухне?, Assistant отправляет намерение action.devices.QUERY в ваш сервис выполнения.

Блок-схема намерения QUERY
Рисунок 3. Намерение QUERY

Чтобы пользователям было удобнее, реализуйте отчет о состоянии, который будет отправлять текущее состояние устройств пользователя напрямую в Google Home Graph. Например, так Assistant узнает, что пользователь включил умный светильник с помощью физического выключателя.

Как передавать данные о состоянии устройства с помощью Report State
Рисунок 4. Отправка отчетов о состоянии устройства

EXECUTE

Намерение action.devices.EXECUTE используется для передачи команд, которые должны выполняться на устройствах smart home.

Когда пользователи отправляют команды на устройства с помощью Assistant, ваше выполнение получает намерение action.devices.EXECUTE, которое описывает действие и устройства, на которых оно должно быть выполнено. Пользователь может выполнить действие на устройстве с помощью команды, например Окей, Google, включи свет в гостиной.

Блок-схема намерения EXECUTE
Рисунок 5. Интент EXECUTE

ОТКЛЮЧИТЬ

Интент action.devices.DISCONNECT активируется, когда пользователь отменяет связь аккаунта приложения с Assistant. После получения намерения action.devices.DISCONNECT вы не должны сообщать о состоянии устройств этого пользователя.