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