Le API Home per Android presentano tutti i dispositivi dell'ecosistema Google Home in un modello di dati unificato. Questo modello di dati copre tutti i tipi di dispositivi (di Google Nest o di produttori di terze parti), indipendentemente dalla tecnologia per la smart home sottostante (come Matter o Cloud-to-cloud), e fornisce una superficie API comune per creare esperienze utente sia per gli sviluppatori di smart home che per gli sviluppatori di app mobile.
Tipi di dispositivo
I tipi di dispositivi presentati nelle API Home sono un'unificazione dei modelli di dati Matter e Cloud-to-cloud. Alcuni derivano direttamente da Matter, altri sono un'estensione dei tipi di dispositivi Matter e altri ancora derivano da Cloud-to-cloud.
I tipi di dispositivi contengono tratti utilizzati per controllare e gestire i dispositivi. Come i tipi di dispositivi, i tratti derivano dai cluster Matter e dai tratti Cloud-to-cloud e vengono presentati in un formato comune simile a quello dei cluster Matter. Nelle API Home, i tratti derivati da Matter sono chiamati tratti, non cluster.
Pertanto, i tipi di dispositivi e i tratti nelle API Home sono progettati per essere incentrati su Matter. Un tipo di dispositivo o un tratto Matter ha la precedenza su un analogo Cloud-to-cloud.
Consulta la sezione Tipi di dispositivi supportati su Android per un elenco dei tipi di dispositivi e delle relative caratteristiche.
Tratti
Le versioni Kotlin dei trait vengono generate per l'utilizzo nelle API Home e contengono funzionalità aggiuntive specifiche per le API Home (non presenti in Matter o Cloud-to-cloud). Ad esempio, ogni trait dispone di metodi per verificare se un trait supporta un attributo o un comando specifico. Questo è utile per determinare se la lettura dello stato o determinate azioni possono essere eseguite sul dispositivo di un utente, poiché non tutti i dispositivi di un tipo di dispositivo dovrebbero avere le stesse funzionalità.
Ogni tratto è contenuto nel proprio spazio dei nomi e deve essere importato singolarmente per l'utilizzo.
Ad esempio, per utilizzare il tratto On/Off Matter e il tipo di dispositivo On/Off Plug-in Unit, importa i seguenti pacchetti nella tua applicazione:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Per un tipo di dispositivo Garage (dalla smart home di Google), includi un mix di caratteristiche Matter e Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio dispone di una funzionalità di completamento automatico e spesso gestisce i nomi completi dei pacchetti per te quando aggiungi righe import ai file sorgente del progetto. Tuttavia, i nomi dei pacchetti non sono coerenti tra tutti i tipi di dispositivi e i tratti. Consulta il riferimento per verificare il nome del pacchetto corretto per ogni
DeviceType o
Trait.
La maggior parte dei tratti è supportata per l'utilizzo con le automazioni e alcuni tratti sono disponibili solo per le automazioni. Per maggiori dettagli, consulta Supporto dei tratti dell'API Automation su Android.
Composizione dei tipi di dispositivi
Le API Home supportano la maggior parte dei cluster di applicazioni Matter come caratteristiche nel modello di dati. I cluster di configurazione di basso livello che non offrono un'utilità diretta per gli utenti finali, come Binding, non vengono esposti tramite le API Home.
I tratti derivati dai tratti per la smart home di Cloud-to-cloud in genere hanno lo stesso nome tra Cloud-to-cloud e le API Home, come nell'esempio di OpenClose. Altri sono rappresentati come estensioni dei tratti Matter, creati utilizzando le estensioni specifiche del produttore Matter. Questi tratti colmano il divario per un tratto smart home in cui la funzionalità è suddivisa tra l'SDK Matter e l'ecosistema Google Home. Un esempio specifico sono i tipi di dispositivi Google* che provengono da Cloud-to-cloud, ma non hanno ancora analoghi Matter.
I tipi di dispositivi sono composti da tratti di una o entrambe le origini, Matter o Cloud-to-cloud.
Ad esempio, il tipo di dispositivo Ventilatore è composto da entrambi e presenta tre tratti:
- Il tratto Matter
Identifyfornisce tutte le funzionalità di MatterIdentify. - Il tratto
FanControlMatter fornisce tutte le funzionalità del tratto MatterFanControl - La caratteristica Google
ExtendedFanControlfornisce tutte le funzionalità della caratteristica Google smart homeFanSpeedche non sono coperte dalla caratteristicaFanControlMatter
Questo tipo di composizione dei trait fornisce un modello flessibile per la funzionalità completa del tipo di dispositivo, astraendo i modelli di dati smart home sottostanti.
Gruppi di dispositivi
Un gruppo di dispositivi rappresenta una raccolta di dispositivi definita dall'utente all'interno di una singola struttura. L'iscrizione al gruppo viene conservata nei servizi Google ed è visibile agli altri membri della struttura e alle altre app con accesso alla struttura.
I gruppi di dispositivi sono rappresentati dall'entità DeviceGroup, che è distinta da HomeDevice.
Ogni HomeDevice elenca i gruppi a cui appartiene tramite la sua caratteristica GroupMembership (risolta in modo reattivo con group.devices()), in modo che la tua app possa ispezionare le iscrizioni ai gruppi e scorrere direttamente i dispositivi membri di un gruppo. Inoltre, DeviceGroup implementa l'interfaccia PartsProvider per esporre i tipi di dispositivi supportati dai dispositivi membri quando il gruppo viene scelto come target nel suo complesso.
Per saperne di più sui gruppi di dispositivi, consulta API Structure e Controlla un gruppo di dispositivi.