действие.устройства.СИНХРОНИЗАЦИЯ
Это намерение запрашивает список устройств, связанных с данным пользователем, и их возможностей.
Он активируется при привязке аккаунта или когда пользователь вручную повторно синхронизирует свои устройства. Ваш сервис должен предоставить информацию о поддерживаемых характеристиках и атрибутах для каждого устройства.
Ваш ответ SYNC
должен возвращать все устройства, связанные с пользователем. При этом не определяется, доступно ли какое-либо конкретное устройство. Это решается ответами QUERY
и EXECUTE
.
Более подробную информацию см. в разделе Идентификация и синхронизация .
Формат запроса
Поля | Тип | Описание |
---|---|---|
requestId | Нить | Необходимый. Идентификатор запроса. |
inputs | Множество | Необходимый. Список входных данных, соответствующих запросу намерения. |
[ item, ... ] | Объект | Тип и полезная нагрузка, связанные с запросом намерения. |
intent | Необходимый. (Постоянное значение: Тип запроса 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 | Множество | Список названий, предоставленных разработчиком, а не пользователем, часто это названия производителей, артикулы и т. д. |
[ item, ... ] | Нить | Имя устройства по умолчанию. |
name | Нить | Необходимый. Основное имя устройства, обычно указываемое пользователем. Это имя также будет предпочитаемым помощником для описания устройства в ответах. Имена будут усечены, если их длина превышает ограничение в 60 кодовых точек (символов) Unicode, и ошибки не возникнут. Разработчики несут ответственность за обработку длинных имён. |
nicknames | Множество | Дополнительные имена, предоставленные пользователем для устройства. |
[ item, ... ] | Нить | Псевдоним устройства. |
willReportState | Булев | Необходимый. Указывает, будут ли состояния этого устройства обновляться с помощью ленты реального времени. (значение true используется для использования ленты реального времени для сообщения о состоянии, а значение false — для использования модели опроса.) |
notificationSupportedByAgent | Булев | (По умолчанию: Указывает, включены ли уведомления для устройства. |
roomHint | Нить | Указывает текущее местоположение устройства в доме пользователя для упрощения настройки. |
deviceInfo | Объект | Содержит поля, описывающие устройство, для использования в одноразовой логике при необходимости (например, «неисправная версия прошивки X светильника Y требует корректировки цвета» или «уязвимость системы безопасности требует уведомления всех пользователей прошивки Z»). |
manufacturer | Нить | Особенно полезно, когда разработчик выступает в роли хаба для других устройств. Google может предоставить здесь стандартный список производителей, чтобы, например, TP-Link и Smartthings описывали «osram» одинаково. |
model | Нить | Идентификатор модели или артикула конкретного устройства. |
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" } } ] } }