Intent

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 fulfillment per questi intent. Ogni volta che Google Assistant invia un intent al fulfillment, 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'utilizzo.

Quando un utente configura i propri dispositivi con Google Home app (GHA), viene anche autenticato 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 dei dispositivi e delle funzionalità degli utenti dalla tua infrastruttura cloud.

Questa figura mostra l'interazione tra l'infrastruttura di Google e quella del partner. Dall'infrastruttura Google è disponibile un elenco di partner per l'app client dell'assistente, che poi passa all'infrastruttura del partner per completare l'autenticazione OAuth. L'autenticazione OAuth sul lato partner è la visualizzazione web di configurazione del partner, la visualizzazione web OAuth, le impostazioni e i termini facoltativi e i servizi cloud del partner. L'infrastruttura del partner restituisce quindi 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 richiesta di sincronizzazione a Assistant. In questo modo, l'intent action.devices.SYNC viene inviato al tuo fulfillment per sincronizzare l'elenco di dispositivi e funzionalità. Per saperne di più, consulta Implementa 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 dell'evasione cloud dell'Azione smart home. Per scoprire di più su come modificare la risposta SYNC per supportare l'evasione locale, consulta Aggiorna 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: intent QUERY

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

Segnalazione dello stato del dispositivo tramite 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.