action.devices.EXECUTE

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

Il fulfillment dovrebbe elaborare ogni comando, trasmetterlo al dispositivo corrispondente e restituire il nuovo stato nella risposta EXECUTE.

Un singolo intent EXECUTE può avere come target più dispositivi con più comandi. Ad esempio, un attivatore attivato può impostare sia la luminosità sia il colore su un set di luci o impostare più luci su ogni colore.

Per maggiori dettagli, vedi Eseguire ed eseguire query.

Formato della richiesta

Campi Tipo Descrizione
requestId Stringa

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.

ESEGUI payload di richiesta.

commands Array

Obbligatorio.

Elenco di coppie di targeting per dispositivo e comando.

[item, ...] Oggetto

Insieme di comandi da eseguire sui target dei dispositivi associati.

devices Array

Obbligatorio.

Elenco dei dispositivi di destinazione.

[item, ...] Oggetto

Dispositivo target da eseguire.

id Stringa

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 di destinazione.

[item, ...] Oggetto

Comando dispositivo.

command Stringa

Obbligatorio.

Il comando da eseguire, generalmente con parametri associati.

params Oggetto

In linea con i parametri per ogni comando.

Esempi

ESEGUI richiesta di 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 della risposta

Campi Tipo Descrizione
requestId Stringa

Obbligatorio.

ID della richiesta corrispondente.

payload Oggetto

Obbligatorio.

Payload della risposta dell'intent.

errorCode Stringa

Un codice di errore per l'intera transazione per errori di autenticazione e disponibilità del sistema dello sviluppatore. Per gli errori relativi a singoli dispositivi, utilizza il codice di errore all'interno dell'oggetto del dispositivo.

debugString Stringa

Errore dettagliato che non verrà mai presentato agli utenti, ma potrebbe essere registrato o utilizzato durante lo sviluppo.

commands Array

Ogni oggetto contiene uno o più dispositivi con dettagli di risposta. N.B. È possibile che non vengano raggruppati come indicato nella richiesta. Ad esempio, la richiesta potrebbe accendere 7 luci, con 3 luci riuscite e 4 non riuscite, quindi con due gruppi nella risposta.

[item, ...] Oggetto

Risultato dell'esecuzione del dispositivo.

ids Array

Obbligatorio.

Elenco di ID dispositivo corrispondenti a questo stato.

[item, ...] Stringa

ID dispositivo.

status Stringa

Obbligatorio.

Risultato dell'operazione di esecuzione.

Valori supportati:

SUCCESS
Conferma che il comando sia andato a buon fine.
PENDING
Il comando è accodato, ma si prevede che l'operazione vada a buon fine.
OFFLINE
Il dispositivo di destinazione è offline o non è raggiungibile.
EXCEPTIONS
C'è un problema o un avviso associato a un comando. Il comando potrebbe avere esito positivo o negativo. In genere questo tipo di stato viene impostato quando vuoi inviare informazioni aggiuntive su un altro dispositivo connesso.
ERROR
Il dispositivo di destinazione non è in grado di eseguire il comando.
states Oggetto

Allineato con gli stati per singolo trattino descritti in ciascun riferimento allo schema del tratto. Questi sono gli stati successivi all'esecuzione, se disponibili.

online Booleano

Indica se il dispositivo è online (ossia raggiungibile).

errorCode Stringa

Possibilità di espandere lo stato ERROR se necessario dai codici di errore preimpostati, che verranno mappati agli errori presentati agli utenti.

Esempi

ESEGUI risposta all'intenzione

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