Kinio 回報問題 登入

能力模型

讀完你會知道:能力模型怎麼以 Matter 為基底、shadow 的鍵怎麼命名、常用的功能模組有哪些。

平台用一套模型描述所有設備能做什麼,不管它是新韌體、v1/v2 舊設備,還是其他品牌的原廠設備。App 只認這一套,所以加一個新機種不必改 App。

以 Matter 為基底

標準功能照 Matter 規格,cluster id、屬性名稱、單位都不改。Matter 沒有的(影像、錄影、NVR、AI 偵測、平台自己的東西)放在廠商自訂範圍 0xFC00 以上。哪天 Matter 補了標準版本,就淘汰對應的擴充。

Shadow 的鍵是 <cluster>.<attr>,用小寫底線命名。

常用 cluster

Cluster出處用途
on_offMatter 0x0006開關
level_controlMatter 0x0008亮度 0–254
basic_informationMatter 0x0028韌體版本、序號、型號名
power_sourceMatter 0x002F電量、充電狀態
temperature_measurement / relative_humidity_measurementMatter溫濕度(單位 0.01)
kinio_system0xFC00線上狀態、韌體版本、Wi-Fi、時區、重開機 / 回復原廠 / OTA 指令
kinio_security0xFC11佈防模式
kinio_motion—移動偵測開關與靈敏度
kinio_recording0xFC50錄影模式、位置、畫質、排程、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 時看到的是同一種資料,看不出設備是哪一代。