Modello di dati su Android

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 Identify Matter fornisce tutte le funzionalità di Matter Identify.
  • Il tratto FanControl Matter fornisce tutte le funzionalità del tratto Matter FanControl.
  • Il tratto Google ExtendedFanControl fornisce tutte le funzionalità del tratto smart home FanSpeed della smart home di Google non coperte dal tratto FanControl Matter

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.