action.devices.EXECUTE

Ta intencja wysyła polecenia do wykonania na inteligentnych urządzeniach domowych.

Usługa przetwarzania powinna przetwarzać każde polecenie, przesyłać je do odpowiedniego urządzenia i zwracać nowy stan w odpowiedzi EXECUTE.

Jedno działanie EXECUTE może być kierowane na wiele urządzeń z wieloma poleceniami. Na przykład wywołana intencja może ustawić jasność i kolor dla zestawu świateł lub może ustawić różne kolory dla różnych świateł.

Więcej informacji znajdziesz w artykule Wysyłanie i wykonywanie zapytań.

Format żądania

Pola Typ Opis
requestId String

Wymagany.

Identyfikator żądania.

inputs Tablica

Wymagany.

Lista danych wejściowych pasujących do żądania intencji.

[item, ...] Obiekt

Typ i ładunek powiązany z żądaniem intencji.

intent

Wymagany.

(wartość stała: "action.devices.EXECUTE")

Typ żądania intencji.

payload Obiekt

Wymagany.

ładunek żądania EXECUTE.

commands Tablica

Wymagany.

Lista par urządzeń docelowych i poleceń.

[item, ...] Obiekt

Zestaw poleceń do wykonania na dołączonych urządzeniach docelowych.

devices Tablica

Wymagany.

Lista urządzeń docelowych.

[item, ...] Obiekt

Urządzenie docelowe do wykonania.

id String

Wymagany.

Identyfikator urządzenia zgodnie z identyfikatorem podanym w SYNC.

customData Obiekt

Jeśli w SYNC podano nieprzezroczysty obiekt customData, zostanie on wysłany tutaj.

execution Tablica

Wymagany.

Lista poleceń do wykonania na urządzeniach docelowych.

[item, ...] Obiekt

Polecenie na urządzeniu.

command String

Wymagany.

Polecenie do wykonania, zwykle z towarzyszącymi mu parametrami.

params Obiekt

zgodne z parametrami poszczególnych poleceń;

Przykłady

EXECUTE – prośba o wykonanie

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

Pola Typ Opis
requestId String

Wymagany.

Identyfikator odpowiedniego żądania.

payload Obiekt

Wymagany.

ładunek odpowiedzi na intencji;

errorCode String

Kod błędu całej transakcji w przypadku błędów autoryzacji i niedostępności systemu dewelopera. W przypadku błędów poszczególnych urządzeń użyj atrybutu errorCode w obiekcie device.

debugString String

Szczegółowy błąd odpowiedzi, który nigdy nie będzie wyświetlany użytkownikom, ale może zostać zarejestrowany lub wykorzystany podczas tworzenia.

commands Tablica

Każdy obiekt zawiera co najmniej 1 urządzenie z szczegółami odpowiedzi. Uwaga: mogą być one pogrupowane inaczej niż w żądaniu. Na przykład żądanie może włączyć 7 żarówek, z których 3 działają prawidłowo, a 4 nie, więc w odpowiedzi będą 2 grupy.

[item, ...] Obiekt

Wynik wykonania na urządzeniu.

ids Tablica

Wymagany.

Lista identyfikatorów urządzeń odpowiadających temu stanowi.

[item, ...] String

Identyfikator urządzenia.

status String

Wymagany.

Wynik operacji wykonania.

Obsługiwane wartości:

SUCCESS
Sprawdź, czy polecenie zostało wykonane.
PENDING
Polecenie jest w kolejce, ale oczekuje się, że zostanie wykonane.
OFFLINE
Urządzenie docelowe jest offline lub niedostępne.
EXCEPTIONS
Wystąpił problem lub alert związany z poleceniem. Polecenie może się udać lub nie. Ten typ stanu jest zwykle ustawiany, gdy chcesz wysłać dodatkowe informacje o innym połączonym urządzeniu.
ERROR
Urządzenie docelowe nie może wykonać polecenia.
states Obiekt

Zgodnie ze stanami atrybutów opisanymi w poszczególnych dokumentach referencyjnych dotyczących schematów. Są to stany po wykonaniu, jeśli są dostępne.

online Wartość logiczna

Wskazuje, czy urządzenie jest online (czy jest dostępne).

errorCode String

W razie potrzeby rozszerzenie stanu BŁĄD na podstawie wstępnie zdefiniowanych kodów błędów, które będą odpowiadać błędom wyświetlanym użytkownikom.

debugString String

Szczegółowy błąd na poziomie polecenia, który nigdy nie będzie widoczny dla użytkowników, ale może zostać zarejestrowany lub wykorzystany podczas tworzenia.

Przykłady

Odpowiedź na żądanie EXECUTE

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