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

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

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

Ваш ответ 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 Нить

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

Аппаратный тип устройства.

traits Множество

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

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

[ item, ... ] Нить

Имя поддерживаемой черты.

name Объект

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

Названия этого устройства.

defaultNames Множество

Список названий, предоставленный разработчиком, а не пользователем, часто названия производителей, SKU и т. д.

[ item, ... ] Нить

Имя устройства по умолчанию.

name Нить

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

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

nicknames Множество

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

[ item, ... ] Нить

Никнейм устройства.

willReportState логическое значение

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

Указывает, будет ли состояние этого устройства обновляться в режиме реального времени. (true для использования канала реального времени для отчета о состоянии и false для использования модели опроса.)

notificationSupportedByAgent логическое значение

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

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

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