action.devices.SYNC

Esta intención solicita la lista de dispositivos asociados con el usuario determinado y sus capacidades.

Se activa durante la vinculación de la cuenta o cuando un usuario vuelve a sincronizar manualmente sus dispositivos. Tu cumplimiento debe responder con los atributos y rasgos admitidos para cada dispositivo.

Tu respuesta de SYNC debe devolver todos los dispositivos asociados con el usuario. Esto no determina si se puede acceder a un dispositivo en particular. Esto se controla con las respuestas QUERY y EXECUTE.

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

Formato de solicitud

Campos Tipo Descripción
requestId String

Obligatorio.

Es el ID de la solicitud.

inputs Matriz

Obligatorio.

Es la lista de entradas que coinciden con la solicitud de intención.

[item, ...] Objeto

Tipo y carga útil asociados con la solicitud de intención.

intent

Obligatorio.

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

Es el tipo de solicitud de intención.

Ejemplos

Solicitud de intención de SYNC

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

Formato de respuesta

Campos Tipo Descripción
requestId String

Obligatorio.

ID de la solicitud correspondiente.

payload Objeto

Obligatorio.

Es la carga útil de la respuesta del 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 un formulario inmutable y uno mutable del lado del agente, usa el formulario 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

Es un error detallado que nunca se presentará a los usuarios, pero que se puede registrar o usar durante el desarrollo.

devices Matriz

Obligatorio.

Es la lista de dispositivos que posee el usuario. Se devuelven cero o más dispositivos (cero dispositivos significa que el usuario no tiene dispositivos o que los desconectó todos).

[item, ...] Objeto

Son los metadatos del dispositivo.

id String

Obligatorio.

Es el ID del dispositivo en la nube del desarrollador. Este valor debe ser único para el usuario y el desarrollador, ya que, en los casos de uso compartido, podemos usarlo para quitar las vistas duplicadas del mismo dispositivo. Debe ser inmutable para el dispositivo; si cambia, Asistente lo tratará como un dispositivo nuevo.

type String

Obligatorio.

Es el tipo de hardware del dispositivo.

traits Matriz

Obligatorio.

Es la lista de rasgos que tiene este dispositivo. Define los comandos, los atributos y los estados que admite el dispositivo.

[item, ...] String

Nombre del rasgo admitido.

name Objeto

Obligatorio.

Nombres de este dispositivo.

defaultNames Matriz

Es una lista de nombres proporcionados por el desarrollador en lugar del usuario, que suelen ser nombres de fabricantes, SKU, etcétera.

[item, ...] String

Nombre predeterminado del dispositivo.

name String

Obligatorio.

Es el nombre principal del dispositivo, que suele proporcionar el usuario. Este también es el nombre que Asistente preferirá para describir el dispositivo en las respuestas. Los nombres se truncarán si superan el límite de 60 puntos de código Unicode (caracteres) y no se generarán errores. Los desarrolladores son responsables de controlar los nombres largos.

nicknames Matriz

Son los nombres adicionales que el usuario proporcionó para el dispositivo.

[item, ...] String

Es el sobrenombre del dispositivo.

willReportState Booleano

Obligatorio.

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

notificationSupportedByAgent Booleano

(Predeterminado: false)

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

roomHint String

Proporciona 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 usar en la lógica única si es necesario (p.ej., "la versión X de firmware defectuosa de la luz Y requiere ajustar el color" o "la falla de seguridad requiere notificar a todos los usuarios del firmware Z").

manufacturer String

Es especialmente útil cuando el desarrollador es un centro para otros dispositivos. Es posible que Google proporcione una lista estándar de fabricantes aquí para que, por ejemplo, TP-Link y Smartthings describan "Osram" de la misma manera.

model String

Es el identificador del modelo o 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 rasgo que se describen en cada referencia del esquema de rasgos.

customData Objeto

Objeto definido por el desarrollador que se adjuntará a futuras solicitudes de QUERY y EXECUTE. El tamaño máximo es de 512 bytes por dispositivo. Usa este objeto para almacenar información adicional sobre el dispositivo que tu servicio en la nube podría necesitar, como la región global del dispositivo. Los datos de este objeto tienen algunas restricciones: no deben incluir información sensible, como información de identificación personal.

otherDeviceIds Matriz

Es una lista de IDs alternativos que se usan para identificar un dispositivo sincronizado con la nube para la ejecución local.

[item, ...] Objeto

ID alternativo del dispositivo.

agentId String

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

deviceId String

Obligatorio.

Es el ID del dispositivo definido por el agente. El ID del dispositivo debe ser único.

Ejemplos

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