action.devices.SYNC

Este intent 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 sus dispositivos de forma manual. Tu entrega debe responder con las características y los atributos admitidos para cada dispositivo.

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

Para obtener más detalles, consulta Identifica y sincroniza.

Formato de la solicitud

Campos Tipo Descripción
requestId String

Obligatorio.

ID de la solicitud.

inputs Matriz

Obligatorio.

Lista de entradas que coinciden con la solicitud del intent.

[item, ...] Objeto

Tipo y carga útil asociadas con la solicitud de intent

intent

Obligatorio.

(Valor de la 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 la respuesta

Campos Tipo Descripción
requestId String

Obligatorio.

ID de la solicitud correspondiente.

payload Objeto

Obligatorio.

Carga útil de respuesta de intent.

agentUserId String

Obligatorio.

Refleja el ID de usuario único (e inmutable) en la plataforma del agente. La string es opaca para Google, por lo que, si hay una forma inmutable en comparación con una mutable del lado del agente, usa la forma inmutable (p.ej., un número de cuenta en lugar de 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 podrá registrar o usar durante el desarrollo.

devices Matriz

Obligatorio.

Lista de dispositivos que pertenecen al usuario. Se muestran cero o más dispositivos (cero dispositivos significa que el usuario no tiene ningún dispositivo o que los desconectó a todos).

[item, ...] Objeto

Metadatos del dispositivo

id String

Obligatorio.

Es el ID del dispositivo en la nube del desarrollador. Debe ser único para el usuario y el desarrollador, ya que, en los casos de uso compartido, se puede usar para anular duplicados de varias vistas del mismo dispositivo. Debe ser inmutable para el dispositivo; si cambia, Asistente lo tratará como un dispositivo nuevo.

type String

Obligatorio.

El tipo de hardware del dispositivo.

traits Matriz

Obligatorio.

Lista de características que tiene este dispositivo. Define los comandos, los atributos y los 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 proporcionados por el desarrollador en lugar del usuario, generalmente nombres del fabricante, SKU, etc.

[item, ...] String

Nombre predeterminado del dispositivo.

name String

Obligatorio.

Indica el nombre principal del dispositivo, generalmente proporcionado por el usuario. Este también es el nombre que usará el Asistente para describir el dispositivo en las respuestas.

nicknames Matriz

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

[item, ...] String

Sobrenombre del dispositivo.

willReportState Booleano

Obligatorio.

Indica si el feed en tiempo real actualizará este estado del dispositivo. (Es verdadero para usar el feed en tiempo real en el estado de 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

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

manufacturer String

Esto resulta particularmente útil cuando el desarrollador es el centro de otros dispositivos. Google puede proporcionar una lista estándar de los fabricantes aquí para que, por ejemplo, TP-Link y Smartthings describan "osram" de la misma manera.

model String

Es el identificador de modelo o SKU del dispositivo específico.

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 que se describen en cada referencia de esquema de características.

customData Objeto

Objeto definido por el programador que se adjuntará a futuras solicitudes QUERY y EXECUTE, como máximo 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 hay información sensible, lo que incluye, sin limitarse a ello, información de identificación personal.

otherDeviceIds Matriz

Lista de los ID alternativos utilizados 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.

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

Ejemplos

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