Для удобства использования упрощенные версии некоторых признаков доступны для использования с 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 | LevelControlOnOff |
Упрощенные характеристики и 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) }