action.devices.EXECUTE

Mit diesem Intent werden Befehle an Smart-Home-Geräte gesendet.

Deine Auslieferung sollte jeden Befehl verarbeiten, an das entsprechende Gerät weiterleiten und den neuen Status in der EXECUTE-Antwort zurückgeben.

Eine einzelne EXECUTE-Intent kann auf mehrere Geräte mit mehreren Befehlen ausgerichtet sein. So kann eine ausgelöste Absicht beispielsweise sowohl die Helligkeit als auch die Farbe einer Gruppe von Lampen festlegen oder mehrere Lampen jeweils auf eine andere Farbe.

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 mit der Intent-Anfrage übereinstimmen.

[item, ...] Objekt

Typ und Nutzlast, die mit der Intent-Anfrage verknüpft sind.

intent

Erforderlich.

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

Typ der Intent-Anfrage.

payload Objekt

Erforderlich.

EXECUTE-Anfragenutzlast.

commands Array

Erforderlich.

Liste der Geräteziele und Befehlspaare.

[item, ...] Objekt

Befehle, die auf den angehängten Gerätezielen ausgeführt werden sollen.

devices Array

Erforderlich.

Liste der Zielgeräte.

[item, ...] Objekt

Zu ausführendes Geräteziel.

id String

Erforderlich.

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

customData Objekt

Wenn das nicht transparente Objekt „customData“ in SYNC angegeben ist, 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 begleitenden Parametern.

params Objekt

Sie müssen mit den Parametern für jeden Befehl übereinstimmen.

Beispiele

EXECUTE intent request

{
  "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 Autorisierungsfehlern und Nichtverfügbarkeit des Entwicklersystems. Verwenden Sie für einzelne Gerätefehler den errorCode im Geräteobjekt.

debugString String

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

commands Array

Jedes Objekt enthält ein oder mehrere Geräte mit Antwortdetails. Hinweis: Die Daten sind möglicherweise nicht so gruppiert wie in der Anfrage. Die Anfrage könnte beispielsweise sieben Lampen einschalten, wobei drei Lampen erfolgreich und vier fehlgeschlagen sind. Die Antwort enthält also zwei Gruppen.

[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 war.
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 fehlgeschlagen sein. Dieser Statustyp wird in der Regel festgelegt, wenn Sie zusätzliche Informationen zu einem anderen verbundenen Gerät senden möchten.
ERROR
Der Befehl kann auf dem Zielgerät nicht ausgeführt werden.
states Objekt

Entspricht den Zuständen pro Merkmal, die in der jeweiligen Schemareferenz für das Merkmal beschrieben sind. Das sind die Zustände nach der Ausführung, sofern verfügbar.

online Boolesch

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

errorCode String

Erweitern des Status „Fehler“ bei Bedarf aus den voreingestellten Fehlercodes, die den Nutzern angezeigten Fehlern zugeordnet werden.

debugString String

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

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