能力模型
讀完你會知道:能力模型怎麼以 Matter 為基底、shadow 的鍵怎麼命名、常用的功能模組有哪些。
平台用一套模型描述所有設備能做什麼,不管它是新韌體、v1/v2 舊設備,還是其他品牌的原廠設備。App 只認這一套,所以加一個新機種不必改 App。
以 Matter 為基底
標準功能照 Matter 規格,cluster id、屬性名稱、單位都不改。Matter 沒有的(影像、錄影、NVR、AI 偵測、平台自己的東西)放在廠商自訂範圍 0xFC00 以上。哪天 Matter 補了標準版本,就淘汰對應的擴充。
Shadow 的鍵是 <cluster>.<attr>,用小寫底線命名。
常用 cluster
| Cluster | 出處 | 用途 |
|---|---|---|
on_off | Matter 0x0006 | 開關 |
level_control | Matter 0x0008 | 亮度 0–254 |
basic_information | Matter 0x0028 | 韌體版本、序號、型號名 |
power_source | Matter 0x002F | 電量、充電狀態 |
temperature_measurement / relative_humidity_measurement | Matter | 溫濕度(單位 0.01) |
kinio_system | 0xFC00 | 線上狀態、韌體版本、Wi-Fi、時區、重開機 / 回復原廠 / OTA 指令 |
kinio_security | 0xFC11 | 佈防模式 |
kinio_motion | — | 移動偵測開關與靈敏度 |
kinio_recording | 0xFC50 | 錄影模式、位置、畫質、排程、SD 卡 |
kinio_camera_light | — | 夜視模式、狀態燈 |
kinio_ptz / kinio_siren / kinio_audio / kinio_storage | — | 雲台、警笛、音訊、儲存(含 SD 卡) |
完整清單與每個屬性的型別、可否寫入,在能力模型的定義檔裡,並且會產生各語言的鍵表,不要自己手抄字串。
兩種成員
- 屬性(attr):有狀態、可讀。標了可寫的才能用 desired 改。
- 指令(command):只能下發,不會留在 reported。
每個型號宣告自己有什麼
型號有一份能力宣告,列出它支援哪些 cluster 與屬性。平台第一次看到這台設備就知道它能做什麼,App 據此決定要畫哪些控制項。
宣告的來源有兩種:登記機種時勾選,或由韌體建置時的參數自動推導。兩者最後都會寫進同一個地方。
多通道設備
NVR 的每一個通道是獨立的 Thing,有自己的 shadow 與能力,掛在主機 Thing 底下。一台八路 NVR 在平台上是九個 Thing。
這樣做的好處是 App 不用為 NVR 寫特例:一個通道和一台獨立攝影機長得一樣。
沒有 endpoint 這一層
Matter 有 endpoint 的概念,Kinio 的 shadow 沒有。多通道、多鏡頭一律用子 Thing 表示,鍵只有兩層 cluster.attr。
舊設備怎麼對應
v1/v2 的 slot 與其他品牌原廠設備的欄位由平台的相容層轉成同一套 canonical 鍵,轉換表是平台維護的。你接 App 時看到的是同一種資料,看不出設備是哪一代。