Per praticità, sono disponibili versioni semplificate di alcuni tratti per l'utilizzo con l'API Automation.
Un tratto semplificato sostituisce un tratto dell'API Home standard, in modo simile al funzionamento del pattern di facciata. Le caratteristiche semplificate forniscono comandi che semplificano le attività comuni per alcuni tipi di dispositivi. Gli attributi semplificati sono attributi dell'API Home e, come gli altri attributi 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ù specifico del dispositivo rispetto a quello 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
è un tratto semplificato 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 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:
Tratto semplificato | Tratto standard |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Caratteristiche semplificate e API Discovery
L'API Discovery registra 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 sia le caratteristiche LevelControl
sia Brightness
in 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 l'API Discovery.
Recuperare un dispositivo che supporta un trait semplificato
Quando utilizzi l'API Device per ottenere dispositivi in una struttura che supporta 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) }