Android의 간소화된 트레잇

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

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

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

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

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

간소화된 특성 및 Discovery API

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

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

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

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

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