action.devices.EXECUTE

Essa intent envia comandos para serem executados em dispositivos de casa inteligente.

O fulfillment precisa processar cada comando, transmiti-lo para o dispositivo correspondente e retornar o novo estado na resposta EXECUTE.

Uma única intent EXECUTE pode segmentar vários dispositivos com diversos comandos. Por exemplo, uma intent acionada pode definir o brilho e a cor de um conjunto de luzes ou definir várias luzes cada uma para uma cor diferente.

Veja mais detalhes em Consultar e executar.

Formato da solicitação

Campos Tipo Descrição
requestId String

Obrigatório.

ID da solicitação.

inputs Array

Obrigatório.

Lista de entradas que correspondem à solicitação de intent.

[item, ...] Object

Tipo e payload associados à solicitação de intent.

intent

Obrigatório.

(Valor constante: "action.devices.EXECUTE")

Tipo de solicitação de intent.

payload Object

Obrigatório.

EXECUTAR payload de solicitação.

commands Array

Obrigatório.

Lista de pares de comando e destino de dispositivo.

[item, ...] Object

Conjunto de comandos a serem executados nos destinos de dispositivos anexados.

devices Array

Obrigatório.

Lista de dispositivos de destino.

[item, ...] Object

Destino do dispositivo a ser executado.

id String

Obrigatório.

ID do dispositivo, conforme o ID fornecido em SYNC.

customData Object

Se o objeto customData opaco for fornecido em SYNC, ele será enviado aqui.

execution Array

Obrigatório.

Lista de comandos a serem executados em dispositivos de destino.

[item, ...] Object

Comando do dispositivo.

command String

Obrigatório.

O comando a ser executado, normalmente com parâmetros correspondentes.

params Object

De acordo com os parâmetros de cada comando.

Exemplos

EXECUTAR solicitação de intent

{
  "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 da resposta

Campos Tipo Descrição
requestId String

Obrigatório.

É o ID da solicitação correspondente.

payload Object

Obrigatório.

Payload de resposta de intent.

errorCode String

Um código de erro para toda a transação com falhas de autenticação e indisponibilidade do sistema do desenvolvedor. Para erros de dispositivos individuais, use o errorCode no objeto dispositivo.

debugString String

Erro detalhado que nunca será apresentado aos usuários, mas poderá ser registrado ou usado durante o desenvolvimento.

commands Array

Cada objeto contém um ou mais dispositivos com detalhes de resposta. Observação: elas não podem ser agrupadas da mesma forma que na solicitação. Por exemplo, a solicitação pode acender sete luzes, com três luzes funcionando e quatro falhando, assim, com dois grupos na resposta.

[item, ...] Object

Resultado da execução do dispositivo.

ids Array

Obrigatório.

Lista de IDs de dispositivo correspondentes a esse status.

[item, ...] String

ID do dispositivo.

status String

Obrigatório.

Resultado da operação de execução.

Os valores suportados são:

SUCCESS
Confirme se o comando foi bem-sucedido.
PENDING
O comando foi enfileirado, mas espera-se que seja bem-sucedido.
OFFLINE
O dispositivo de destino está off-line ou inacessível.
EXCEPTIONS
Há um problema ou alerta associado a um comando. O comando pode ser bem-sucedido ou falhar. Esse tipo de status geralmente é definido quando você quer enviar informações adicionais sobre outro dispositivo conectado.
ERROR
O dispositivo de destino não consegue executar o comando.
states Object

Alinhado com os estados por característica descritos em cada referência do esquema de características. Esses são os estados após a execução, se disponíveis.

online Booleano

Indica se o dispositivo está on-line (ou seja, acessível) ou não.

errorCode String

Expandindo o estado ERROR, se necessário, dos códigos de erro predefinidos, que mapeiam os erros apresentados aos usuários.

Exemplos

EXECUTAR resposta de intent

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}