Намерения умного дома — это простые объекты обмена сообщениями, которые описывают, какую интеграцию 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 есть список партнеров, доступный клиентскому приложению Assistant, который затем передается в партнерскую инфраструктуру для завершения аутентификации OAuth. OAuth аутентификация на стороне партнера — это веб-просмотр настройки партнера, веб-просмотр OAuth, дополнительные настройки и условия, а также партнерские облачные сервисы. Партнерская инфраструктура, затем возвращает учетные данные OAuth в клиентское приложение Assistant. Партнер облачные службы отправляют доступные устройства и возможности в службы Ассистента, который затем сохраняет информацию в Home Graph.](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome001.png?authuser=002&hl=ru)
Чтобы избежать отсоединения и повторной привязки учетной записи пользователя, вы можете отправить запрос на синхронизацию в Assistant . Это отправляет вам намерение action.devices.SYNC
синхронизировать список устройств и возможностей. Дополнительные сведения см. в разделе «Реализация синхронизации запросов» .
![Блок-схема намерения SYNC](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome002.png?authuser=002&hl=ru)
Во время настройки локального выполнения платформа Local Home проверяет ответ SYNC
от облачного выполнения вашего smart home . Дополнительные сведения о том, как изменить ответ SYNC
для поддержки локального выполнения, см. в разделе Обновление ответа SYNC при выполнении в облаке .
ЗАПРОС
Намерение action.devices.QUERY
используется для запроса текущего состояния устройств smart home .
Когда пользователи запрашивают статус устройства, чтобы ответить на такой вопрос, как «Окей, Google, какой свет горит на кухне?» , Assistant отправляет намерение action.devices.QUERY
для вашего выполнения.
![Блок-схема намерения QUERY](https://developers.home.google.com/static/cloud-to-cloud/primer/images/query-diagram.png?authuser=002&hl=ru)
Для обеспечения наилучшего взаимодействия с пользователем следует реализовать отчет о состоянии , чтобы заранее сообщать о текущем состоянии устройств пользователя непосредственно в Google Home Graph . Например, это позволяет Assistant узнать, включил ли ваш пользователь интеллектуальный свет с помощью физического выключателя света.
![Отчет о состоянии устройства с помощью Report State](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome004.png?authuser=002&hl=ru)
ВЫПОЛНЯТЬ
Намерение action.devices.EXECUTE
используется для предоставления команд для выполнения на устройствах smart home .
Когда пользователи отправляют команды на устройства с помощью Assistant , ваше выполнение получает намерение action.devices.EXECUTE
для вашего выполнения, которое описывает действие и устройства, на которые следует воздействовать. Пользователь может выполнить действие на устройстве с помощью такой команды, как «Эй, Google, включи свет в моей гостиной» .
![Блок-схема намерения EXECUTE](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome003.png?authuser=002&hl=ru)
ОТКЛЮЧИТЬ
Намерение action.devices.DISCONNECT
срабатывает, чтобы сообщить вам, когда пользователь отвязал учетную запись приложения от Assistant . После получения намерения action.devices.DISCONNECT
вам не следует сообщать о состоянии устройств этого пользователя.