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 même intent EXECUTE peut cibler plusieurs appareils à l'aide de plusieurs commandes. Par exemple, un intent déclenché peut définir à la fois la luminosité et la couleur sur un ensemble ou définir plusieurs lumières sur une couleur différente.

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

Format de requête

Champs Type Description
requestId String

Obligatoire.

Identifiant 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.

Exécuter la charge utile de la requête.

commands Array

Obligatoire.

Liste des paires d'appareils cibles et de commandes.

[item, ...] Objet

Ensemble de commandes à exécuter sur les appareils cibles associés.

devices Array

Obligatoire.

Liste des appareils cibles.

[item, ...] Objet

Appareil cible à exécuter.

id String

Obligatoire.

ID de l'appareil, conformément à l'ID fourni dans le système SYNC.

customData Objet

Si l'objet opaque customData 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

Aligné sur les paramètres de chaque commande.

Exemples

Exécution de la requête d'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
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

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 d'intent.

errorCode String

Code d'erreur pour l'ensemble de la transaction en cas d'échecs d'authentification et d'indisponibilité du système du développeur. Pour les erreurs relatives à un appareil spécifique, utilisez le paramètre "errorCode" dans l'objet "device".

debugString String

Erreur 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 réponses détaillées. Remarque : Ils peuvent ne pas être regroupés de la même manière que dans la requête. Par exemple, la requête peut allumer sept lumières, dont trois qui réussissent et quatre qui échouent, et donc avec deux groupes dans la réponse.

[item, ...] Objet

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

ids Array

Obligatoire.

Liste des ID d'appareils 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 bien été exécutée.
PENDING
La commande a été mise en file d'attente, mais devrait aboutir.
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 concernant un autre appareil connecté.
ERROR
L'appareil cible ne peut pas exécuter la commande.
states Objet

Alignement sur les états par caractéristique décrits dans chaque référence de schéma de caractéristique. 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 joignable) ou non.

errorCode String

Si nécessaire, développez l'état d'ERREUR à partir des codes d'erreur prédéfinis, qui seront mis en correspondance avec les erreurs présentées aux utilisateurs.

Exemples

Exécution de la réponse d'intent

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