Для простоты использования с API автоматизации доступны упрощенные версии некоторых характеристик.
Упрощенная черта заменяет стандартную черту Home API, аналогичную тому, как работает шаблон фасада . Упрощенные характеристики предоставляют команды, которые упрощают выполнение общих задач для определенных типов устройств. Упрощенные черты — это черты Home API, и, как и другие черты Home API, они работают как для устройств Matter , так и для устройств Cloud-to-cloud .
Упрощенная характеристика предлагает альтернативное подмножество атрибутов и команд, более специфичное для устройства, чем соответствующее стандартное свойство. Например, стандартный признак LevelControl
— это общий признак, который можно использовать для любого устройства, параметр которого постоянно меняется в диапазоне числовых значений. Brightness
— это упрощенная функция, которая заменяет LevelControl
и предоставляет только те команды и атрибуты, которые требуются устройству DimmableLight
. У Brightness
есть команда moveToBrightness
, которая принимает один аргумент brightnessPercent
, тогда как LevelControl
есть несколько команд move
, большинство из которых имеют как минимум четыре параметра, чтобы обеспечить более широкий диапазон вариантов использования.
В следующей таблице показаны все упрощенные признаки и лежащие в их основе стандартные признаки. Каждое имя признака связано с соответствующей документацией API:
Упрощенная черта | Стандартная черта |
---|---|
SimplifiedThermostat | Thermostat |
Brightness | LevelControl |
SimplifiedOnOff | OnOff |
Volume | LevelControl OnOff |
Упрощенные признаки и API Discovery
API Discovery сообщает об упрощенных признаках, а также о лежащих в их основе стандартных признаках, если оба признака зарегистрированы в FactoryRegistry
. Например, если в структуре присутствует устройство DimmableLight
, и разработчик зарегистрировал в FactoryRegistry
обе характеристики LevelControl
и Brightness
, API Discovery укажет на наличие обеих характеристик. Разработчик может использовать любую черту в своей автоматизации.
Дополнительную информацию см. в разделе Discovery API .
Получите устройство, поддерживающее упрощенную характеристику.
При использовании API устройства для получения устройств в структуре, поддерживающей упрощенный признак, такой как SimplifiedThermostat
, вы не можете использовать метод has(trait)
. Вместо этого используйте метод has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }