Intent

Gli intent di domotica sono semplici oggetti di messaggistica che descrivono quale integrazione Cloud-to-cloud 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 fornirne l'implementazione. Ogni volta che Google Assistant invia un'intenzione al completamento, il token di accesso OAuth 2 di terze parti di un utente viene passato nell'intestazione Authorization.

Di seguito sono riportati gli smart homeintent supportati:

SINCRONIZZA

L'intent action.devices.SYNC viene utilizzato per richiedere l'elenco dei dispositivismart home collegati dall'utente e disponibili per l'uso.

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 intento action.devices.SYNC al tuo sistema di evasione degli ordini per recuperare dall' infrastruttura cloud l'elenco iniziale dei dispositivi e delle funzionalità degli utenti.

Questa figura mostra l'interazione tra l'infrastruttura di Google
    e l'infrastruttura del partner. Nell'infrastruttura di 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 del partner è la webview di configurazione del partner, la webview OAuth, i termini e le impostazioni facoltative e i servizi cloud del partner. L'infrastruttura del partner,
    poi 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 memorizza le informazioni nel Grafo della casa.
Figura 1: interazione tra l'infrastruttura di Google e 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 partner di evasione per sincronizzare l'elenco di dispositivi e funzionalità. Per ulteriori informazioni, consulta la sezione Implementare la sincronizzazione delle richieste.

Diagramma di flusso di un'intenzione SYNC
Figura 2: Intento SYNC

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

QUERY

L'intent action.devices.QUERY viene utilizzato per eseguire query sullo stato corrente degli apparecchi 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'intenzione QUERY
Figura 3: Intento QUERY

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

Generare report sullo stato del dispositivo utilizzando lo stato report
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 servizio di evasione degli ordini riceve un'intenzione action.devices.EXECUTE che descrive l'azione e i dispositivi su cui intervenire. Un utente può eseguire un'azione su un dispositivo con un comando come Hey Google, accendi le luci in soggiorno.

Diagramma di flusso di un'intenzione 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'intenzione action.devices.DISCONNECT, non devi segnalare lo stato dei dispositivi di questo utente.