Para facilitar el uso, hay versiones simplificadas de algunos traits disponibles para usarse con la API de Automation en Android.
Un trait simplificado reemplaza un trait estándar de la API de Home, de manera similar a cómo funciona el patrón de fachada. Los traits simplificados proporcionan comandos que facilitan las tareas comunes para ciertos tipos de dispositivos. Los traits simplificados son traits de la API de Home y, al igual que otros traits de la API de Home, funcionan para dispositivos Matter y Cloud-to-cloud.
Un trait simplificado ofrece un subconjunto alternativo de atributos y comandos que es más específico del dispositivo que los del trait estándar correspondiente.
Por ejemplo, el trait estándar
LevelControl
es un trait genérico que se puede usar para cualquier dispositivo que tenga un
parámetro de configuración que varíe de forma continua en un rango de valores numéricos.
Brightness es un
trait simplificado que reemplaza a LevelControl y proporciona solo los
comandos y atributos que requiere un
DimmableLight
dispositivo. Brightness tiene un
moveToBrightness comando que toma un solo
brightnessPercent argumento, mientras que LevelControl tiene varios move
comandos, la mayoría de los cuales tienen al menos cuatro parámetros para adaptarse a una
gama más amplia de casos de uso.
En la siguiente tabla, se muestra cada trait simplificado y los traits estándar subyacentes. Cada nombre de trait se vincula a la documentación de la API correspondiente:
| Trait simplificado | Trait estándar |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
Traits simplificados y la API de Discovery
La API de Discovery informa los traits simplificados, así como sus traits estándar subyacentes
, siempre que ambos traits se hayan registrado en el
FactoryRegistry. Por
ejemplo, si un dispositivo DimmableLight está presente en la estructura y el
desarrollador registró los traits
LevelControl
y
Brightness en
FactoryRegistry, la API de Discovery indicaría la presencia de ambos
traits. El desarrollador puede elegir usar cualquiera de los traits en su automatización.
Consulta la API de Discovery en Android para obtener más información.
Cómo recuperar un dispositivo que admite un trait simplificado
Cuando usas la API de Device para obtener dispositivos en una estructura que admite un trait simplificado, como SimplifiedThermostat, no puedes usar el método has(trait). En su lugar, usa el método has(deviceType):
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }