Aktion.Geräte.AUSFÜHREN

Dieser Intent sendet Befehle zur Ausführung auf Smart-Home-Geräten.

Die Auftragsausführung sollte jeden Befehl verarbeiten, an das entsprechende Gerät übertragen und den neuen Status in der EXECUTE-Antwort zurückgeben.

Ein einzelner EXECUTE-Intent kann mit mehreren Befehlen auf mehrere Geräte ausgerichtet werden. Ein ausgelöster Intent kann beispielsweise die Helligkeit und die Farbe einer Lampe einstellen oder mehrere Lampen jeweils auf eine andere Farbe einstellen.

Weitere Informationen finden Sie unter Abfragen und ausführen.

Anfrageformat

Felder Typ Beschreibung
requestId String

Erforderlich.

ID der Anfrage.

inputs Array

Erforderlich.

Liste der Eingaben, die der Intent-Anfrage entsprechen.

[item, ...] Objekt

Typ und Nutzlast der Intent-Anfrage.

intent

Erforderlich.

(Konstante Wert: "action.devices.EXECUTE")

Intent-Anfragetyp.

payload Objekt

Erforderlich.

Nutzlast der Anfrage ausführen.

commands Array

Erforderlich.

Liste der Geräteziel-/Befehlspaare.

[item, ...] Objekt

Befehle, die für die angehängten Geräteziele ausgeführt werden sollen.

devices Array

Erforderlich.

Liste der Zielgeräte.

[item, ...] Objekt

Das auszuführende Geräteziel.

id String

Erforderlich.

Geräte-ID gemäß der in SYNC zur Verfügung gestellten ID

customData Objekt

Wenn das intransparente benutzerdefinierte DataData-Objekt in SYNC bereitgestellt wird, wird es hier gesendet.

execution Array

Erforderlich.

Liste der Befehle, die auf Zielgeräten ausgeführt werden sollen.

[item, ...] Objekt

Gerätebefehl.

command String

Erforderlich.

Der auszuführende Befehl, normalerweise mit Begleitparametern.

params Objekt

Entspricht den Parametern für jeden Befehl.

Beispiele

Anfrage zur Ausführung von Ausführung

{
  "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
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Antwortformat

Felder Typ Beschreibung
requestId String

Erforderlich.

ID der entsprechenden Anfrage.

payload Objekt

Erforderlich.

Nutzlast der Intent-Antwort.

errorCode String

Ein Fehlercode für die gesamte Transaktion bei Authentifizierungsfehlern und Nichtverfügbarkeit des Entwicklersystems. Verwenden Sie für einzelne Gerätefehler den errorCode im Geräteobjekt.

debugString String

Detaillierter Fehler, der Nutzern nicht angezeigt, aber während der Entwicklung protokolliert oder verwendet werden kann.

commands Array

Jedes Objekt enthält ein oder mehrere Geräte mit Antwortdetails. Hinweis: Sie sind möglicherweise nicht wie in der Anfrage gruppiert. Die Anfrage kann z. B. 7 Lampen einschalten, von denen 3 erfolgreich sind und 4 fehlgeschlagen sind, sodass zwei Gruppen in der Antwort enthalten sind.

[item, ...] Objekt

Ergebnis der Geräteausführung.

ids Array

Erforderlich.

Liste der Geräte-IDs für diesen Status.

[item, ...] String

Geräte-ID.

status String

Erforderlich.

Ergebnis des Ausführungsvorgangs.

Unterstützte Werte:

SUCCESS
Überprüfen Sie, ob der Befehl erfolgreich ausgeführt wurde.
PENDING
Der Befehl befindet sich in der Warteschlange, wird aber voraussichtlich erfolgreich sein.
OFFLINE
Das Zielgerät ist offline oder nicht erreichbar.
EXCEPTIONS
Einem Befehl ist ein Problem oder eine Benachrichtigung zugeordnet. Der Befehl könnte erfolgreich sein oder fehlschlagen. Dieser Statustyp wird normalerweise festgelegt, wenn Sie zusätzliche Informationen zu einem anderen verbundenen Gerät senden möchten.
ERROR
Das Zielgerät kann den Befehl nicht ausführen.
states Objekt

Entspricht den Eigenschaften, die in den Verweisen auf das jeweilige Merkmal beschrieben werden. Das sind die Status nach der Ausführung, falls verfügbar.

online Boolesch

Gibt an, ob das Gerät online ist, also erreichbar ist, oder nicht.

errorCode String

Erweitern des Fehlerstatus bei Bedarf aus den voreingestellten Fehlercodes, die den Fehlern zugeordnet werden.

Beispiele

EXECUTE-Intent-Antwort

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