action.devices.SYNC
Questo intent richiede l'elenco dei dispositivi associati all'utente specificato e le relative funzionalità.
Viene attivato durante il collegamento dell'account o quando un utente risincronizza manualmente i dispositivi. L'evasione dell'ordine deve rispondere con trait e attributi supportati per ogni dispositivo.
La risposta di SYNC
dovrebbe restituire tutti i dispositivi associati all'utente.
Questa operazione non determina se un determinato dispositivo è raggiungibile. Ciò viene gestito dal
QUERY
e
EXECUTE
risposte.
Per maggiori dettagli, vedi Identificazione e sincronizzazione.
Formato della richiesta
Campi | Tipo | Descrizione |
---|---|---|
requestId |
String |
Obbligatorio. ID della richiesta. |
inputs |
Array |
Obbligatorio. Elenco di input corrispondenti alla richiesta di intent. |
[item, ...] |
Oggetto |
Tipo e payload associati alla richiesta di intent. |
intent |
Obbligatorio. (Valore costante: Tipo di richiesta di intent. |
Esempi
Richiesta di intent di sincronizzazione
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [ { "intent": "action.devices.SYNC" } ] }
Formato della risposta
Campi | Tipo | Descrizione |
---|---|---|
requestId |
String |
Obbligatorio. ID della richiesta corrispondente. |
payload |
Oggetto |
Obbligatorio. Payload della risposta dell'intent. |
agentUserId |
String |
Obbligatorio. Indica l'ID utente univoco (e immutabile) sulla piattaforma dell'agente. La stringa è opaca per Google, quindi se esiste un modulo immutabile e uno modificabile sul lato agente, utilizza il modulo immutabile (ad es. un numero di account anziché un indirizzo email). |
errorCode |
String |
Per errori sistematici su SYNC |
debugString |
String |
Errore dettagliato che non verrà mai mostrato agli utenti, ma potrebbe essere registrato o utilizzato durante lo sviluppo. |
devices |
Array |
Obbligatorio. Elenco dei dispositivi di proprietà dell'utente. Vengono restituiti zero o più dispositivi (nessun dispositivo, vale a dire che l'utente non ha dispositivi o li ha disconnessi tutti). |
[item, ...] |
Oggetto |
Metadati del dispositivo. |
id |
String |
Obbligatorio. L'ID del dispositivo nel cloud dello sviluppatore. Deve essere univoco per l'utente e lo sviluppatore, poiché in caso di condivisione potremmo utilizzarlo per deduplicare più visualizzazioni dello stesso dispositivo. Deve essere immutabile per il dispositivo. Se cambia, l'assistente lo tratterà come un nuovo dispositivo. |
type |
String |
Obbligatorio. Il tipo di hardware del dispositivo. |
traits |
Array |
Obbligatorio. Elenco di trait di questo dispositivo. che definiscono i comandi, gli attributi e gli stati supportati dal dispositivo. |
[item, ...] |
String |
Nome del trait supportato. |
name |
Oggetto |
Obbligatorio. Nomi di questo dispositivo. |
defaultNames |
Array |
Elenco di nomi forniti dallo sviluppatore anziché dall'utente, spesso nomi del produttore, SKU e così via. |
[item, ...] |
String |
Nome predefinito del dispositivo. |
name |
String |
Obbligatorio. Il nome principale del dispositivo, generalmente fornito dall'utente. Si tratta anche del nome che l'assistente preferirà per descrivere il dispositivo nelle risposte. |
nicknames |
Array |
Nomi aggiuntivi forniti dall'utente per il dispositivo. |
[item, ...] |
String |
Nickname dispositivo. |
willReportState |
Valore booleano |
Obbligatorio. Indica se gli stati di questo dispositivo verranno aggiornati dal feed in tempo reale. (true per utilizzare il feed in tempo reale per lo stato dei report e false per utilizzare il modello di polling.) |
notificationSupportedByAgent |
Valore booleano |
(Valore predefinito: Indica se le notifiche sono attive per il dispositivo. |
roomHint |
String |
Fornisce la stanza attuale del dispositivo nella casa dell'utente per semplificare la configurazione. |
deviceInfo |
Oggetto |
Contiene campi che descrivono il dispositivo per l'utilizzo in una logica una tantum, se necessario (ad esempio "la versione firmware X non funzionante della spia Y richiede la regolazione del colore" oppure "un difetto di sicurezza richiede l'invio di una notifica a tutti gli utenti del firmware Z"). |
manufacturer |
String |
Utile in particolar modo quando lo sviluppatore è un hub per altri dispositivi. Google potrebbe fornire qui un elenco standard dei produttori in modo che, ad esempio, TP-Link e Smartthings descrivono entrambi "osram" allo stesso modo. |
model |
String |
L'identificatore del modello o dello SKU del dispositivo specifico. |
hwVersion |
String |
Numero di versione specifico collegato all'hardware, se disponibile. |
swVersion |
String |
Numero di versione specifico collegato al software/firmware, se disponibile. |
attributes |
Oggetto |
Allineato agli attributi per trait descritti in ogni riferimento allo schema dei tratti. |
customData |
Oggetto |
Oggetto definito dallo sviluppatore che verrà associato a future richieste QUERY ed EXECUTE, con un massimo di 512 byte per dispositivo. Utilizza questo oggetto per archiviare informazioni aggiuntive sul dispositivo di cui il servizio cloud potrebbe aver bisogno, ad esempio la regione globale del dispositivo. I dati in questo oggetto hanno alcuni vincoli: nessuna informazione sensibile inclusa, a titolo esemplificativo, le informazioni che consentono l'identificazione personale. |
otherDeviceIds |
Array |
Elenco di ID alternativi utilizzati per identificare un dispositivo sincronizzato nel cloud per l'esecuzione locale. |
[item, ...] |
Oggetto |
ID dispositivo alternativo. |
agentId |
String |
L'ID dell'agente. In genere, si tratta dell'ID progetto nella console di Actions. |
deviceId |
String |
Obbligatorio. ID dispositivo definito dall'agente. L'ID dispositivo deve essere univoco. |
Esempi
Risposta dell'intent 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" } } ] } }