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: "action.devices.EXECUTE").

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:

SUCCESS
Confirma que el comando se ejecutó correctamente.
PENDING
El comando está en cola, pero se espera que se realice correctamente.
OFFLINE
El dispositivo de destino está sin conexión o no se puede acceder a él.
EXCEPTIONS
Hay un problema o una alerta asociados con un comando. El comando podría tener éxito o fallar. Por lo general, este tipo de estado se establece cuando quieres enviar información adicional sobre otro dispositivo conectado.
ERROR
El dispositivo de destino no puede realizar el comando.
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"
      }
    ]
  }
}