Добро пожаловать в Центр разработчиков Google Home, новое место, где можно научиться разрабатывать действия для умного дома. Примечание. Вы продолжите создавать действия в консоли действий.
Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

действие.устройства.SYNC

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

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

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

Дополнительные сведения см. в разделе Идентификация и синхронизация .

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

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

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

ID запроса.

inputs Множество

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

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

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

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

intent

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

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

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

Примеры

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

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

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

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

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

ID соответствующего запроса.

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