사용 편의성을 위해 일부 특성의 간소화된 버전을 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
|
LevelControl OnOff
|
간소화된 특성 및 Discovery API
두 특성이 모두 FactoryRegistry
에 등록된 경우 Discovery API는 단순화된 특성과 기본 표준 특성을 모두 보고합니다. 예를 들어 DimmableLight
기기가 구조에 있고 개발자가 FactoryRegistry
에 LevelControl
및 Brightness
특성을 모두 등록한 경우 검색 API는 두 특성이 모두 있음을 나타냅니다. 개발자는 자동화에서 두 특성 중 하나를 선택하여 사용할 수 있습니다.
자세한 내용은 Android의 Discovery API를 참고하세요.
간소화된 특성을 지원하는 기기 가져오기
기기 API를 사용하여 SimplifiedThermostat
와 같은 단순화된 특성을 지원하는 구조에서 기기를 가져올 때는 has(trait)
메서드를 사용할 수 없습니다. 대신 has(deviceType)
메서드를 사용하세요.
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }