Упрощенные черты

Для простоты использования с 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) }