簡化特徵

為方便使用,部分特徵的簡易版本可與 Automation API 搭配使用。

簡化特徵可取代標準 Home API 特徵,類似於外觀模式的運作方式。簡化特徵提供的指令可讓特定裝置類型更輕鬆地完成常見工作。簡化特徵是 Home API 特徵,與其他 Home API 特徵一樣,適用於 MatterCloud-to-cloud 裝置。

簡化特徵提供的屬性和指令子集,比相應的標準特徵更偏向特定裝置。舉例來說,標準 LevelControl 特徵是一般特徵,可用於任何裝置,只要該裝置有設定,可在一系列數值中持續變化。Brightness 是簡化的特徵,可代表 LevelControl,只提供 DimmableLight 裝置所需的指令和屬性。Brightness 有一個 moveToBrightness 指令,可接收單一 brightnessPercent 引數,而 LevelControl 則有數個 move 指令,其中大多數指令至少有四個參數,可支援更多用途。

下表列出每個簡化特徵和基礎標準特徵。每個特徵名稱都會連結至對應的 API 說明文件:

表格:簡易特徵
簡化特徵 標準特徵
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

簡化特徵和 Discovery API

Discovery API 會回報簡化特徵以及其基礎標準特徵,前提是這兩項特徵都已在 FactoryRegistry 中註冊。舉例來說,如果結構中包含 DimmableLight 裝置,且開發人員在 FactoryRegistry 中註冊了 LevelControlBrightness 特徵,Discovery API 就會指出這兩個特徵都存在。開發人員可以在自動化動作中選擇使用任一特徵。

詳情請參閱「Discovery API」。

擷取支援簡化特徵的裝置

如果您使用 Device API 在支援簡易特徵 (例如 SimplifiedThermostat) 的結構體中取得裝置,就無法使用 has(trait) 方法。請改用 has(deviceType) 方法:

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