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 (ad esempio Matter o Cloud-to-cloud), e fornisce una superficie API comune per creare esperienze utente per gli sviluppatori di app per la smart home e per dispositivi mobili.
Tipi di dispositivo
I tipi di dispositivo 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 dispositivo contengono tratti utilizzati per controllare e gestire i dispositivi. Come i tipi di dispositivo, i tratti derivano dai Matter cluster e dai Cloud-to-cloud tratti e vengono presentati in un formato comune che è simile a quello dei Matter cluster. Nelle API Home, Matter-derived traits sono chiamati traits, non clusters.
Pertanto, i tipi di dispositivo e i tratti nelle API Home sono pensati per essere Matter-first. Un tipo di dispositivo o tratto Matter ha la precedenza su un analogo Cloud-to-cloud.
Per un elenco dei tipi di dispositivo e dei relativi tratti, consulta Tipi di dispositivi supportati su Android.
Tratti
Le versioni Kotlin dei tratti vengono generate per l'utilizzo nelle API Home e contengono funzionalità aggiuntive specifiche delle 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. Questa funzionalità è utile per determinare se è possibile leggere lo stato o eseguire determinate azioni sul dispositivo di un utente, poiché non è previsto che tutti i dispositivi di un tipo di dispositivo abbiano 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 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 tuo progetto. Tuttavia, i nomi dei pacchetti non sono coerenti in tutti i tipi di dispositivo 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 Automazione 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 tratti che non corrispondono al controllo o agli stati dei dispositivi e che non offrono alcuna utilità per gli utenti finali, come Binding e Groups, non vengono esposti tramite le API Home.
I tratti derivati dai tratti della 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 dei
Matter tratti, creati utilizzando Matter
estensioni specifiche del produttore. Questi tratti colmano il divario per un
smart home tratto in cui la funzionalità è suddivisa tra l'
Matter SDK e l'ecosistema Google Home. Un esempio specifico sono i tipi di dispositivo Google* che provengono da
Cloud-to-cloud ma non hanno ancora analoghi Matter.
I tipi di dispositivo sono composti da tratti di una o entrambe le origini, Matter o Cloud-to-cloud.
Ad esempio, il tipo di dispositivo Fan è composto da entrambi e include tre tratti:
- Il tratto
IdentifyMatter fornisce tutte le funzionalità di MatterIdentify. - Il tratto
FanControlMatter fornisce tutte le funzionalità del tratto MatterFanControl. - Il tratto Google
ExtendedFanControlfornisce tutte le funzionalità del tratto smart homeFanSpeeddella smart home di Google non coperte dal trattoFanControlMatter
Questo tipo di composizione dei tratti fornisce un modello flessibile per la funzionalità completa del tipo di dispositivo, che astrae i modelli di dati sottostanti smart home.