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