action.devices.SYNC
Ten zamiar żąda listy urządzeń powiązanych z danym użytkownikiem i ich możliwości.
Jest wyzwalany podczas łączenia kont lub gdy użytkownik ręcznie ponownie synchronizuje urządzenia. Usługa realizacji powinna odpowiadać obsługiwanymi cechami i atrybutami każdego urządzenia.
Odpowiedź SYNC powinna zawierać wszystkie urządzenia powiązane z użytkownikiem.
Nie określa to, czy dane urządzenie jest osiągalne. Odpowiadają za to odpowiedzi QUERY i EXECUTE.
Więcej informacji znajdziesz w artykule Identyfikowanie i synchronizowanie.
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ązane z żądaniem intencji.  | 
  
intent | 
    
       Wymagany. (Wartość stała:  Typ żądania intencji.  | 
  
Przykłady
Żądanie dotyczące zamiaru SYNC
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}Format odpowiedzi
| Pola | Typ | Opis | 
|---|---|---|
requestId | 
    String | 
       Wymagany. Identyfikator odpowiedniego żądania.  | 
  
payload | 
    Obiekt | 
       Wymagany. Ładunek odpowiedzi na intencję.  | 
  
agentUserId | 
    String | 
       Wymagany. Zawiera unikalny (i niezmienny) identyfikator użytkownika na platformie agenta. Ciąg znaków jest dla Google nieprzejrzysty, więc jeśli po stronie agenta występuje forma niezmienna i zmienna, użyj formy niezmiennej (np. numeru konta zamiast adresu e-mail).  | 
  
errorCode | 
    String | 
       W przypadku systematycznych błędów w SYNC  | 
  
debugString | 
    String | 
       Szczegółowy błąd, który nigdy nie będzie wyświetlany użytkownikom, ale może być rejestrowany lub używany podczas programowania.  | 
  
devices | 
    Tablica | 
       Wymagany. Lista urządzeń należących do użytkownika. Zwracanych jest co najmniej 0 urządzeń (0 urządzeń oznacza, że użytkownik nie ma żadnych urządzeń lub odłączył wszystkie).  | 
  
[item, ...] | 
    Obiekt | 
       metadane urządzenia,  | 
  
id | 
    String | 
       Wymagany. Identyfikator urządzenia w chmurze dewelopera. Musi być unikalny dla użytkownika i dewelopera, ponieważ w przypadku udostępniania możemy go używać do usuwania duplikatów wielu wyświetleń tego samego urządzenia. Powinien być niezmienny dla urządzenia. Jeśli się zmieni, Asystent będzie traktować urządzenie jako nowe.  | 
  
type | 
    String | 
       Wymagany. Typ sprzętu urządzenia.  | 
  
traits | 
    Tablica | 
       Wymagany. Lista cech tego urządzenia. Określa polecenia, atrybuty i stany obsługiwane przez urządzenie.  | 
  
[item, ...] | 
    String | 
       Nazwa obsługiwanego atrybutu.  | 
  
name | 
    Obiekt | 
       Wymagany. Nazwy tego urządzenia.  | 
  
defaultNames | 
    Tablica | 
       Lista nazw podanych przez dewelopera, a nie przez użytkownika, często są to nazwy producentów, numery SKU itp.  | 
  
[item, ...] | 
    String | 
       Domyślna nazwa urządzenia.  | 
  
name | 
    String | 
       Wymagany. Główna nazwa urządzenia, zwykle podawana przez użytkownika. Jest to też nazwa, której Asystent będzie używać do opisywania urządzenia w odpowiedziach. Nazwy zostaną obcięte, jeśli przekroczą limit 60 punktów kodowych Unicode (znaków), i nie zostaną zgłoszone żadne błędy. Deweloperzy odpowiadają za obsługę długich nazw.  | 
  
nicknames | 
    Tablica | 
       Dodatkowe nazwy urządzenia podane przez użytkownika.  | 
  
[item, ...] | 
    String | 
       Nazwa urządzenia.  | 
  
willReportState | 
    Wartość logiczna | 
       Wymagany. Wskazuje, czy stany tego urządzenia będą aktualizowane przez kanał danych w czasie rzeczywistym. (wartość true, aby używać kanału danych w czasie rzeczywistym do raportowania stanu, a wartość false, aby używać modelu odpytywania).  | 
  
notificationSupportedByAgent | 
    Wartość logiczna | 
       (Domyślnie:  Wskazuje, czy powiadomienia są włączone na urządzeniu.  | 
  
roomHint | 
    String | 
       Podaje aktualne pomieszczenie, w którym znajduje się urządzenie w domu użytkownika, aby uprościć konfigurację.  | 
  
deviceInfo | 
    Obiekt | 
       Zawiera pola opisujące urządzenie, które w razie potrzeby można wykorzystać w logice jednorazowej (np. „uszkodzona wersja oprogramowania X urządzenia Y wymaga dostosowania koloru” lub „błąd zabezpieczeń wymaga powiadomienia wszystkich użytkowników oprogramowania Z”).  | 
  
manufacturer | 
    String | 
       Jest to szczególnie przydatne, gdy deweloper jest centrum innych urządzeń. Google może udostępnić tutaj standardową listę producentów, aby np. TP-Link i Smartthings opisywały „osram” w ten sam sposób.  | 
  
model | 
    String | 
       Identyfikator modelu lub SKU konkretnego urządzenia.  | 
  
hwVersion | 
    String | 
       Konkretny numer wersji przypisany do sprzętu, jeśli jest dostępny.  | 
  
swVersion | 
    String | 
       Konkretny numer wersji oprogramowania, jeśli jest dostępny.  | 
  
attributes | 
    Obiekt | 
       Zgodne z atrybutami poszczególnych cech opisanymi w dokumentacji schematu każdej cechy.  | 
  
customData | 
    Obiekt | 
       Obiekt zdefiniowany przez dewelopera, który zostanie dołączony do przyszłych żądań QUERY i EXECUTE. Maksymalny rozmiar to 512 bajtów na urządzenie. Użyj tego obiektu, aby przechowywać dodatkowe informacje o urządzeniu, które mogą być potrzebne Twojej usłudze w chmurze, np. region globalny urządzenia. Dane w tym obiekcie podlegają pewnym ograniczeniom: nie mogą zawierać informacji poufnych, w tym danych umożliwiających identyfikację.  | 
  
otherDeviceIds | 
    Tablica | 
       Lista alternatywnych identyfikatorów używanych do identyfikowania urządzenia zsynchronizowanego z chmurą na potrzeby lokalnego wykonywania.  | 
  
[item, ...] | 
    Obiekt | 
       Alternatywny identyfikator urządzenia.  | 
  
agentId | 
    String | 
       Identyfikator agenta. Zwykle jest to identyfikator projektu w konsoli Actions.  | 
  
deviceId | 
    String | 
       Wymagany. Identyfikator urządzenia zdefiniowany przez agenta. Identyfikator urządzenia musi być unikalny.  | 
  
Przykłady
Odpowiedź na zamiar 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" } } ] } }