使いやすさを考慮して、一部の特性には Automation 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
Discovery API は、両方の特徴が FactoryRegistry
に登録されている限り、簡素化された特徴とその基盤となる標準特徴を報告します。たとえば、構造に DimmableLight
デバイスが存在し、デベロッパーが FactoryRegistry
に LevelControl
と Brightness
の両方の特性を登録した場合、Discovery API は両方の特性の存在を示します。デベロッパーは、自動化でどちらの特性も使用できます。
詳細については、Discovery API をご覧ください。
簡素化された特性をサポートするデバイスを取得する
Device API を使用して、SimplifiedThermostat
などの簡素化された特性をサポートする構造内のデバイスを取得する場合、has(trait)
メソッドは使用できません。代わりに、has(deviceType)
メソッドを使用してください。
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }