action.devices.EXECUTE
Este intent envía comandos para ejecutar en dispositivos de casa inteligente.
La entrega debe procesar cada comando, transmitirlo al dispositivo correspondiente y mostrar el estado nuevo en la respuesta EXECUTE
.
Un solo intent EXECUTE
puede orientarse a varios dispositivos con varios comandos.
Por ejemplo, un intent activado puede establecer el brillo y el color en un conjunto de luces o puede establecer varias luces con un color diferente.
Para obtener más detalles, consulta Cómo consultar y ejecutar.
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 intent. |
[item, ...] |
Objeto |
Es el tipo y la carga útil asociados con la solicitud de intent. |
intent |
Obligatorio. (valor constante: Tipo de solicitud de intent. |
|
payload |
Objeto |
Obligatorio. Carga útil de la solicitud EXECUTE. |
commands |
Matriz |
Obligatorio. Es una lista de pares de comandos y destinos de dispositivos. |
[item, ...] |
Objeto |
Es un conjunto de comandos para ejecutar en los destinos de dispositivos conectados. |
devices |
Matriz |
Obligatorio. Es la lista de dispositivos de destino. |
[item, ...] |
Objeto |
Es el dispositivo de destino que se ejecutará. |
id |
String |
Obligatorio. ID de dispositivo, según el ID proporcionado en SYNC. |
customData |
Objeto |
Si el objeto customData opaco se proporciona en SYNC, se envía aquí. |
execution |
Matriz |
Obligatorio. Es una lista de comandos para ejecutar en los dispositivos de destino. |
[item, ...] |
Objeto |
Comando del dispositivo. |
command |
String |
Obligatorio. Es el comando que se ejecutará, por lo general, con parámetros adicionales. |
params |
Objeto |
Se alinean con los parámetros de cada comando. |
Ejemplos
Solicitud de intent EXECUTE
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123", "customData": { "fooValue": 74, "barValue": true, "bazValue": "sheepdip" } }, { "id": "456", "customData": { "fooValue": 36, "barValue": false, "bazValue": "moarsheep" } } ], "execution": [ { "command": "action.devices.commands.OnOff", "params": { "on": true } } ] } ] } } ] }
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 del intent. |
errorCode |
String |
Es un código de error para toda la transacción por fallas de autenticación y falta de disponibilidad del sistema del desarrollador. Para errores de dispositivos individuales, usa errorCode dentro del objeto device. |
debugString |
String |
Es un error de respuesta detallado que nunca se presentará a los usuarios, pero que se puede registrar o usar durante el desarrollo. |
commands |
Matriz |
Cada objeto contiene uno o más dispositivos con detalles de la respuesta. Nota: Es posible que no se agrupen de la misma manera que en la solicitud. Por ejemplo, la solicitud podría encender 7 luces, con 3 que se encienden correctamente y 4 que fallan, por lo que habría dos grupos en la respuesta. |
[item, ...] |
Objeto |
Es el resultado de la ejecución del dispositivo. |
ids |
Matriz |
Obligatorio. Es la lista de IDs de dispositivos correspondientes a este estado. |
[item, ...] |
String |
ID de dispositivo |
status |
String |
Obligatorio. Es el resultado de la operación de ejecución. Valores admitidos:
|
states |
Objeto |
Se alinean con los estados por rasgo que se describen en cada referencia del esquema de rasgo. Estos son los estados después de la ejecución, si están disponibles. |
online |
Booleano |
Indica si el dispositivo está en línea (es decir, si se puede acceder a él) o no. |
errorCode |
String |
Expande el estado ERROR si es necesario desde los códigos de error predeterminados, que se asignarán a los errores que se presentan a los usuarios. |
debugString |
String |
Es un error detallado a nivel del comando que nunca se presentará a los usuarios, pero que se puede registrar o usar durante el desarrollo. |
Ejemplos
Respuesta del intent EXECUTE
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "on": true, "online": true } }, { "ids": [ "456" ], "status": "ERROR", "errorCode": "deviceTurnedOff" } ] } }