Le API Home per iOS presentano tutti i dispositivi nell'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 terzi), indipendentemente dalla tecnologia di smart home sottostante (come Matter o Cloud-to-cloud) e fornisce una superficie API comune per creare esperienze utente per sviluppatori di app per smart home e dispositivi mobili.
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 caratteristiche utilizzate per controllare e gestire i dispositivi. Come i tipi di dispositivi, le caratteristiche derivano dai cluster Matter e dalle caratteristiche Cloud-to-cloud e vengono presentate 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 e le caratteristiche dei dispositivi nelle API Home sono pensati per essere Matter-first. Un tipo di dispositivo o caratteristica 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 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. Ciò è 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 hanno le stesse funzionalità.
Per importare tratti e tipi di dispositivi, importa il modulo GoogleHomeTypes
nella tua
applicazione:
import GoogleHomeTypes
Inoltre, puoi utilizzare typealias
per i nomi di tratti e 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
Le caratteristiche sono supportate anche per l'utilizzo con le automazioni, ma potrebbero essere limitate e alcune caratteristiche sono disponibili solo per le automazioni. Per un elenco, vedi Supporto delle caratteristiche dell'API Automation su iOS.
Composizione del tipo di dispositivo
Le API Home supportano la maggior parte dei cluster di applicazioni Matter come tratti nel modello di dati. Le caratteristiche che non corrispondono al controllo dei dispositivi o agli stati e non offrono alcuna utilità per gli utenti finali, come Binding e Gruppi, non sono esposte tramite le API Home.
Le caratteristiche derivate dalle caratteristiche della 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
delle caratteristiche Matter, create 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 trait di una o entrambe le origini, Matter o Cloud-to-cloud.
Ad esempio, l'elemento
FanDeviceType
è composto da entrambi e presenta tre caratteristiche:
- La caratteristica
IdentifyTrait
Matter fornisce tutte le funzionalità di MatterIdentifyTrait
. - La caratteristica
FanControlTrait
Matter fornisce tutte le funzionalità di MatterFanControlTrait
. - La funzionalità
ExtendedFanControlTrait
di Google fornisce tutte le funzionalità di Google smart homeFanSpeedTrait
che non sono coperte dalla funzionalitàFanControlTrait
Matter.
Questo tipo di composizione dei tratti fornisce un modello flessibile per la funzionalità completa del tipo di dispositivo, astraendo i modelli di dati smart home sottostanti.