действие.устройства.СИНХРОНИЗАЦИЯ

Это намерение запрашивает список устройств, связанных с данным пользователем, и их возможностей.

Он активируется при привязке аккаунта или когда пользователь вручную повторно синхронизирует свои устройства. Ваш сервис должен предоставить информацию о поддерживаемых характеристиках и атрибутах для каждого устройства.

Ваш ответ SYNC должен возвращать все устройства, связанные с пользователем. При этом не определяется, доступно ли какое-либо конкретное устройство. Это решается ответами QUERY и EXECUTE .

Более подробную информацию см. в разделе Идентификация и синхронизация .

Формат запроса

Поля Тип Описание
requestId Нить

Необходимый.

Идентификатор запроса.

inputs Множество

Необходимый.

Список входных данных, соответствующих запросу намерения.

[ item, ... ] Объект

Тип и полезная нагрузка, связанные с запросом намерения.

intent

Необходимый.

(Постоянное значение: "action.devices.SYNC" )

Тип запроса 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 Булев

(По умолчанию: false )

Указывает, включены ли уведомления для устройства.

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"
        }
      }
    ]
  }
}