action.devices.EXECUTE

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

Realizacja powinna przetworzyć każde polecenie, przesłać je do odpowiedniego urządzenia i zwrócić nowy stan w odpowiedzi EXECUTE.

Pojedyncza intencja EXECUTE może być kierowana na wiele urządzeń za pomocą kilku poleceń. Na przykład wywołana intencja może ustawiać zarówno jasność, jak i kolor w zestawie lub ustawić różne źródła światła na inny kolor.

Więcej informacji znajdziesz w artykule Zapytanie i wykonywanie.

Format żądania

Pola Typ Opis
requestId String

Wymagane.

Identyfikator żądania.

inputs Tablica

Wymagane.

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

[item, ...] Obiekt.

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

intent

Wymagane.

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

Typ żądania intencji.

payload Obiekt.

Wymagane.

EXECUTE – ładunek żądania.

commands Tablica

Wymagane.

Lista par urządzeń docelowych i poleceń.

[item, ...] Obiekt.

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

devices Tablica

Wymagane.

Lista urządzeń docelowych.

[item, ...] Obiekt.

Urządzenie docelowe do wykonania.

id String

Wymagane.

Identyfikator urządzenia zgodnie z identyfikatorem w systemie SYNC.

customData Obiekt.

Jeśli nieprzezroczysty obiekt customData zostanie udostępniony w systemie SYNCHRONIZACJA, zostanie on wysłany tutaj.

execution Tablica

Wymagane.

Lista poleceń do wykonania na urządzeniach docelowych.

[item, ...] Obiekt.

Polecenie dotyczące urządzenia.

command String

Wymagane.

Polecenie do wykonania, zwykle z towarzyszącymi parametrami.

params Obiekt.

Są one dobierane z parametrami każdego polecenia.

Przykłady

EXECUTE request Intent (Żądanie intencji EXECUTE)

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

Wymagane.

Identyfikator odpowiedniego żądania.

payload Obiekt.

Wymagane.

Ładunek odpowiedzi intencji.

errorCode String

Kod błędu dla całej transakcji związanej z błędami uwierzytelniania i niedostępnością systemu dewelopera. W przypadku poszczególnych błędów urządzenia użyj kodu errorCode w obiekcie urządzenia.

debugString String

Szczegółowe informacje o błędzie, które nigdy nie będą wyświetlane użytkownikom, ale mogą zostać zarejestrowane lub użyte podczas tworzenia aplikacji.

commands Tablica

Każdy obiekt zawiera co najmniej 1 urządzenie ze szczegółami odpowiedzi. Uwaga: Nie mogą one być pogrupowane w taki sam sposób jak w żądaniu. Na przykład żądanie może spowodować włączenie 7 świateł, przy czym 3 światła włączone, a 4 wyłączające, co oznacza, że w reakcji każda z nich będzie reagowała na 2 grupy.

[item, ...] Obiekt.

Wynik uruchomienia na urządzeniu.

ids Tablica

Wymagane.

Lista identyfikatorów urządzeń powiązanych z tym stanem.

[item, ...] String

Identyfikator urządzenia.

status String

Wymagane.

Wynik wykonania operacji.

Obsługiwane wartości:

SUCCESS
Sprawdź, czy polecenie zostało wykonane.
PENDING
Polecenie zostało dodane do kolejki, ale powinno się udać.
OFFLINE
Urządzenie docelowe jest offline lub jest nieosiągalne.
EXCEPTIONS
Wystąpił problem lub alert powiązany z poleceniem. Polecenie może się powieść lub zakończyć niepowodzeniem. Ten typ stanu jest zwykle ustawiany wtedy, gdy chcesz wysłać dodatkowe informacje o innym połączonym urządzeniu.
ERROR
Urządzenie docelowe nie może wykonać polecenia.
states Obiekt.

Są one dopasowywane do stanów poszczególnych cech opisanych w każdym odniesieniu do schematu cech. Są to stany po wykonaniu, jeśli są dostępne.

online Wartość logiczna

Wskazuje, czy urządzenie jest online (czyli czy jest osiągalne).

errorCode String

W razie potrzeby rozwiń stan „BŁĄD” z gotowych kodów błędów, aby dopasować je do błędów wyświetlanych użytkownikom.

Przykłady

REKLAMA EXECUTE intencji

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