Per facilità d'uso, sono disponibili versioni semplificate di alcuni tratti da utilizzare con l'API Automation su Android.
Un tratto semplificato sostituisce un tratto standard dell'API Home, in modo simile al funzionamento del pattern Facade. I tratti semplificati forniscono comandi che semplificano le attività comuni per determinati tipi di dispositivi. I tratti semplificati sono tratti dell'API Home e, come altri tratti dell'API Home, funzionano sia per i dispositivi Matter sia per quelli Cloud-to-cloud.
Un tratto semplificato offre un sottoinsieme alternativo di attributi e comandi più specifici per il dispositivo rispetto a quelli del tratto standard corrispondente.
Ad esempio, il tratto standard
LevelControl
è un tratto generico che può essere utilizzato per qualsiasi dispositivo con un'
impostazione che varia continuamente in un intervallo di valori numerici.
Brightness è un tratto semplificato che sostituisce LevelControl e fornisce solo i comandi e gli attributi richiesti da un dispositivo DimmableLight. Brightness ha un
moveToBrightness comando che accetta un singolo
brightnessPercent argomento, mentre LevelControl ha più move
comandi, la maggior parte dei quali ha almeno quattro parametri per supportare una
gamma più ampia di casi d'uso.
La tabella seguente mostra ogni tratto semplificato e i tratti standard sottostanti. Ogni nome del tratto rimanda alla documentazione dell'API corrispondente:
| Simplified trait | Standard trait |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Tratti semplificati e API Discovery
L'API Discovery segnala i tratti semplificati e i relativi tratti standard sottostanti, a condizione che entrambi i tratti siano stati registrati in
FactoryRegistry. Ad
esempio, se nella struttura è presente un dispositivo DimmableLight e lo
sviluppatore ha registrato i tratti
LevelControl
e
Brightness in
FactoryRegistry, l'API Discovery indicherà la presenza di entrambi i
tratti. Lo sviluppatore può scegliere di utilizzare uno dei due tratti nell'automazione.
Per ulteriori informazioni, consulta l'articolo API Discovery su Android.
Recuperare un dispositivo che supporta un tratto semplificato
Quando utilizzi l'API Device per ottenere i dispositivi in una struttura che supportano un tratto semplificato 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) }