Android での簡素化されたトレイト

使いやすさを考慮して、一部のトレイトの簡略化されたバージョンが Android の Automation API で使用できます。

簡略化されたトレイトは、標準の Home API トレイトの代わりに使用されます。これは、ファサード パターンの仕組みに似ています。簡略化されたトレイトは、特定のデバイスタイプで一般的なタスクを簡単に実行できるコマンドを提供します。簡略化されたトレイトは Home API トレイトであり、他の Home API トレイトと同様に、Matter デバイスと Cloud-to-cloud デバイスの両方で機能します。

簡略化されたトレイトは、対応する標準トレイトよりもデバイス固有の属性とコマンドの代替サブセットを提供します。たとえば、標準の LevelControl トレイトは、数値の範囲にわたって連続的に変化する設定を持つあらゆるデバイスで使用できる汎用トレイトです。Brightness は、LevelControl の代わりとなる簡略化されたトレイトで、DimmableLight デバイスに必要なコマンドと属性のみを提供します。Brightness には 1 つの brightnessPercent 引数を取る moveToBrightness コマンドがありますが、LevelControl には複数の move コマンドがあり、そのほとんどは幅広いユースケースに対応するために少なくとも 4 つのパラメータがあります。

次の表に、各簡略化された特性と、基盤となる標準特性を示します。各トレイト名は、対応する API ドキュメントにリンクしています。

表: 簡略化されたトレイト
簡略化されたトレイト 標準の特性
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

簡素化された特性と Discovery API

ディスカバリ API は、簡略化された特性と、その基盤となる標準特性の両方が FactoryRegistry に登録されている限り、両方の特性をレポートします。たとえば、構造内に DimmableLight デバイスが存在し、デベロッパーが FactoryRegistryLevelControlBrightness の両方のトレイトを登録した場合、Discovery API は両方のトレイトの存在を示します。デベロッパーは、自動化でどちらの特性を使用するかを選択できます。

詳しくは、Android の Discovery API をご覧ください。

簡略化されたトレイトをサポートするデバイスを取得する

Device API を使用して、SimplifiedThermostat などの簡略化されたトレイトをサポートする構造でデバイスを取得する場合、has(trait) メソッドは使用できません。代わりに、has(deviceType) メソッドを使用します。

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