Panoramica delle API Home per Android

Le API Google Home per Android forniscono una superficie API unificata per consentire agli sviluppatori di interagire con lo stato delle entità nella casa di un utente. Queste entità possono descrivere informazioni sui dispositivi e non associate alla struttura e alle stanze di un utente.

Le API Home definiscono le seguenti entità con cui un utente può interagire:

  • Le strutture rappresentano una casa che contiene stanze e dispositivi.
  • Le stanze fanno parte di una struttura e contengono dispositivi.
  • I dispositivi implementano tratti contenenti attributi, sono conformi ai tipi, emettono eventi e rispondono ai comandi.
  • Le automazioni fanno parte di una struttura e utilizzano i metadati e i dispositivi della casa per automatizzare le attività in casa.

La figura 1 illustra questa architettura:

Diagramma che mostra l'architettura delle API Home per un'app per Android
Figura 1: Architettura delle API Home per un' app Android

I tipi di dispositivi delle API Home possono essere supportati da Matter, uno standard aperto per la smart home, o essere un dispositivo Cloud-to-cloud nell'ecosistema Google Home. Alcuni tipi di dispositivi potrebbero incorporare funzionalità di entrambi. Per ulteriori informazioni, consulta Tipi di dispositivi supportati su Android.

In Matter, la funzionalità del dispositivo è raggruppata per cluster, che sono rappresentati nelle API Home come Matter tratti standard. Le API Home supportano il set standard di Matter cluster come definito nella Matter specifica corrente.

Nell'ecosistema Google Home, la funzionalità del dispositivo è raggruppata per tratti della smart home, che sono rappresentati nelle API Home come tratti della smart home di Google. Le API Home supportano il set di tratti della smart home come definito nel Cloud-to-cloud programma.

Sono disponibili anche altri tratti, come i cluster specifici del produttore e i tratti della piattaforma. Per saperne di più, consulta Modello dei dati su Android.

Ecosistema

L'ecosistema Google Home fornisce una base semplificata per creare, gestire, proteggere e integrare le esperienze di smart home. La figura 2 mostra come tutti i componenti funzionano insieme.

Diagramma che mostra l'ecosistema delle API Home per un'app per Android
Figura 2: L'ecosistema delle API Home per un'app Android

L'ecosistema include il motore di automazione di Google che archivia ed esegue automazioni che forniscono un modo per automatizzare le attività e le impostazioni dei dispositivi in una casa.

Le API Home utilizzano OAuth 2.0 per concedere l'accesso ai dispositivi nella struttura. OAuth consente a un utente di concedere l'autorizzazione a un'app o a un servizio senza dover esporre le proprie credenziali di accesso.

Il Google Home Developer Console viene utilizzato per gestire tutte le fasi di un progetto di API Home , dalla verifica del brand allo sviluppo, ai test e alla certificazione fino al lancio finale. Semplifica il processo di sviluppo fornendo al contempo strumenti e distribuzione robusti tramite l'ecosistema Google Home.

Lingua

Le API Home per Android sono scritte in Kotlin e forniscono un'interfaccia Kotlin idiomatica che utilizza Flow per gestire lo stato e l'abbonamento. Questo approccio offre una serie di vantaggi rispetto a un'API di abbonamento standard.

Ti consigliamo di familiarizzare con la documentazione di Kotlin su coroutine, flusso e Jetpack Compose, se non l'hai già fatto:

Identificatori di entità

Ogni entità nelle API Home ha un ID che rappresenta il suo identificatore principale. Questo ID è un identificatore univoco e stabile che non cambierà mai per la durata dell'entità. Questo ID può essere utilizzato per memorizzare nella cache gli oggetti o verificare l'uguaglianza, poiché i metadati di un'entità possono cambiare.

Consulta l'interfaccia HasId per scoprire quali entità hanno un ID.

Mappatura della terminologia

Le entità nelle API Home vengono mappate ai concetti di Matter e Cloud-to-cloud come segue:

API Home Matter Cloud-to-cloud
Tratto Cluster Tratto
Attributo Attributo Attributo, Stato
Comando Comando Comando
Evento Evento Risposta di follow-up, Notifica