第一部 · 第 2 章

看懂 Home Assistant 到 KNX bus 的責任路徑

用不代表現場連線的白話示意圖,分清 Home Assistant、KNXD、連接介面與 KNX bus。

已撰寫

本章任務卡

第 1 章分清了四個角色。這一章把本站 KNXD Add-on 指南使用的四個責任點排在一起:Home Assistant、KNXD、像設備閘門的連接介面,以及像設備通訊道路的 KNX bus。你只會學習分層,不會建立連線。

目的
能指出資料路徑上每一段由誰負責,並知道應從哪一層開始找問題。
準備
先完成第 1 章;不需要硬體、位址、ETS 專案或網路參數。
時間
約 15 分鐘。
系統變更
不修改 Home Assistant。
預期結果
能按順序說出 Home Assistant、KNXD、連接介面與 KNX bus 的責任,且不跨層推論。
停止條件
  • 需要建立真實 KNX 連線。
  • 不得宣稱 KNX bus 成功;上游或程序狀態都不能證明它。

先守住安全界線

示意圖中的連接線表示「單次外送請求的責任接到下一站」,不是「現場資料已經通過」。這張圖不提供完整的 KNX 資料方向資訊,因此不能拿它判定其他方向。

任何一站顯示存在或正在執行,都不能替下一站作證。例如 KNXD 程序正在執行,只能說程序層有狀態;不能因此說連接介面可用,更不能說 KNX bus 已成功。本章沒有安裝、設定、啟動或連線步驟。

先看責任路徑

先這樣想:大樓櫃檯收到一張要送往設備側的單子後,把它交給翻譯櫃檯;翻譯完成,再交給通往設備道路的閘門。

正式名稱:這四站依序是 Home Assistant、KNXD、interface 與 KNX bus。

本章會用到:會,但只用來辨認本站採用的責任模型,不會讓資料真的流動。

本站指南使用的四站責任順序

圖中依序共有四站:Home Assistant 控制櫃檯、KNXD 翻譯櫃檯、連接介面閘門、KNX bus 設備道路。各站之間的連接線只表示這次外送請求的責任順序,不代表任何一站已連線,也沒有提供其他 KNX 資料方向的證據。

  1. Home Assistant提出需求的控制櫃檯
  2. KNXD承接不同兩側的翻譯櫃檯
  3. 連接介面通往設備網路的閘門
  4. KNX bus設備使用的通訊道路

讀圖規則:連接線 = 這次外送請求的下一個責任點;連接線 ≠ 已接通。

開始前只要準備一張圖

把上一節的四站抄成空白流程圖即可。不要在圖上寫環境連線資料,例如 IP、位址或連接埠。也不要寫裝置與秘密資料,例如裝置路徑、序號或憑證;這些值都不是理解責任分層的前提。

  • 在每一站下面留一格「這一站能證明什麼」。
  • 再留一格「這一站不能證明什麼」。
  • 沿用示意圖的讀圖規則,把連接線當成責任交接。
  • 若你還不能分清 ETS 與 KNXD,先回到第 1 章複習四個角色。

完成這張空白圖就可以繼續。

沿著四站走一遍

以下步驟只是在圖上辨認責任,不是連線程序。每走一站,就停下來說出它的工作與證據邊界。

  1. 站在 Home Assistant。它是你提出需求的地方。此時只知道需求從哪裡開始,下游狀態仍是未知。
  2. 走到 KNXD。它是中間的翻譯角色。即使程序層有狀態,也不能替連接介面或 bus 宣告結果。
  3. 走到連接介面。它像通往設備道路的閘門,負責 KNXD 與設備側之間的一段交接。介面名稱存在,不等於硬體已準備好。
  4. 最後到 KNX bus。這是設備通訊道路,也是本教學不接觸的邊界。前面三站的狀態都不能直接變成這一站的成果。

把四站連起來後,在圖下方寫「責任路徑,不是成功證據」。這句話能避免日後只看一個綠色狀態就跨層推論。

完成檢查

你不需要截圖或日誌來完成本章。只要能看著流程圖回答下列問題,就代表已理解架構責任。

  • 我能按順序說出 Home Assistant、KNXD、連接介面、KNX bus。
  • 我知道連接線是責任交接,不是現場狀態證據。
  • 我知道 KNXD 程序層的狀態不能證明介面或 bus 的結果。
  • 我沒有填入連線值、啟動服務、操作 ETS、傳送訊息或控制設備。

下一步:前往第 3 章,使用白話八項清單完成無實值預檢。預檢通過只代表能閱讀下一章的條件式流程,不代表可以忽略隔離、核准或 artifact provenance。

責任看不清楚時

這裡處理的是「圖看錯」,不是現場故障。簡單起點是:先從最接近症狀的責任層開始分類,不要從整條路徑一起猜。

  • 看不到 Add-on 管理畫面:先把症狀歸在 Home Assistant 管理層。
  • 只知道 KNXD 程序沒有狀態:先歸在 KNXD 程序層,不往介面或 bus 推論。
  • 只知道設備閘門沒有狀態:先歸在連接介面層。
  • 只剩設備是否收到訊息不明:歸在 KNX bus/裝置層;這已超出本章,停止,不用實體控制來測試。

若只是把連接線看成現場結果,將標籤改回「責任交接」。若把 KNXD 與連接介面合成一站,重新拆成翻譯櫃檯與設備閘門兩格。

進階補充與常見問題

進階補充:三個設定與入口名詞放在哪一層

像 Add-on 代管的設定表:正式稱受管 INI。Add-on 0.6.1 隨附的來源範本含 main、TCP server 與 configured-interface 區段。它仍是有占位內容的範本,不是某台主機已產生或已套用的設定。

像打開櫃檯等待詢問:正式稱 listener。即使 listener 狀態存在,也只支持等待層的觀察,不能證明下游 bus。

像服務的入口地址:正式稱 endpoint。來源中出現 endpoint 相關字彙,不等於入口從任何環境可達。

固定服務腳本只支持「daemon 由產生後的設定檔呼叫」這個程式責任。它不是程序已執行、入口可達或 bus 已接通的現場證據。

為什麼連接介面要獨立一站?

因為 KNXD 的程序責任與設備側的交接責任不同。拆開後,才不會把程序狀態誤當成硬體或 bus 狀態。

圖上的連接線代表訊息已送出嗎?

不代表。請依照本章的讀圖規則,不要把連接線當成現場傳輸證據。

這一章會教我選 USB 或其他介面嗎?

不會。本章只保留「連接介面」這個責任點;選擇與檢查會由後續章節另行處理。

可以用啟動 Add-on 來確認流程圖嗎?

不需要,也不能用單一程序狀態確認整條路徑。理解流程圖是離線任務,不要因此執行生命週期動作。

證據與來源

證據類別:source-bounded

功能對照:addon-managed-ini-template、addon-service-daemon-lifecycle

固定來源只支持文件所述範圍;本頁不代表任何本機、硬體、網路或 KNX 匯流排驗證結果。