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

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

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