Intent

Gli intent per la smart home sono semplici oggetti di messaggistica che descrivono l'integrazione Cloud-to-cloud da eseguire, ad esempio accendere una luce o trasmettere audio a uno speaker.

Tutti gli intent smart home sono contenuti nello spazio dei nomi action.devices e devi fornire l'esecuzione per questi intent. Ogni volta che Google Assistant invia un intent all'esecuzione, l'intestazione Authorization viene trasmessa con il token di accesso OAuth 2 di terze parti di un utente.

Questi sono gli intent smart home supportati:

SYNC

L'intent action.devices.SYNC viene utilizzato per richiedere l'elenco dei smart home dispositivi che l'utente ha connesso e che sono disponibili per l'uso.

Quando un utente configura i propri dispositivi con il Google Home app (GHA), viene autenticato anche nella tua infrastruttura cloud. A questo punto, Assistant riceve un token OAuth 2. A questo punto, Assistant invia un intent action.devices.SYNC all' esecuzione per recuperare l'elenco iniziale dei dispositivi e delle funzionalità dell'utente dalla tua infrastruttura cloud.

Questa figura mostra l'interazione tra l'infrastruttura di Google
    e l'infrastruttura del partner. Dall'infrastruttura Google è disponibile un
    elenco di partner per l'app client dell'assistente, che poi
    viene trasferito all'infrastruttura del partner per completare l'autenticazione OAuth. L'autenticazione OAuth
    sul lato partner è la webview di configurazione del partner, la webview OAuth,
    le impostazioni e i termini facoltativi e i servizi cloud partner. L'infrastruttura del partner,
    quindi restituisce le credenziali OAuth all'app client dell'assistente. I servizi cloud del partner inviano i dispositivi e le funzionalità disponibili ai servizi dell'assistente,
    che poi memorizzano le informazioni in Home Graph.
Figura 1: interazione tra l'infrastruttura di Google e quella del partner

Per evitare di scollegare e ricollegare l'account di un utente, puoi inviare una sincronizzazione delle richieste a Assistant. In questo modo, l'intent action.devices.SYNC viene inviato all'esecuzione per sincronizzare l'elenco dei dispositivi e delle funzionalità. Per saperne di più, consulta Implementare la sincronizzazione delle richieste per maggiori informazioni.

Diagramma di flusso di un intent SYNC
Figura 2: intent SYNC

Durante la configurazione dell'esecuzione locale, la piattaforma Local Home controlla la risposta SYNC dall' smart home esecuzione cloud dell'azione. Per scoprire di più su come modificare la risposta SYNC per supportare l'esecuzione locale, consulta Aggiornare la risposta SYNC nell'esecuzione cloud.

QUERY

L'intent action.devices.QUERY viene utilizzato per eseguire query sullo stato attuale dei smart home dispositivi.

Quando gli utenti eseguono query sullo stato del dispositivo, per rispondere a una domanda come Hey Google, quali luci sono accese in cucina?, Assistant invia un intent action.devices.QUERY all' esecuzione.

Diagramma di flusso di un intent QUERY
Figura 3: intent QUERY

Per un'esperienza utente ottimale, devi implementare Report State per segnalare in modo proattivo lo stato attuale dei dispositivi di un utente direttamente a Google Home Graph. Ad esempio, in questo modo Assistant sa se l'utente ha acceso una luce intelligente con un interruttore fisico.

Segnalare lo stato del dispositivo utilizzando Report State
Figura 4: segnalare lo stato del dispositivo

EXECUTE

L'intent action.devices.EXECUTE viene utilizzato per fornire i comandi da eseguire sui dispositivi smart home.

Quando gli utenti inviano comandi ai dispositivi con Assistant, l'esecuzione riceve un action.devices.EXECUTE intent che descrive l'azione e i dispositivi su cui agire. Un utente può eseguire un'azione su un dispositivo con un comando come Hey Google, accendi le luci del soggiorno.

Diagramma di flusso di un intent EXECUTE
Figura 5: intent EXECUTE

DISCONNECT

L'intent action.devices.DISCONNECT viene attivato per informarti quando un utente ha scollegato l'account dell'app da Assistant. Dopo aver ricevuto un intent action.devices.DISCONNECT, non devi segnalare lo stato dei dispositivi di questo utente.