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