Le API Home 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 casa connessa di base (come Matter o Cloud-to-cloud) e fornisce un'API comune per creare esperienze utente sia per smart home sia 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 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 dispositivi contengono tratti che vengono utilizzati per controllarli e gestirli. Come i tipi di dispositivi, i tratti derivano dai cluster Matter e dai tratti Cloud-to-cloud e sono presentati in un formato comune simile a quello dei cluster Matter. Nelle API Home, i tratti derivati da Matter sono chiamati traits, non clusters.
Di conseguenza, i tipi e le caratteristiche dei dispositivi nelle API Home sono destinati a essere prioritariamente 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 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 dispone di metodi per verificare se supporta un attributo o un comando specifico. Questo è utile per determinare se è possibile eseguire la lettura dello stato o di determinate azioni sul dispositivo di un utente, poiché non tutti i dispositivi di un tipo di dispositivo devono avere le stesse funzionalità.
Ogni tratto è contenuto nel proprio spazio dei nomi e deve essere importato singolarmente per essere utilizzato.
Ad esempio, per utilizzare il tratto Matter On/Off e il tipo di dispositivo Plug-in Unit 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 garage (dalla smart home di Google), includi una combinazione di attributi 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 ha la funzionalità di completamento automatico e spesso gestirà i nomi completi dei pacchetti quando aggiungi righe import
ai file di origine nel tuo progetto. Tuttavia, i nomi dei pacchetti non sono coerenti per tutti i tipi e i tratti dei dispositivi. Consulta il riferimento per verificare il nome del pacchetto corretto per ogni
DeviceType
o
Trait
.
I tratti sono supportati anche per l'utilizzo con le automazioni, ma potrebbero essere limitati e alcuni sono disponibili solo per le automazioni. Per un elenco, consulta Supporto dei tratti dell'API Automation.
Composizione del tipo di dispositivo
Le API Home supportano la maggior parte dei cluster di applicazioni Matter 1.3 come tratti nel modello di dati. Le caratteristiche che non corrispondono al controllo o agli stati del dispositivo e non offrono alcuna utilità per gli utenti finali, come Binding e Groups, non sono esposte 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 di tratti Matter, creati utilizzando estensioni Matter specifiche del produttore. Questi tratti colmano il vuoto per un tratto smart home in cui la funzionalità è suddivisa tra l'SDK Matter e l'ecosistema Google Home. Un esempio specifico è costituito dai tipi di dispositivi Google*
provenienti da Cloud-to-cloud, che però 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 ventola è composto da entrambi e presenta due tratti FanControl:
- L'attributo FanControl Matter fornisce tutte le funzionalità dell'attributo FanControl Matter
- La caratteristica Google ExtendedFanControl fornisce tutte le funzionalità della caratteristica Google smart home FanSpeed non coperte dalla caratteristica Matter FanControl
Questo tipo di composizione di tratti fornisce un modello flessibile per la funzionalità completa del tipo di dispositivo, astraendo i modelli di dati smart home sottostanti.