action.devices.EXECUTE

Essa intent envia comandos para execução em dispositivos de casa inteligente.

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

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

Para mais detalhes, consulte 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.

Payload de solicitação EXECUTE.

commands Array

Obrigatório.

Lista de pares de destino e comando do dispositivo.

[item, ...] Object

Conjunto de comandos a serem executados nos dispositivos de segmentação conectados.

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 na SYNC, ele será enviado aqui.

execution Array

Obrigatório.

Lista de comandos a serem executados nos dispositivos de destino.

[item, ...] Object

Comando do dispositivo.

command String

Obrigatório.

O comando a ser executado, geralmente com parâmetros.

params Object

Alinhados com os parâmetros de cada comando.

Exemplos

Solicitação 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 da resposta

Campos Tipo Descrição
requestId String

Obrigatório.

ID da solicitação correspondente.

payload Object

Obrigatório.

Payload da resposta da intent.

errorCode String

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

debugString String

Erro de resposta detalhada que nunca será apresentado aos usuários, mas pode ser registrado ou usado durante o desenvolvimento.

commands Array

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

[item, ...] Object

Resultado da execução do dispositivo.

ids Array

Obrigatório.

Lista de IDs de dispositivos correspondentes a esse status.

[item, ...] String

ID do dispositivo.

status String

Obrigatório.

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

Valores compatíveis:

SUCCESS
Confirme se o comando foi concluído.
PENDING
O comando está na fila, mas deve ser 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 não. Esse tipo de status geralmente é definido quando você quer enviar mais informações sobre outro dispositivo conectado.
ERROR
O dispositivo de destino não consegue executar o comando.
states Object

Alinhados com os estados de cada atributo descritos em cada referência de esquema de atributo. Estes 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

Expandir o estado de ERRO, se necessário, a partir dos códigos de erro predefinidos, que serão mapeados para os erros apresentados aos usuários.

debugString String

Erro detalhado no nível do comando, que nunca será apresentado aos usuários, mas pode ser registrado ou usado durante o desenvolvimento.

Exemplos

Resposta da 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"
      }
    ]
  }
}