действие.устройства.СИНХРОНИЗАЦИЯ
Это намерение запрашивает список устройств, связанных с данным пользователем, и их возможности.
Он срабатывает во время привязки учетной записи или когда пользователь вручную повторно синхронизирует свои устройства. Ваше выполнение должно отвечать поддерживаемым характеристикам и атрибутам для каждого устройства.
Ваш ответ SYNC
должен возвращать все устройства, связанные с пользователем. Это не определяет, доступно ли какое-либо конкретное устройство. Это обрабатывается ответами QUERY
и EXECUTE
.
Дополнительные сведения см. в разделе Идентификация и синхронизация .
Формат запроса
Поля | Тип | Описание |
---|---|---|
requestId | Нить | Необходимый. Идентификатор запроса. |
inputs | Множество | Необходимый. Список входных данных, соответствующих запросу намерения. |
[ item, ... ] | Объект | Тип и полезные данные, связанные с запросом намерения. |
intent | Необходимый. (Постоянное значение: Тип запроса намерения. |
Примеры
Запрос намерения SYNC
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
Формат ответа
Поля | Тип | Описание |
---|---|---|
requestId | Нить | Необходимый. Идентификатор соответствующего запроса. |
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" } } ] } }