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

Для удобства использования в Android доступны упрощенные версии некоторых характеристик, совместимые с 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 обнаружения

API Discovery сообщает об упрощенных характеристиках, а также об их базовых стандартных характеристиках, при условии, что обе характеристики были зарегистрированы в FactoryRegistry . Например, если в структуре присутствует устройство DimmableLight , и разработчик зарегистрировал в FactoryRegistry характеристики LevelControl и Brightness , API Discovery укажет на наличие обеих характеристик. Разработчик может выбрать любую из них для использования в своей автоматизации.

Дополнительную информацию см. в разделе Discovery API на Android .

Получите устройство, поддерживающее упрощенный признак.

При использовании API устройств для получения устройств в структуре, поддерживающей упрощенный трейт, например SimplifiedThermostat , нельзя использовать метод has(trait) . Вместо этого используйте метод has(deviceType) :

val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }