Modello di dati su iOS

Le API Home per iOS 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 sia per gli sviluppatori di app per la smart home smart home sia per le app mobile.

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 dispositivo 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 dispositivo supportati su iOS.

Tratti

Le versioni Swift 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. 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 hanno le stesse funzionalità.

Per importare tratti e tipi di dispositivo, importa il modulo GoogleHomeTypes nella tua applicazione:

import GoogleHomeTypes

Inoltre, puoi utilizzare typealias per i nomi dei tratti e dei tipi di dispositivo per abbreviare il codice ed evitare la ripetizione degli spazi dei nomi:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

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 non offrono alcuna utilità per gli utenti finali, come Binding e Groups, non vengono esposti tramite le API Home.

I tratti derivati dai tratti per la smart home Cloud-to-cloud in genere hanno lo stesso nome tra Cloud-to-cloud e le API Home, come nell'esempio di OpenCloseTrait. 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 FanDeviceType è composto da entrambi e include tre tratti:

  • Il tratto IdentifyTrait Matter fornisce tutte le funzionalità di Matter IdentifyTrait.
  • Il tratto FanControlTrait Matter fornisce tutte le funzionalità di Matter FanControlTrait.
  • Il tratto Google ExtendedFanControlTrait fornisce tutte le funzionalità della smart home Google FanSpeedTrait non coperte dal tratto FanControlTrait 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.