action.devices.SYNC
Ta intencja wymaga listy urządzeń powiązanych z danym użytkownikiem i jego możliwościami.
Jest ona wyzwalana podczas łączenia kont lub gdy użytkownik ponownie zsynchronizuje swoje urządzenia. Usługa powinna spełniać określone cechy i atrybuty dostępne na każdym urządzeniu.
Odpowiedź SYNC
powinna zwrócić wszystkie urządzenia powiązane z użytkownikiem.
Nie określa to, czy dane urządzenie jest osiągalne. Jest ona obsługiwana przez odpowiedzi QUERY
i EXECUTE
.
Więcej informacji znajdziesz w artykule Identyfikacja i synchronizacja.
Format żądania
Pola | Typ | Opis |
---|---|---|
requestId |
Ciąg |
Wymagane. Identyfikator żądania. |
inputs |
Tablica |
Wymagane. Lista danych wejściowych pasujących do żądania intencji. |
[item, ...] |
Obiekt |
Typ i ładunek powiązany 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 |
Ciąg |
Wymagane. Identyfikator odpowiedniego żądania. |
payload |
Obiekt |
Wymagane. Ładunek odpowiedzi na intencję. |
agentUserId |
Ciąg |
Wymagane. Odzwierciedla unikalny (i niezmienny) identyfikator użytkownika na platformie agenta. Ciąg jest niewidoczny dla Google, więc jeśli masz postać stałego formularza, musisz go zmienić na stabilny (np. numer konta zamiast adresu e-mail). |
errorCode |
Ciąg |
W przypadku błędów systemowych w systemie SYNC |
debugString |
Ciąg |
Szczegółowy błąd, który nigdy nie pojawia się użytkownikom, ale może zostać zarejestrowany lub użyty podczas programowania. |
devices |
Tablica |
Wymagane. Lista urządzeń należących do użytkownika. Nie zwróci się więcej niż 1 urządzenie (zero urządzeń oznacza, że użytkownik nie ma urządzeń lub wszystkie zostały odłączone). |
[item, ...] |
Obiekt |
Metadane urządzenia. |
id |
Ciąg |
Wymagane. Identyfikator urządzenia w chmurze dewelopera. Musi to być unikalna nazwa dla użytkownika i dewelopera – tak jak w przypadku udostępniania. Pozwala to usunąć duplikaty wielu wyświetleń na tym samym urządzeniu. Urządzenie nie może się zmienić. Jeśli się zmieni, Asystent będzie je traktować jako nowe urządzenie. |
type |
Ciąg |
Wymagane. Typ urządzenia. |
traits |
Tablica |
Wymagane. Lista cech używanych przez to urządzenie. Określa to polecenia, atrybuty i stany obsługiwane przez urządzenie. |
[item, ...] |
Ciąg |
Nazwa obsługiwanej cechy. |
name |
Obiekt |
Wymagane. Nazwy tego urządzenia. |
defaultNames |
Tablica |
Lista nazw podanych przez dewelopera, a nie użytkownika, często nazwy producentów, kody SKU itp. |
[item, ...] |
Ciąg |
Domyślna nazwa urządzenia. |
name |
Ciąg |
Wymagane. Główna nazwa urządzenia, którą określa użytkownik. Będzie to też nazwa, której Asystent będzie używać do opisywania urządzenia w odpowiedziach. |
nicknames |
Tablica |
Dodatkowe nazwy podane przez użytkownika dla urządzenia. |
[item, ...] |
Ciąg |
Nazwa urządzenia. |
willReportState |
Wartość logiczna |
Wymagane. Wskazuje, czy stany urządzenia będą aktualizowane przez kanał w czasie rzeczywistym. (prawda: do przesyłania raportów używa się kanału Czas rzeczywisty, a fałsz – do używania modelu ankiety) |
notificationSupportedByAgent |
Wartość logiczna |
(Domyślnie: Określa, czy powiadomienia są włączone na urządzeniu. |
roomHint |
Ciąg |
Zapewnia bieżący pokój urządzenia w domu użytkownika, aby uprościć konfigurację. |
deviceInfo |
Obiekt |
Zawiera pola opisujące urządzenie do jednorazowego użycia logiki (np. „zepsute oprogramowanie w wersji X światła Y wymaga dostosowania koloru” lub „brak luk w zabezpieczeniach wymaga powiadomienia wszystkich użytkowników oprogramowania układowego Z”). |
manufacturer |
Ciąg |
Szczególnie przydatne, gdy deweloper pełni w nim rolę innego urządzenia. Google może udostępnić standardową listę producentów, aby np. linki TP-Link i Smartthings pisaliśmy tak samo jak „osram”. |
model |
Ciąg |
Identyfikator modelu lub kod SKU konkretnego urządzenia. |
hwVersion |
Ciąg |
Konkretny numer wersji podłączony do sprzętu, jeśli jest dostępny. |
swVersion |
Ciąg |
Konkretny numer wersji dołączony do oprogramowania lub oprogramowania układowego (jeśli jest dostępny). |
attributes |
Obiekt |
jest dopasowywany do atrybutów określonych 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. Maksymalnie 512 bajtów na urządzenie. Służy do przechowywania dodatkowych informacji o urządzeniu, którego może potrzebować Twoja usługa w chmurze, np. o globalnym regionie urządzenia. Dane w tym obiekcie mają kilka ograniczeń: brak informacji poufnych, w tym między innymi informacji umożliwiających identyfikację. |
otherDeviceIds |
Tablica |
Lista alternatywnych identyfikatorów używanych do identyfikowania urządzenia zsynchronizowanego w chmurze do wykonywania lokalnie. |
[item, ...] |
Obiekt |
Alternatywny identyfikator urządzenia. |
agentId |
Ciąg |
Identyfikator agenta. Zwykle jest to identyfikator projektu w Konsoli Actions. |
deviceId |
Ciąg |
Wymagane. Identyfikator urządzenia zdefiniowany przez agenta. Identyfikator urządzenia musi być niepowtarzalny. |
Przykłady
Odpowiedź dotycząca 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" } } ] } }