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 (come Matter o Cloud-to-cloud), e fornisce una superficie API comune per creare esperienze utente sia per gli sviluppatori di smart home che 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 derivano direttamente da Matter, altri sono un'estensione dei tipi di dispositivi Matter e altri ancora derivano da Cloud-to-cloud.

I tipi di dispositivi contengono tratti utilizzati per controllare e gestire i dispositivi. Come i tipi di dispositivi, i tratti derivano dai cluster Matter e dai tratti Cloud-to-cloud e vengono presentati in un formato comune simile a quello dei cluster Matter. Nelle API Home, i tratti derivati da Matter sono chiamati tratti, non cluster.

Pertanto, i tipi di dispositivi e i tratti nelle API Home sono progettati per essere incentrati su 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 su iOS per un elenco dei tipi di dispositivi e delle relative caratteristiche.

Tratti

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

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

import GoogleHomeTypes

Inoltre, puoi utilizzare typealias per i nomi dei tratti e dei tipi di dispositivi per abbreviare il codice ed evitare la ripetizione dello spazio 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 Automation su Android.

Composizione dei tipi di dispositivi

Le API Home supportano la maggior parte dei cluster di applicazioni Matter come caratteristiche nel modello di dati. I cluster di configurazione di basso livello che non offrono un'utilità diretta per gli utenti finali, come Binding, non vengono esposti direttamente tramite le API Home. Per ulteriori informazioni sui gruppi di dispositivi, consulta API Structure.

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 OpenCloseTrait. Altri sono rappresentati come estensioni dei tratti Matter, creati 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 tratti di una o entrambe le origini, Matter o Cloud-to-cloud.

Ad esempio, FanDeviceType è composto da entrambi e presenta tre caratteristiche:

  • Il tratto Matter IdentifyTrait fornisce tutte le funzionalità di Matter IdentifyTrait.
  • Il tratto Matter FanControlTrait fornisce tutte le funzionalità di Matter FanControlTrait.
  • Il tratto Google ExtendedFanControlTrait fornisce tutte le funzionalità del FanSpeedTrait smart home di Google che non sono coperte dal tratto Matter FanControlTrait.

Questo tipo di composizione dei trait 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. L'iscrizione al gruppo viene conservata nei servizi Google ed è visibile agli altri membri della struttura e alle altre app con accesso alla struttura.

I gruppi di dispositivi sono rappresentati dall'entità DeviceGroup, che è distinta da HomeDevice. Ogni HomeDevice elenca i gruppi a cui appartiene tramite il relativo GroupMembershipTrait, in modo che la tua app possa ispezionare le iscrizioni ai gruppi ed eseguire l'iterazione direttamente sui dispositivi membri di un gruppo. Inoltre, DeviceGroup è conforme al protocollo HasParts per esporre i tipi di dispositivi supportati dai dispositivi membri quando il targeting è impostato per l'intero gruppo.

Per saperne di più sui gruppi di dispositivi, consulta API Structure e Controlla un gruppo di dispositivi.