action.devices.SYNC

Este intent solicita la lista de dispositivos asociados con un usuario determinado y sus capacidades.

Se activa durante la vinculación de cuentas o cuando un usuario vuelve a sincronizar sus dispositivos manualmente. Tu entrega debería responder con la y atributos admitidos para cada dispositivo.

La respuesta de SYNC debería mostrar todos los dispositivos asociados con el usuario. Esto no determina si se puede acceder a un dispositivo en particular. Esto se controla QUERY y EXECUTE respuestas.

Para obtener más detalles, consulta Cómo identificar y sincronizar.

Formato de la solicitud

Campos Tipo Descripción
requestId String

Obligatorio.

Es el ID de la solicitud.

inputs Matriz

Obligatorio.

Lista de entradas que coinciden con la solicitud de intent.

[item, ...] Objeto

Tipo y carga útil asociados con la solicitud de intent.

intent

Obligatorio.

(Valor constante: "action.devices.SYNC")

Tipo de solicitud de intent.

Ejemplos

Solicitud de intent SYNC

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

Formato de respuesta

Campos Tipo Descripción
requestId String

Obligatorio.

Es el ID de la solicitud correspondiente.

payload Objeto

Obligatorio.

Carga útil de la respuesta de intent.

agentUserId String

Obligatorio.

Refleja el ID de usuario único (e inmutable) en la plataforma del agente. La cadena es opaca para Google, por lo que, si hay una forma inmutable en lugar de una mutable del lado del agente, usa la forma inmutable (p.ej., un número de cuenta en lugar de un correo electrónico).

errorCode String

Para errores sistemáticos en SYNC

debugString String

Errores detallados que nunca se presentarán a los usuarios, pero que pueden registrarse o usarse durante el desarrollo.

devices Matriz

Obligatorio.

Es la lista de dispositivos que son propiedad del usuario. No se devuelven ninguno o más dispositivos (cero dispositivos significa que el usuario no tiene dispositivos o los desconectó todos).

[item, ...] Objeto

Metadatos del dispositivo.

id String

Obligatorio.

El ID del dispositivo en la nube del desarrollador. Esta información debe ser única para el usuario y el desarrollador, ya que en los casos de uso compartido podemos usarla para anular la duplicación de varias vistas del mismo dispositivo. Debe ser inmutable para el dispositivo. Si cambia, Asistente lo considerará como un dispositivo nuevo.

type String

Obligatorio.

Es el tipo de hardware del dispositivo.

traits Matriz

Obligatorio.

Lista de características que tiene este dispositivo. Esto define los comandos, atributos y estados que admite el dispositivo.

[item, ...] String

Nombre de la característica admitida.

name Objeto

Obligatorio.

Nombres de este dispositivo.

defaultNames Matriz

Lista de nombres que proporciona el desarrollador en lugar del usuario, a menudo nombres de fabricantes, SKU, etcétera

[item, ...] String

Nombre predeterminado del dispositivo.

name String

Obligatorio.

Nombre principal del dispositivo, proporcionado por el usuario en general. Este también es el nombre que el Asistente preferirá para describir el dispositivo en las respuestas.

nicknames Matriz

Nombres adicionales proporcionados por el usuario para el dispositivo.

[item, ...] String

Sobrenombre del dispositivo.

willReportState Booleano

Obligatorio.

Indica si el feed en tiempo real actualizará los estados de este dispositivo. (true para usar el feed en tiempo real para el estado de los informes y falso para usar el modelo de sondeo).

notificationSupportedByAgent Booleano

(Predeterminado: false)

Indica si las notificaciones están habilitadas para el dispositivo.

roomHint String

Indica la habitación actual del dispositivo en la casa del usuario para simplificar la configuración.

deviceInfo Objeto

Contiene campos que describen el dispositivo para su uso en una lógica única si es necesario (p.ej., "la versión de firmware X de la luz Y no funciona requiere ajustar el color" o "una falla de seguridad requiere notificar a todos los usuarios sobre el firmware Z").

manufacturer String

Esto es especialmente útil cuando el desarrollador es un concentrador para otros dispositivos. Google puede proporcionar una lista estándar de fabricantes para que, p.ej., TP-Link y Smartthings describen a "osram" de la misma manera.

model String

Indica el modelo o identificador de SKU del dispositivo en particular.

hwVersion String

Número de versión específico adjunto al hardware, si está disponible.

swVersion String

Número de versión específico adjunto al software o firmware, si está disponible.

attributes Objeto

Se alinea con los atributos por característica descritos en cada referencia de esquema de características.

customData Objeto

Es el objeto definido por el desarrollador que se adjuntará a las futuras solicitudes QUERY y EXECUTE, con un máximo de 512 bytes por dispositivo. Usa este objeto para almacenar información adicional sobre el dispositivo que podría necesitar tu servicio en la nube, como la región global del dispositivo. Los datos de este objeto tienen algunas restricciones: No se permite la información sensible, incluida, sin limitaciones, la información de identificación personal.

otherDeviceIds Matriz

Lista de los IDs alternativos que se utilizan para identificar un dispositivo sincronizado en la nube para la ejecución local.

[item, ...] Objeto

ID de dispositivo alternativo.

agentId String

El ID del agente. Por lo general, es el ID del proyecto en la Consola de Actions.

deviceId String

Obligatorio.

El ID de dispositivo que define el agente. El ID de dispositivo debe ser único.

Ejemplos

Respuesta al intent 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"
        }
      }
    ]
  }
}