Для удобства использования упрощенные версии некоторых признаков доступны для использования с API автоматизации на Android.
Упрощённый трейт заменяет стандартный трейт 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
Discovery API сообщает как об упрощённых, так и об их базовых стандартных характеристиках, если обе характеристики зарегистрированы в FactoryRegistry
. Например, если в структуре присутствует устройство DimmableLight
, а разработчик зарегистрировал обе характеристики LevelControl
и Brightness
в FactoryRegistry
, Discovery API укажет наличие обеих характеристик. Разработчик может выбрать любую из них для автоматизации.
Дополнительную информацию см. в разделе Discovery API на Android .
Получить устройство, которое поддерживает упрощенную характеристику
При использовании API устройств для получения устройств в структуре, поддерживающей упрощённый трейт, такой как SimplifiedThermostat
, метод has(trait)
использовать нельзя. Вместо него следует использовать метод has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }