действие.устройства.SYNC
Это намерение запрашивает список устройств, связанных с данным пользователем, и их возможности.
Он запускается во время привязки учетной записи или когда пользователь вручную повторно синхронизирует свои устройства. Ваше выполнение должно отвечать поддерживаемыми чертами и атрибутами для каждого устройства.
Ваш ответ SYNC
должен возвращать все устройства, связанные с пользователем. Это не определяет, доступно ли какое-либо конкретное устройство. Это обрабатывается ответами QUERY
и EXECUTE
.
Дополнительные сведения см. в разделе Идентификация и синхронизация .
Формат запроса
Поля | Тип | Описание |
---|---|---|
requestId | Нить | Необходимый. ID запроса. |
inputs | Множество | Необходимый. Список входных данных, соответствующих запросу намерения. |
[ item, ... ] | Объект | Тип и полезные данные, связанные с запросом намерения. |
intent | Необходимый. (Постоянное значение: Тип запроса намерения. |
Примеры
Запрос намерения SYNC
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
Формат ответа
Поля | Тип | Описание |
---|---|---|
requestId | Нить | Необходимый. ID соответствующего запроса. |
payload | Объект | Необходимый. Полезная нагрузка ответа на намерение. |
agentUserId | Нить | Необходимый. Отражает уникальный (и неизменный) идентификатор пользователя на платформе агента. Строка непрозрачна для Google, поэтому, если на стороне агента есть неизменяемая форма, а не изменяемая форма, используйте неизменяемую форму (например, номер счета, а не адрес электронной почты). |
errorCode | Нить | Для систематических ошибок на SYNC |
debugString | Нить | Подробная ошибка, которая никогда не будет представлена пользователям, но может быть зарегистрирована или использована во время разработки. |
devices | Множество | Необходимый. Список устройств, принадлежащих пользователю. Возвращается ноль или более устройств (ноль устройств означает, что у пользователя нет устройств или он отключил их все). |
[ item, ... ] | Объект | Метаданные устройства. |
id | Нить | Необходимый. Идентификатор устройства в облаке разработчика. Это должно быть уникальным для пользователя и для разработчика, так как в случаях совместного использования мы можем использовать это для дедупликации нескольких представлений одного и того же устройства. Он должен быть неизменным для устройства; если оно изменится, Ассистент будет рассматривать его как новое устройство. |
type | Нить | Необходимый. Аппаратный тип устройства. |
traits | Множество | Необходимый. Список особенностей этого устройства. Это определяет команды, атрибуты и состояния, которые поддерживает устройство. |
[ item, ... ] | Нить | Имя поддерживаемого признака. |
name | Объект | Необходимый. Имена этого устройства. |
defaultNames | Множество | Список имен, предоставленных разработчиком, а не пользователем, часто имена производителей, SKU и т. д. |
[ item, ... ] | Нить | Имя устройства по умолчанию. |
name | Нить | Необходимый. Основное имя устройства, обычно предоставляемое пользователем. Это также имя, которое Ассистент предпочитает для описания устройства в ответах. |
nicknames | Множество | Дополнительные имена, предоставленные пользователем для устройства. |
[ item, ... ] | Нить | Никнейм устройства. |
willReportState | логический | Необходимый. Указывает, будет ли состояние этого устройства обновляться в режиме реального времени. (true, чтобы использовать ленту в реальном времени для отчета о состоянии, и false, чтобы использовать модель опроса.) |
notificationSupportedByAgent | логический | (По умолчанию: Указывает, включены ли уведомления для устройства. |
roomHint | Нить | Предоставляет текущую комнату устройства в доме пользователя для упрощения настройки. |
deviceInfo | Объект | Содержит поля, описывающие устройство для использования в одноразовой логике, если это необходимо (например, «сломанная версия прошивки X для света Y требует настройки цвета» или «уязвимость в системе безопасности требует уведомления всех пользователей прошивки Z»). |
manufacturer | Нить | Особенно полезно, когда разработчик является центром для других устройств. Google может предоставить здесь стандартный список производителей, чтобы, например, TP-Link и Smartthings описывали «osram» одинаково. |
model | Нить | Модель или идентификатор SKU конкретного устройства. |
hwVersion | Нить | Конкретный номер версии, прикрепленный к аппаратному обеспечению, если он доступен. |
swVersion | Нить | Конкретный номер версии, прикрепленный к программному/микропрограммному обеспечению, если таковой имеется. |
attributes | Объект | Выровнено с атрибутами каждого признака, описанными в каждой ссылке на схему признаков. |
customData | Объект | Объект, определенный разработчиком, который будет прикреплен к будущим запросам QUERY и EXECUTE, максимум 512 байт на устройство. Используйте этот объект для хранения дополнительной информации об устройстве, которая может понадобиться вашей облачной службе, например глобальный регион устройства. Данные в этом объекте имеют несколько ограничений: Нет конфиденциальной информации, включая, помимо прочего, информацию, позволяющую установить личность. |
otherDeviceIds | Множество | Список альтернативных идентификаторов, используемых для идентификации облачного синхронизированного устройства для локального выполнения. |
[ item, ... ] | Объект | Альтернативный идентификатор устройства. |
agentId | Нить | Идентификатор агента. Как правило, это идентификатор проекта в консоли действий. |
deviceId | Нить | Необходимый. Идентификатор устройства, определенный агентом. Идентификатор устройства должен быть уникальным. |
Примеры
Ответ на намерение SYNC
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [ { "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "defaultNames": [ "My Outlet 1234" ], "name": "Night light", "nicknames": [ "wall plug" ] }, "willReportState": false, "roomHint": "kitchen", "deviceInfo": { "manufacturer": "lights-out-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" }, "otherDeviceIds": [ { "deviceId": "local-device-id" } ], "customData": { "fooValue": 74, "barValue": true, "bazValue": "foo" } }, { "id": "456", "type": "action.devices.types.LIGHT", "traits": [ "action.devices.traits.OnOff", "action.devices.traits.Brightness", "action.devices.traits.ColorSetting" ], "name": { "defaultNames": [ "lights out inc. bulb A19 color hyperglow" ], "name": "lamp1", "nicknames": [ "reading lamp" ] }, "willReportState": false, "roomHint": "office", "attributes": { "colorModel": "rgb", "colorTemperatureRange": { "temperatureMinK": 2000, "temperatureMaxK": 9000 }, "commandOnlyColorSetting": false }, "deviceInfo": { "manufacturer": "lights out inc.", "model": "hg11", "hwVersion": "1.2", "swVersion": "5.4" }, "customData": { "fooValue": 12, "barValue": false, "bazValue": "bar" } } ] } }