Android의 간소화된 트레잇

사용 편의성을 위해 일부 특성의 간소화된 버전을 Android의 자동화 API와 함께 사용할 수 있습니다.

간소화된 특성은 파사드 패턴이 작동하는 방식과 유사하게 표준 Home API 특성을 대신합니다. 간소화된 특성은 특정 기기 유형의 일반적인 작업을 더 쉽게 수행할 수 있는 명령어를 제공합니다. 간소화된 특성은 Home API 특성이며 다른 Home API 특성과 마찬가지로 MatterCloud-to-cloud 기기 모두에서 작동합니다.

단순화된 특성은 해당 표준 특성의 속성 및 명령어보다 기기별로 더 적합한 대체 속성 및 명령어 하위 집합을 제공합니다. 예를 들어 표준 LevelControl 특성은 숫자 값 범위에서 지속적으로 변하는 설정이 있는 모든 기기에 사용할 수 있는 일반적인 특성입니다. BrightnessLevelControl를 대신하는 단순화된 특성으로, DimmableLight 기기에 필요한 명령과 속성만 제공합니다. Brightness에는 단일 brightnessPercent 인수를 사용하는 moveToBrightness 명령어가 있는 반면 LevelControl에는 여러 move 명령어가 있으며 대부분 더 광범위한 사용 사례를 수용하기 위해 매개변수가 4개 이상 있습니다.

다음 표에는 각 단순화된 특성과 기본 표준 특성이 표시되어 있습니다. 각 특성 이름은 해당 API 문서로 연결됩니다.

표: 간소화된 특성
단순화된 특성 표준 특성
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

간소화된 특성 및 Discovery API

두 특성이 모두 FactoryRegistry에 등록된 경우 Discovery API는 단순화된 특성과 기본 표준 특성을 모두 보고합니다. 예를 들어 DimmableLight 기기가 구조에 있고 개발자가 FactoryRegistryLevelControlBrightness 특성을 모두 등록한 경우 검색 API는 두 특성이 모두 있음을 나타냅니다. 개발자는 자동화에서 두 특성 중 하나를 선택하여 사용할 수 있습니다.

자세한 내용은 Android의 Discovery API를 참고하세요.

간소화된 특성을 지원하는 기기 가져오기

기기 API를 사용하여 SimplifiedThermostat와 같은 단순화된 특성을 지원하는 구조에서 기기를 가져올 때는 has(trait) 메서드를 사용할 수 없습니다. 대신 has(deviceType) 메서드를 사용하세요.

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