Situazioni

Gli intent per la smart home sono semplici oggetti di messaggistica che descrivono l'azione di smart home 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 il relativo completamento. Ogni volta che Google Assistant invia un intent al completamento, il token di accesso OAuth 2 di terze parti di un utente viene passato nell'intestazione Autorizzazione.

Questi sono gli intent smart home supportati:

SINCRONIZZA

L'intent action.devices.SYNC viene utilizzato per richiedere l'elenco di smart home dispositivi 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 anche autenticato nella tua infrastruttura cloud. Quindi, 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 l'infrastruttura del partner. Dall'infrastruttura di Google è presente un
    elenco di partner disponibile per l'app client dell'assistente, che poi
    passa all'infrastruttura del partner per completare l'autenticazione OAuth. L'autenticazione
    OAuth sul lato partner è costituita da WebView, WebView OAuth,
    impostazioni e termini facoltativi e dai 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 nel grafico Home.
Figura 1: interazione tra Google e l'infrastruttura dei partner

Per evitare di scollegare e ricollegare l'account di un utente, puoi inviare una richiesta di sincronizzazione a Assistant. L'intent action.devices.SYNC viene inviato al tuo fulfillment per sincronizzare l'elenco di dispositivi e funzionalità. Per ulteriori informazioni, consulta Implementare la sincronizzazione delle richieste.

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

Durante la configurazione del fulfillment locale, la piattaforma della casa locale controlla la risposta SYNC dal fulfillment smart home del cloud dell'Azione. Per scoprire di più su come modificare la risposta SYNC per supportare il fulfillment locale, consulta Aggiornamento della risposta SYNC in fulfillment cloud.

QUERY

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

Quando gli utenti fanno 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 evasione degli ordini.

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

Per una migliore esperienza utente, devi implementare lo stato del report 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 delle luci fisiche.

Segnalazione dello stato del dispositivo tramite Stato del report
Figura 4: segnalazione dello stato del dispositivo

ESEGUI

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'evasione dell'ordine 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 salotto.

Diagramma di flusso di un intent EXECUTE
Figura 5: ESEGUI l'intent

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.