Situazioni

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

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

Questi sono gli intent smart home supportati:

SINCRONIZZA

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

Quando un utente configura i propri dispositivi con Google Home app (GHA), viene autenticato anche nella tua infrastruttura cloud. Poi, Assistant riceve un token OAuth2. A questo punto, Assistant invia un intent action.devices.SYNC al tuo fulfillment per recuperare l'elenco iniziale di dispositivi e 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 della richiesta a Assistant. In questo modo, l'intent action.devices.SYNC viene inviato all'intent di fulfillment per sincronizzare l'elenco dei dispositivi e delle funzionalità. Per ulteriori informazioni, consulta Implementare la sincronizzazione delle richieste.

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

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

QUERY

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

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 al tuo fulfillment.

Diagramma di flusso di un intent QUERY
Figura 3: intento 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 smart con un interruttore della luce fisico.

Segnalare lo stato del dispositivo utilizzando Report State
Figura 4: report sullo stato del dispositivo

EXECUTE

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

Quando gli utenti inviano comandi ai dispositivi con Assistant, il tuo fulfillment riceve un intent action.devices.EXECUTE 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

DISCONNETTI

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.