Per facilità d'uso, sono disponibili versioni semplificate di alcuni tratti da utilizzare con l'API Automation su Android.
Una caratteristica semplificata sostituisce una caratteristica API Home standard, in modo simile al funzionamento del pattern facciata. Le caratteristiche semplificate forniscono comandi che rendono più semplici le attività comuni per determinati tipi di dispositivi. Le caratteristiche semplificate sono caratteristiche dell'API Home e, come le altre caratteristiche dell'API Home, funzionano sia per i dispositivi Matter che per quelli Cloud-to-cloud.
Un tratto semplificato offre un sottoinsieme alternativo di attributi e comandi
più specifico per il dispositivo rispetto a quelli del tratto standard corrispondente.
Ad esempio, la caratteristica standard
LevelControl
è una caratteristica generica che può essere utilizzata per qualsiasi dispositivo con un'impostazione che varia continuamente in un intervallo di valori numerici.
Brightness
è una
caratteristica semplificata che sostituisce LevelControl
e fornisce solo i
comandi e gli attributi richiesti da un
dispositivo DimmableLight
. Brightness
ha un comando moveToBrightness
che accetta un singolo argomento brightnessPercent
, mentre LevelControl
ha più comandi move
, la maggior parte dei quali ha almeno quattro parametri per adattarsi a una gamma più ampia di casi d'uso.
La tabella seguente mostra ogni tratto semplificato e i tratti standard sottostanti. Ogni nome di caratteristica rimanda alla documentazione API corrispondente:
Tratto semplificato | Tratto standard |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Tratti semplificati e API Discovery
L'API Discovery segnala le caratteristiche semplificate e quelle standard sottostanti, a condizione che entrambe siano registrate nel FactoryRegistry
. Ad esempio, se nella struttura è presente un dispositivo DimmableLight
e lo sviluppatore ha registrato sia le caratteristiche LevelControl
sia Brightness
nel FactoryRegistry
, l'API Discovery indicherà la presenza di entrambe le caratteristiche. Lo sviluppatore può scegliere di utilizzare uno dei due tratti nell'automazione.
Per saperne di più, consulta la sezione API Discovery su Android.
Recuperare un dispositivo che supporta un trait semplificato
Quando utilizzi l'API Device per ottenere dispositivi in una struttura che supporta una
caratteristica semplificata come SimplifiedThermostat
, non puoi utilizzare il metodo has(trait)
. Utilizza invece il metodo has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }