Para facilitar el uso, hay versiones simplificadas de algunos rasgos disponibles para usar con la API de Automation en Android.
Un rasgo simplificado reemplaza un rasgo estándar de la API de Home, de manera similar a como funciona el patrón de fachada. Los rasgos simplificados proporcionan comandos que facilitan las tareas comunes para ciertos tipos de dispositivos. Los rasgos simplificados son rasgos de la API de Home y, al igual que otros rasgos de la API de Home, funcionan para dispositivos Matter y Cloud-to-cloud.
Un rasgo simplificado ofrece un subconjunto alternativo de atributos y comandos que es más específico para el dispositivo que los del rasgo estándar correspondiente.
Por ejemplo, el rasgo estándar LevelControl
es un rasgo 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 rasgo simplificado que reemplaza a LevelControl
y proporciona solo 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 una gama más amplia de casos de uso.
En la siguiente tabla, se muestra cada rasgo simplificado y los rasgos estándar subyacentes. Cada nombre de rasgo se vincula a la documentación de la API correspondiente:
Trait simplificado | Rasgo estándar |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Rasgos simplificados y la API de Discovery
La API de Discovery informa sobre los rasgos simplificados y sus rasgos estándar subyacentes, siempre y cuando ambos rasgos se hayan registrado en FactoryRegistry
. Por ejemplo, si hay un dispositivo DimmableLight
en la estructura y el desarrollador registró los rasgos LevelControl
y Brightness
en FactoryRegistry
, la API de Discovery indicaría la presencia de ambos rasgos. El desarrollador puede optar por usar cualquiera de los rasgos en su automatización.
Consulta API de Discovery en Android para obtener más información.
Recupera un dispositivo que admite un rasgo simplificado
Cuando usas la API de Device para obtener dispositivos en una estructura que admite un rasgo 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) }