action.devices.EXECUTE

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

Votre fulfillment 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 d'un ensemble de lumières, 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 Chaîne

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é à 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 cible/commande de l'appareil.

[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 Chaîne

Obligatoire.

ID de l'appareil, conformément à l'ID fourni dans SYNC.

customData Objet

Si l'objet "customData" opaque est fourni au format SYNC, il est envoyé ici.

execution Array

Obligatoire.

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

[item, ...] Objet

Commande de l'appareil.

command Chaîne

Obligatoire.

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

params Objet

Alignement avec les paramètres de chaque commande.

Exemples

EXÉCUTER 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 Chaîne

Obligatoire.

ID de la requête correspondante.

payload Objet

Obligatoire.

Charge utile de la réponse d'intent.

errorCode Chaîne

Code d'erreur de l'ensemble de la transaction pour les échecs d'authentification et l'indisponibilité du système de développement. Pour les erreurs liées à des appareils individuels, utilisez le code d'erreur dans l'objet appareil.

debugString Chaîne

Erreur détaillée qui ne sera jamais présentée aux utilisateurs, mais qui peut être consignée ou utilisée lors du développement.

commands Array

Chaque objet contient un ou plusieurs appareils avec les détails de la réponse. Remarque : Il est possible que ces éléments ne soient pas regroupés de la même manière que dans la demande. Par exemple, la requête peut allumer sept lumières, avec trois lumières qui réussissent et quatre qui échouent, et donc deux groupes dans la réponse.

[item, ...] Objet

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

ids Array

Obligatoire.

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

[item, ...] Chaîne

ID de l'appareil.

status Chaîne

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é placée en file d'attente, mais devrait fonctionner.
OFFLINE
L'appareil cible est hors connexion ou inaccessible.
EXCEPTIONS
Un problème ou une alerte sont associés à 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 avec les états par attribut décrits dans chaque référence de schéma de caractéristiques. Voici les états après l'exécution, s'ils sont disponibles.

online Booléen

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

errorCode Chaîne

Développer l'état ERROR si nécessaire à partir des codes d'erreur prédéfinis, qui seront mis en correspondance avec les erreurs présentées aux utilisateurs

Exemples

EXÉCUTER 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"
      }
    ]
  }
}