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