Упрощенные traits в Android

Для удобства использования в 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 LevelControl
OnOff

Упрощенные характеристики и 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) }