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 per sviluppatori di smart home e 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 sono derivati direttamente da Matter, altri sono un'estensione dei tipi di dispositivi Matter e altri ancora sono derivati da Cloud-to-cloud.
I tipi di dispositivo contengono caratteristiche utilizzate per controllare e gestire i dispositivi. Come i tipi di dispositivi, le caratteristiche derivano dai cluster Matter e dalle caratteristiche Cloud-to-cloud e vengono presentate in un formato comune simile a quello dei cluster Matter. Nelle API Home, le caratteristiche derivate da Matter sono chiamate tratti, non cluster.
Pertanto, i tipi di dispositivi e i tratti nelle API Home sono pensati per essere Matter-first. Un tipo di dispositivo o caratteristica 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 tratti 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 tratto ha metodi per verificare se un tratto supporta un attributo o un comando specifico. Ciò è 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 hanno le stesse funzionalità.
Ogni caratteristica è contenuta nel proprio spazio dei nomi e deve essere importata singolarmente per essere utilizzata.
Ad esempio, per utilizzare il tratto Matter On/Off e il tipo di dispositivo Unità plug-in On/Off, 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 per il garage (dalla smart home Google), includi un mix di Matter e tratti Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio ha la funzionalità di completamento automatico e spesso gestisce i nomi completi dei pacchetti quando aggiungi righe import ai file sorgente del progetto. Tuttavia, i nomi dei pacchetti non sono coerenti in tutti i tipi e le caratteristiche dei dispositivi. Consulta il riferimento per verificare il nome del pacchetto corretto per ogni
DeviceType o
Trait.
La maggior parte delle caratteristiche è supportata per l'utilizzo con le automazioni e alcune sono disponibili solo per le automazioni. Per maggiori dettagli, consulta Supporto dei tratti dell'API Automation su Android.
Composizione del tipo di dispositivo
Le API Home supportano la maggior parte dei cluster di applicazioni Matter come tratti nel modello di dati. I cluster di configurazione di basso livello che non offrono
utilità diretta per gli utenti finali, come Binding, non sono esposti tramite
le API Home.
Le caratteristiche derivate dalle caratteristiche di smart home 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
delle caratteristiche Matter, create 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 trait di una o entrambe le origini, Matter o Cloud-to-cloud.
Ad esempio, il tipo di dispositivo Ventilatore è composto da entrambi e presenta tre caratteristiche:
- Il tratto
IdentifyMatter fornisce tutte le funzionalità di MatterIdentify. - Il tratto
FanControlMatter fornisce tutte le funzionalità del tratto MatterFanControl - L'attributo Google
ExtendedFanControlfornisce tutte le funzionalità dell'attributo Google smart homeFanSpeednon coperte dall'attributoFanControlMatter.
Questo tipo di composizione dei tratti 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. I gruppi di dispositivi sono
rappresentati dall'entità DeviceGroup, che è diversa da HomeDevice.
Per ulteriori informazioni sui gruppi di dispositivi, consulta la sezione API Structure.