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