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

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

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

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

Для получения более подробной информации см. раздел «Идентификация и синхронизация» .

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

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

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

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

inputs Множество

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

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

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

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

intent

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

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

Тип запроса намерения.

Примеры

Запрос намерения SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Формат ответа

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

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

Идентификатор соответствующего запроса.

payload Объект

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

Полезная нагрузка ответа на намерение.

agentUserId Нить

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

Отражает уникальный (и неизменяемый) идентификатор пользователя на платформе агента. Эта строка непрозрачна для Google, поэтому, если на стороне агента используется неизменяемая форма, а если изменяемая, используйте неизменяемую форму (например, номер счета, а не адрес электронной почты).

errorCode Нить

Для систематических ошибок в SYNC

debugString Нить

Подробное сообщение об ошибке, которое никогда не будет показано пользователям, но может быть зарегистрировано или использовано в процессе разработки.

devices Множество

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

Список устройств, принадлежащих пользователю. Возвращается ноль или более устройств (ноль устройств означает, что у пользователя нет устройств или он отключил их все).

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

Метаданные устройства.

id Нить

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

Идентификатор устройства в облаке разработчика. Он должен быть уникальным как для пользователя, так и для разработчика, поскольку в случаях совместного использования мы можем использовать его для удаления дубликатов нескольких представлений одного и того же устройства. Он должен быть неизменяемым для устройства; если он изменится, Ассистент будет рассматривать его как новое устройство.

type Нить

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

Тип аппаратного устройства.

Необходимо совпадать с шаблоном: ^action.devices.types.[a-zA-z]+$ .

traits Множество

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

Список характеристик данного устройства. Здесь определяются команды, атрибуты и состояния, которые поддерживает устройство.

[ item, ... ] Нить

Название поддерживаемого признака.

Необходимо совпадать с шаблоном: ^action.devices.traits.[a-zA-z]+$ .

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