action.devices.SYNC
Questo intent richiede l'elenco dei dispositivi associati all'utente specificato e le relative funzionalità.
Viene attivata durante il collegamento dell'account o quando un utente risincronizza manualmente i propri dispositivi. L'intent di fulfillment deve rispondere con i trait e attributi supportati per ogni dispositivo.
La risposta SYNC
deve restituire tutti i dispositivi associati all'utente.
Questa impostazione non determina se un particolare dispositivo è raggiungibile. Questo aspetto viene gestito dalle risposte
QUERY
e
EXECUTE
.
Per maggiori dettagli, vedi Identificare e sincronizzare.
Formato della richiesta
Campi | Tipo | Descrizione |
---|---|---|
requestId |
String |
Obbligatorio. ID della richiesta. |
inputs |
Array |
Obbligatorio. Elenco degli input che corrispondono 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 SYNC
{ "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 all'intent. |
agentUserId |
String |
Obbligatorio. Riflette l'ID utente univoco (e immutabile) sulla piattaforma dell'agente. La stringa è opaca per Google, quindi se sul lato agente è presente un modulo immutabile e uno modificabile, utilizza il modulo immutabile (ad es. un numero di conto anziché un'email). |
errorCode |
String |
Per errori sistematici su SYNC |
debugString |
String |
Errore dettagliato che non verrà mai mostrato agli utenti, ma che potrebbe essere registrato o utilizzato durante lo sviluppo. |
devices |
Array |
Obbligatorio. Elenco dei dispositivi di proprietà dell'utente. Vengono restituiti zero o più dispositivi (zero dispositivi significa 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 per 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 dei trait di questo dispositivo. Definisce i comandi, gli attributi e gli stati supportati dal dispositivo. |
[item, ...] |
String |
Nome della caratteristica supportata. |
name |
Oggetto |
Obbligatorio. I nomi di questo dispositivo. |
defaultNames |
Array |
Elenco di nomi forniti dallo sviluppatore anziché dall'utente, spesso nomi di produttori, SKU e così via. |
[item, ...] |
String |
Nome predefinito del dispositivo. |
name |
String |
Obbligatorio. Nome principale del dispositivo, generalmente fornito dall'utente. Questo è anche il nome che l'assistente preferirà per descrivere il dispositivo nelle risposte. I nomi verranno troncati se superano il limite di 60 punti di codice Unicode (caratteri) e non verranno generati errori. Gli sviluppatori sono responsabili della gestione dei nomi lunghi. |
nicknames |
Array |
Nomi aggiuntivi forniti dall'utente per il dispositivo. |
[item, ...] |
String |
Il nickname del 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 |
(Predefinito: Indica se le notifiche sono attivate 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 da utilizzare nella logica una tantum, se necessario (ad es. "la versione firmware X difettosa della luce Y richiede la regolazione del colore" o "il difetto di sicurezza richiede la notifica a tutti gli utenti del firmware Z"). |
manufacturer |
String |
Particolarmente utile quando lo sviluppatore è un hub per altri dispositivi. Google potrebbe fornire un elenco standard di produttori qui, in modo che, ad esempio, TP-Link e SmartThings descrivano "Osram" nello stesso modo. |
model |
String |
L'identificatore del modello o dello SKU del dispositivo specifico. |
hwVersion |
String |
Il numero di versione specifico allegato all'hardware, se disponibile. |
swVersion |
String |
Numero di versione specifico allegato al software/firmware, se disponibile. |
attributes |
Oggetto |
In linea con gli attributi per tratto descritti in ogni riferimento allo schema del tratto. |
customData |
Oggetto |
Oggetto definito dallo sviluppatore che verrà allegato alle richieste QUERY ed EXECUTE future, massimo 512 byte per dispositivo. Utilizza questo oggetto per archiviare informazioni aggiuntive sul dispositivo di cui il tuo servizio cloud potrebbe aver bisogno, ad esempio la regione globale del dispositivo. I dati in questo oggetto presentano alcuni vincoli: non devono contenere informazioni sensibili, incluse, a titolo esemplificativo, le informazioni che consentono l'identificazione personale. |
otherDeviceIds |
Array |
Elenco di ID alternativi utilizzati per identificare un dispositivo sincronizzato con il 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 Actions. |
deviceId |
String |
Obbligatorio. ID dispositivo definito dall'agente. L'ID dispositivo deve essere univoco. |
Esempi
Risposta all'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" } } ] } }