action.devices.SYNC

Ta intencja prosi o listę urządzeń powiązanych z danym użytkownikiem i jego możliwości.

Jest wyzwalany podczas łączenia kont lub gdy użytkownik ręcznie synchronizują swoje urządzenia. Twoja realizacja powinna odpowiadać za pomocą atrybutu cechy i atrybuty obsługiwane przez poszczególne urządzenia.

Odpowiedź SYNC powinna zwrócić wszystkie urządzenia powiązane z użytkownikiem. Nie określa to, czy dane urządzenie jest osiągalne. Zajmuje się to QUERY i EXECUTE odpowiedzi.

Więcej informacji znajdziesz w artykule Identyfikacja i synchronizacja.

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.SYNC")

Typ żądania intencji.

Przykłady

Żądanie intencji SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Format odpowiedzi

Pola Typ Opis
requestId String

Wymagane.

Identyfikator odpowiedniego żądania.

payload Obiekt.

Wymagane.

Ładunek odpowiedzi intencji.

agentUserId String

Wymagane.

Odzwierciedla unikalny (i niezmienny) identyfikator użytkownika na platformie agenta. Ciąg jest nieprzezroczysty dla Google, więc jeśli po stronie agenta istnieje forma stała lub zmienna, użyj formy stałej (np. numeru konta zamiast adresu e-mail).

errorCode String

Błędy systematyczne w systemie SYNC

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.

devices Tablica

Wymagane.

Lista urządzeń należących do użytkownika. Zwracanych jest 0 lub więcej urządzeń (0 urządzeń oznacza, że użytkownik nie ma żadnych urządzeń lub wszystkie je rozłączyło).

[item, ...] Obiekt.

Metadane urządzenia.

id String

Wymagane.

Identyfikator urządzenia w chmurze dewelopera. Musi być niepowtarzalny dla użytkownika i dewelopera, ponieważ w przypadku udostępnienia możemy usunąć duplikat różnych wyświetleń tego samego urządzenia. Powinien być stały na urządzeniu. Jeśli się zmieni, Asystent będzie traktować je jak nowe urządzenie.

type String

Wymagane.

Typ sprzętowy urządzenia.

traits Tablica

Wymagane.

Lista cech tego urządzenia. Określa polecenia, atrybuty i stany obsługiwane przez urządzenie.

[item, ...] String

Nazwa obsługiwanej cechy.

name Obiekt.

Wymagane.

Nazwy tego urządzenia.

defaultNames Tablica

Lista nazw podanych przez dewelopera, a nie użytkownika, często nazw producentów, kodów SKU itp.

[item, ...] String

Domyślna nazwa urządzenia.

name String

Wymagane.

Główna nazwa urządzenia, zazwyczaj podana przez użytkownika. Jest to też nazwa, którą Asystent będzie preferował do opisywania urządzenia w swoich odpowiedziach.

nicknames Tablica

Dodatkowe nazwy urządzenia podane przez użytkownika.

[item, ...] String

Nazwa urządzenia.

willReportState Wartość logiczna

Wymagane.

Wskazuje, czy stan urządzenia będzie aktualizowany przez kanał w czasie rzeczywistym. (prawda, aby używać kanału w czasie rzeczywistym do raportowania stanu raportowania, i fałsz, aby używać modelu odpytywania).

notificationSupportedByAgent Wartość logiczna

(Domyślnie: false)

Wskazuje, czy powiadomienia są włączone na urządzeniu.

roomHint String

Wskazuje bieżące pomieszczenie urządzenia w domu użytkownika, aby ułatwić konfigurację.

deviceInfo Obiekt.

Zawiera pola opisujące urządzenie do jednorazowego użycia w razie potrzeby (np. „uszkodzone oprogramowanie w wersji X światła Y wymaga dostosowania koloru” lub „Błąd zabezpieczeń wymaga powiadomienia wszystkich użytkowników oprogramowania Z”).

manufacturer String

Szczególnie przydatne, gdy deweloper skupia się na innych urządzeniach. Google może udostępnić standardową listę producentów, np. Zarówno TP-Link, jak i Smartthings opisują „osram” tak samo.

model String

Model lub identyfikator SKU konkretnego urządzenia.

hwVersion String

Konkretny numer wersji dołączony do sprzętu (jeśli jest dostępny).

swVersion String

Konkretny numer wersji dołączonej do oprogramowania (jeśli jest dostępny).

attributes Obiekt.

Są one dopasowywane do atrybutów poszczególnych cech opisanych w każdym odniesieniu do schematu cech.

customData Obiekt.

Obiekt zdefiniowany przez dewelopera, który zostanie dołączony do przyszłych żądań QUERY i EXECUTE. Maksymalna długość 512 bajtów na urządzenie. Użyj tego obiektu, aby przechowywać dodatkowe informacje o urządzeniu, którego może potrzebować usługa w chmurze, na przykład globalny region urządzenia. Dane w tym obiekcie mają kilka ograniczeń: brak informacji poufnych, w tym informacje umożliwiające identyfikację.

otherDeviceIds Tablica

Lista alternatywnych identyfikatorów używanych do identyfikowania urządzenia zsynchronizowanego w chmurze na potrzeby lokalnego wykonania.

[item, ...] Obiekt.

Alternatywny identyfikator urządzenia.

agentId String

Identyfikator agenta. Zwykle jest to identyfikator projektu w Konsoli Actions.

deviceId String

Wymagane.

Identyfikator urządzenia zdefiniowany przez agenta. Identyfikator urządzenia musi być niepowtarzalny.

Przykłady

Odpowiedź intencji SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.OUTLET",
        "traits": [
          "action.devices.traits.OnOff"
        ],
        "name": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}