action.devices.EXECUTE

Questo intent invia comandi da eseguire sui dispositivi per la smart home.

L'implementazione deve elaborare ogni comando, trasmetterlo al dispositivo corrispondente e restituire il nuovo stato nella risposta EXECUTE.

Un singolo intento EXECUTE può avere come target più dispositivi con più comandi. Ad esempio, un'intenzione attivata può impostare sia la luminosità che il colore su un insieme di lampadine o può impostare più lampadine ciascuna su un colore diverso.

Per maggiori dettagli, vedi Eseguire query.

Formato della richiesta

Campi Tipo Descrizione
requestId String

Obbligatorio.

ID della richiesta.

inputs Array

Obbligatorio.

Elenco di input corrispondenti alla richiesta di intent.

[item, ...] Oggetto

Tipo e payload associati alla richiesta di intent.

intent

Obbligatorio.

(Valore costante: "action.devices.EXECUTE")

Tipo di richiesta di intent.

payload Oggetto

Obbligatorio.

Payload della richiesta EXECUTE.

commands Array

Obbligatorio.

Elenco di coppie di target e comandi del dispositivo.

[item, ...] Oggetto

Set di comandi da eseguire sui target dispositivo collegati.

devices Array

Obbligatorio.

Elenco dei dispositivi target.

[item, ...] Oggetto

Target dispositivo da eseguire.

id String

Obbligatorio.

ID dispositivo, in base all'ID fornito in SYNC.

customData Oggetto

Se l'oggetto customData opaco viene fornito in SYNC, viene inviato qui.

execution Array

Obbligatorio.

Elenco di comandi da eseguire sui dispositivi target.

[item, ...] Oggetto

Comando del dispositivo.

command String

Obbligatorio.

Il comando da eseguire, in genere con i parametri associati.

params Oggetto

Allineati ai parametri di ciascun comando.

Esempi

EXECUTE intent request

{
  "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 della risposta

Campi Tipo Descrizione
requestId String

Obbligatorio.

ID della richiesta corrispondente.

payload Oggetto

Obbligatorio.

Payload della risposta all'intent.

errorCode String

Un codice di errore per l'intera transazione per errori di autenticazione e mancata disponibilità del sistema per gli sviluppatori. Per i singoli errori del dispositivo, utilizza errorCode all'interno dell'oggetto device.

debugString String

Errore di risposta dettagliato che non verrà mai mostrato agli utenti, ma che può essere registrato o utilizzato durante lo sviluppo.

commands Array

Ogni oggetto contiene uno o più dispositivi con i dettagli della risposta. N.B.: potrebbero non essere raggruppati nello stesso modo della richiesta. Ad esempio, la richiesta potrebbe accendere 7 luci, di cui 3 si accendono correttamente e 4 non si accendono, quindi con due gruppi nella risposta.

[item, ...] Oggetto

Risultato dell'esecuzione del dispositivo.

ids Array

Obbligatorio.

Elenco degli ID dispositivo corrispondenti a questo stato.

[item, ...] String

ID dispositivo.

status String

Obbligatorio.

Risultato dell'operazione di esecuzione.

Valori supportati:

SUCCESS
Verifica che il comando sia andato a buon fine.
PENDING
Il comando
è in coda, ma dovrebbe riuscire.
OFFLINE
Il dispositivo di destinazione è in stato offline o non è raggiungibile.
EXCEPTIONS
È presente un problema o un avviso associato a un comando. Il comando potrebbe avere esito positivo o negativo. Questo tipo di stato viene impostato in genere quando vuoi inviare informazioni aggiuntive su un altro dispositivo connesso.
ERROR
Il dispositivo di destinazione non è in grado di eseguire il comando.
states Oggetto

Allineati agli stati per tratto descritti in ogni riferimento allo schema del tratto. Questi sono gli stati dopo l'esecuzione, se disponibili.

online Valore booleano

Indica se il dispositivo è online (ovvero raggiungibile) o meno.

errorCode String

Espansione dello stato ERROR, se necessario, dai codici di errore preimpostati, che verranno mappati agli errori presentati agli utenti.

debugString String

Errore dettagliato a livello di comando che non verrà mai mostrato agli utenti, ma che può essere registrato o utilizzato durante lo sviluppo.

Esempi

Risposta all'intenzione EXECUTE

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