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