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: "action.devices.SYNC")

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: false)

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