為方便使用,部分特徵的簡易版本可與 Automation API 搭配使用。
簡化特徵可取代標準 Home API 特徵,類似於外觀模式的運作方式。簡化特徵提供的指令可讓特定裝置類型更輕鬆地完成常見工作。簡化特徵是 Home API 特徵,與其他 Home API 特徵一樣,適用於 Matter 和 Cloud-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
中註冊了 LevelControl
和 Brightness
特徵,Discovery API 就會指出這兩個特徵都存在。開發人員可以在自動化動作中選擇使用任一特徵。
詳情請參閱「Discovery API」。
擷取支援簡化特徵的裝置
如果您使用 Device API 在支援簡易特徵 (例如 SimplifiedThermostat
) 的結構體中取得裝置,就無法使用 has(trait)
方法。請改用 has(deviceType)
方法:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }