action.devices.EXECUTE

Cet intent envoie des commandes à exécuter sur les appareils connectés.

Votre traitement doit traiter chaque commande, la transmettre à l'appareil correspondant et renvoyer le nouvel état dans la réponse EXECUTE.

Un seul intent EXECUTE peut cibler plusieurs appareils avec plusieurs commandes. Par exemple, un intent déclenché peut définir à la fois la luminosité et la couleur d'un ensemble de lumières, ou définir plusieurs lumières de couleurs différentes.

Pour en savoir plus, consultez la section Interroger et exécuter.

Format de requête

Champs Type Description
requestId String

Obligatoire.

ID de la requête.

inputs Array

Obligatoire.

Liste des entrées correspondant à la requête d'intent.

[item, ...] Objet

Type et charge utile associés à la requête d'intent.

intent

Obligatoire.

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

Type de requête d'intent.

payload Objet

Obligatoire.

Charge utile de la requête EXECUTE.

commands Array

Obligatoire.

Liste des paires de cible d'appareil et de commande.

[item, ...] Objet

Ensemble de commandes à exécuter sur les cibles d'appareils associées.

devices Array

Obligatoire.

Liste des appareils cibles.

[item, ...] Objet

Cible d'appareil à exécuter.

id String

Obligatoire.

ID de l'appareil, tel que fourni dans SYNC.

customData Objet

Si l'objet customData opaque est fourni dans SYNC, il est envoyé ici.

execution Array

Obligatoire.

Liste des commandes à exécuter sur les appareils cibles.

[item, ...] Objet

Commande de l'appareil.

command String

Obligatoire.

Commande à exécuter, généralement accompagnée de paramètres.

params Objet

Correspond aux paramètres de chaque commande.

Exemples

Demande d'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
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Format de réponse

Champs Type Description
requestId String

Obligatoire.

ID de la requête correspondante.

payload Objet

Obligatoire.

Charge utile de la réponse de l'intent.

errorCode String

Code d'erreur pour l'ensemble de la transaction en cas d'échec de l'authentification et d'indisponibilité du système du développeur. Pour les erreurs d'appareil individuelles, utilisez le code d'erreur dans l'objet appareil.

debugString String

Erreur de réponse détaillée qui ne sera jamais présentée aux utilisateurs, mais qui peut être enregistrée ou utilisée pendant le développement.

commands Array

Chaque objet contient un ou plusieurs appareils avec des informations sur la réponse. Remarque : Ils ne sont pas forcément regroupés de la même manière que dans la requête. Par exemple, la requête peut allumer sept ampoules, dont trois aboutissent et quatre échouent, ce qui donne deux groupes dans la réponse.

[item, ...] Objet

Résultat de l'exécution de l'appareil.

ids Array

Obligatoire.

Liste des ID d'appareil correspondant à cet état.

[item, ...] String

ID de l'appareil

status String

Obligatoire.

Résultat de l'opération d'exécution.

Valeurs acceptées :

SUCCESS
Vérifiez que la commande a réussi.
PENDING
La commande est mise en file d'attente, mais devrait réussir.
OFFLINE
L'appareil cible est hors connexion ou inaccessible.
EXCEPTIONS
Un problème ou une alerte est associé à une commande. La commande peut réussir ou échouer. Ce type d'état est généralement défini lorsque vous souhaitez envoyer des informations supplémentaires sur un autre appareil connecté.
ERROR
L'appareil cible ne peut pas exécuter la commande.
states Objet

Correspond aux états par trait décrits dans chaque référence de schéma de trait. Il s'agit des états après l'exécution, le cas échéant.

online Valeur booléenne

Indique si l'appareil est en ligne (c'est-à-dire accessible) ou non.

errorCode String

Élargissement de l'état ERROR si nécessaire à partir des codes d'erreur prédéfinis, qui seront mappés aux erreurs présentées aux utilisateurs.

debugString String

Erreur détaillée au niveau de la commande qui ne sera jamais présentée aux utilisateurs, mais qui peut être enregistrée ou utilisée pendant le développement.

Exemples

Réponse à l'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"
      }
    ]
  }
}