사용 편의성을 위해 일부 특성의 간소화된 버전을 Android의 자동화 API와 함께 사용할 수 있습니다.
간소화된 특성은 표준 Home API 특성을 대신합니다. 퍼사드 패턴이 작동하는 방식과 마찬가지로 간소화된 특성은 특정 기기 유형에서 일반적인 작업을 더 쉽게 수행할 수 있는 명령어를 제공합니다. 간소화된 특성은 Home API 특성이며 다른 Home API 특성과 마찬가지로 Matter 및 Cloud-to-cloud 기기 모두에서 작동합니다.
간소화된 트레이트는 상응하는 표준 트레이트의 속성 및 명령어 하위 집합을 제공하며, 이는 표준 트레이트보다 기기별로 더 구체적입니다.
예를 들어 표준
LevelControl
트레이트는 숫자 값 범위에서 지속적으로 변하는
설정이 있는 모든 기기에 사용할 수 있는 일반적인 트레이트입니다.
Brightness는
LevelControl을 대신하는 간소화된 특성으로,
DimmableLight
기기에 필요한 명령어와 속성만 제공합니다. Brightness에는 단일
brightnessPercent 인수를 사용하는
moveToBrightness 명령어가 있는 반면 LevelControl에는 여러 move
명령어가 있으며 대부분 더 광범위한 사용 사례를 수용하기 위해 4개 이상의 매개변수가 있습니다.
다음 표에서는 각 간소화된 특성과 기본 표준 특성을 보여줍니다. 각 특성 이름은 상응하는 API 참고 리소스로 연결됩니다.
| 간소화된 특성 | 표준 특성 |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
간소화된 특성 및 Discovery API
Discovery API는 두 특성이 모두 FactoryRegistry에 등록된 경우 간소화된 특성과 기본
표준 특성을 모두 보고합니다. 예를 들어 DimmableLight 기기가 구조에 있고 개발자가 LevelControl 및 Brightness 특성을 모두 FactoryRegistry에 등록한 경우 Discovery API는 두 특성이 모두 있음을 나타냅니다. 개발자는 자동화에서 두 특성 중 하나를 사용할 수 있습니다.
자세한 내용은 Android의 Discovery API를 참고하세요.
간소화된 트레이트를 지원하는 기기 가져오기
Device API를 사용하여 SimplifiedThermostat과 같은 간소화된 트레이트를 지원하는 구조에서 기기를 가져올 때는 has(trait) 메서드를 사용할 수 없습니다. 대신 has(deviceType) 메서드를 사용하세요.
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }