action.devices.EXECUTE

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 dann zurückgeben. den neuen Status in der EXECUTE-Antwort.

Ein einzelner EXECUTE-Intent kann mit mehreren Befehlen auf mehrere Geräte abzielen. Beispielsweise kann ein ausgelöster Intent sowohl Helligkeit als auch Farbe für eine Reihe von oder mehrere Lampen auf eine andere Farbe einstellen.

Weitere Informationen finden Sie unter Abfragen und Ausführungen.

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, die der Intent-Anfrage zugeordnet sind.

intent

Erforderlich.

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

Intent-Anfragetyp.

payload Objekt

Erforderlich.

Nutzlast der Anfrage AUSFÜHREN.

commands Array

Erforderlich.

Liste der Geräteziel- und Befehlspaare.

[item, ...] Objekt

Satz von Befehlen, die auf den angehängten Gerätezielen ausgeführt werden sollen.

devices Array

Erforderlich.

Liste der Zielgeräte.

[item, ...] Objekt

Auszuführendes Geräteziel.

id String

Erforderlich.

Geräte-ID gemäß der in SYNC angegebenen ID.

customData Objekt

Wenn das intransparente „customData“-Objekt in SYNC angegeben 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, in der Regel mit zugehörigen Parametern.

params Objekt

Auf die Parameter des jeweiligen Befehls abgestimmt.

Beispiele

Intent-Anfrage ausführen

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

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

debugString String

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

commands Array

Jedes Objekt enthält ein oder mehrere Geräte mit Antwortdetails. Hinweis: Diese sind möglicherweise nicht auf die gleiche Weise gruppiert wie in der Anfrage. Durch die Anfrage könnten beispielsweise 7 Lampen eingeschaltet werden, von denen 3 aufeinanderfolgende und 4 fehlt. In der Antwort sind also zwei Gruppen enthalten.

[item, ...] Objekt

Ergebnis der Geräteausführung.

ids Array

Erforderlich.

Liste der Geräte-IDs, die diesem Status entsprechen.

[item, ...] String

Geräte-ID.

status String

Erforderlich.

Ergebnis des Ausführungsvorgangs.

Unterstützte Werte:

SUCCESS
Prüfen Sie, ob der Befehl erfolgreich ausgeführt wurde.
PENDING
Der Befehl wurde in die Warteschlange gestellt, sollte aber erfolgreich sein.
OFFLINE
Das Zielgerät ist offline oder nicht erreichbar.
EXCEPTIONS
Mit einem Befehl ist ein Problem oder eine Benachrichtigung verknüpft. Der Befehl kann erfolgreich oder fehlschlagen. Dieser Statustyp wird normalerweise festgelegt, wenn Sie zusätzliche Informationen über ein anderes verbundenes Gerät senden möchten.
ERROR
Das Zielgerät kann den Befehl nicht ausführen.
states Objekt

Abgestimmt auf die Zustände pro Eigenschaft, die in jeder Referenzschemareferenz beschrieben sind. Dies sind die Status nach der Ausführung, falls verfügbar.

online Boolesch

Gibt an, ob das Gerät online (d. h. erreichbar) ist oder nicht.

errorCode String

Bei Bedarf wird der FEHLER-Status aus den voreingestellten Fehlercodes erweitert. Diese werden den Fehlern zugeordnet, die Nutzern angezeigt werden.

Beispiele

Intent-Antwort AUSFÜHREN

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