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