第 18 章

Bridge、Device 與啟動管理

把日常維運拆成可回復的小動作:先讀狀態與失敗原因,再啟停、同步、調整啟動順序或搬移設定;任何涉及已配對 Fabric 的重設都留到最後。

維運的目標不是「一直重開」

Matter Bridge 是 Home Assistant 實體與外部 Matter Controller 之間的長期邊界。Home Assistant 連線、Bridge 程序、Matter Fabric、Controller session 與裝置 endpoint 各自有生命週期;其中一層異常,不代表其他層都壞了。若每次看到「No Response」就重設,反而會破壞仍然有效的配對身份,增加重新整理房間、名稱與自動化的成本。

Stable 2.0.55 的 Bridges 頁面可對所有 Bridge 執行 Start All、Stop All、Restart All,也能匯入或匯出 Bridge 設定;個別 Bridge 詳細頁則顯示狀態、配對摘要、失敗實體、Entity Mapping、endpoint 與 cluster。Startup Order 頁面把啟動優先序獨立出來。你應先選最小影響範圍:單一裝置顯示異常,先查映射與失敗原因;單一 Bridge 卡住,才重啟該 Bridge;只有共同維護窗口才考慮批次動作。

角色界線:Matter Hub 把 Home Assistant 實體暴露給 Apple Home、Google Home、Alexa 等外部 Controller,本身不是 Home Assistant 的 Matter Controller。這一章說的「同步到 Controller」是更新已暴露 endpoint 的狀態,不是把 Matter 裝置加入 Home Assistant。
觀察到的範圍先看哪裡優先動作不要先做
單一實體失敗Bridge 詳細頁的 failed entity reason、Mapping修正來源實體或映射後重新整理整座 Bridge Factory Reset
狀態沒有更新Health、session/subscription、系統紀錄確認 running 與 autoForceSync,再 Force Sync刪除 Fabric
單一 Bridge Failedstatus reason 與 log排除原因後 RestartRestart All
主機重啟後資源尖峰Startup priority、記憶體與 HA 連線調整啟動順序、縮小 Bridge同時啟動所有大型 Bridge

Bridge 與 Device 生命週期

Bridge 設定定義名稱、連接埠、Filter、Feature Flags、基本識別與優先序;Matter identity storage保存已配對 Fabric 所依賴的身份資料;Endpoint tree則是 Bridge 啟動後,依目前 Home Assistant registry、Filter 與 Entity Mapping 建出的 Matter 裝置樹。三者不是同一份資料。只匯出 Bridge JSON 不等於完整備份身份,也不保證復原後免重新配對。

Start 會從持久化設定建立 Bridge 與 endpoint;Stop 會關閉這座 Bridge 的 Matter 運作,但不等於刪除設定;Restart 是依序停止再啟動。v2.0.55 前端沒有 Refresh Devices 控制;裝置集合或映射改變時,正常 UI 路徑是編輯後單座 Restart。後端另有 authenticated POST /api/matter/bridges/:bridgeId/actions/refresh,但這不是頁面按鈕,也不同於畫面定期刷新。Force Sync 只在 Bridge running 且 autoForceSync 已啟用時執行,否則回報同步零個;它只推送相對記憶體 last-sync snapshot 已變更的狀態。

Bridge 詳細頁的裝置樹由根 endpoint 向下呈現 parts。常見根節點是 Aggregator,底下每張 endpoint 卡顯示裝置類型、來源 Home Assistant 實體、Matter clusters 與展開後的 cluster state。Cluster 是能力集合,不是 Controller UI 的保證;同一個 cluster 即使在樹中存在,Controller 仍可能不呈現、只呈現部分屬性,或因產品成熟度而行為不同。

判讀技巧:先用「設定存在、Bridge running、endpoint 存在、cluster 存在、session/subscription 活躍、Controller UI 呈現」這六層逐層定位。越靠前的層級失敗,越不應先在 Controller 端反覆刪除與重加。

Stable、成熟度與 Controller 支援分開看

本章的 Bridges、Bridge 詳細頁與 Startup Order 都是 Stable 2.0.55 可到達路由,批次啟停、Force Sync、匯入預覽、Startup priority、裝置樹、mapping profile 與 device image 也是同版程式碼中的功能。這只說明發布通道為 Stable,不代表所有經由 Bridge 暴露的裝置類型都已成熟,也不代表每個 Controller 都支援每個 cluster。

事項Release channel產品成熟度Controller 支援
標準 Bridge 日常啟停、設定匯出與詳細頁Stable 2.0.55Stable維運 UI 與 Controller 無關;暴露結果另看裝置類型
Server Mode 多獨立裝置Stable 內可用實驗性(experimental-in-Stable)依 Controller 與裝置類型而異
Camera/Security Plugin endpointStable 內建實驗性(experimental-in-Stable)Camera 並非所有 Controller 呈現;Security 行為也不可外推
Matter 1.4 部分裝置類型可能出現在 Stable依映射逐項判斷Controller 未知或有限時,不宣稱完整支援

Startup priority 只是 HAMH 內部的 Bridge 啟動順序,不是網路 QoS、Matter Fabric 優先權,也不會命令 Controller 先連哪一座 Bridge。程式碼以數值由小到大排序;Startup Order 頁拖曳儲存時依畫面順序寫入間隔化的數值。沒有設定時顯示預設優先值,因此你應以畫面順序為主,不需要手算。

重設界線:v2.0.55 只有 Bridge status 為 Running 時才真正呼叫 identity Factory Reset;Stopped/Failed 時可能直接返回,API 隨後只把 Bridge start 起來。操作前先確認 Running,操作後再核對 Fabric 與 commissioning 狀態,不可只信成功通知。真正執行時會移除 commissioned fabrics,讓既有 Controller 關係失效;Delete Bridge 還會移除 Bridge 設定。這兩個動作都不是普通「重新啟動」,執行前必須有可驗證備份與重新配對計畫。

一次完成可回復的維運流程

  1. 在 Bridges 先記錄基準

    開啟 Bridges,確認目標 Bridge 的名稱、Running/Stopped/Failed 狀態、裝置數與是否只有一座受影響。若是 Failed,先進入詳細頁抄錄一般化的 status reason;分享紀錄前刪除身份、網路與秘密資料。

  2. 縮小到單一 Bridge

    點選目標 Bridge,展開 failed entities,逐項看來源實體與 reason。往下檢查 Entity Mapping 與 endpoint tree:確認裝置是否存在、Matter device type 是否合理、預期 cluster 是否存在。先修正 Home Assistant unavailable、Filter 排除或 mapping 設定,不要用批次重啟掩蓋原因。

  3. 選擇最小生命週期動作

    只是停止維護,使用 Stop;排除 Failed 原因後使用 Restart;新增/移除實體或映射後,用單座 Restart 讓 endpoint 集合重新建立;只有 Bridge running、autoForceSync 已開,而且 endpoint 與 session 都正常但 Controller 狀態仍舊時,才從更多選單執行 Force Sync。完成後等 Health 與 log 穩定再做下一步。

  4. 需要整批維護時才用批次按鈕

    回到 Bridges,確認維護窗口與所有 Controller 可能短暫離線,再使用 Start All、Stop All 或 Restart All。畫面會顯示處理數量,但成功通知不取代逐座驗證;批次結束後逐一確認狀態與 failed entity count。

  5. 安排重啟後的啟動順序

    進入 Startup Order,把依賴較少、規模較小或最關鍵的標準 Bridge 拖到前面,把 endpoint 很多或實驗性工作負載放後面。有未儲存變更提示時按 Save Changes,下方操作按 Save Startup Order;看到未儲存提示消失後才離開。這會保存 priority,不會當場重啟 Bridge。

  6. 留下可回復交付物

    在 Bridges 選 Export All 下載設定 JSON;若只搬一部分,也可透過個別匯出 API/介面產物保存。另在 Settings 建立包含身份的完整備份並離線保護。記錄版本、匯出日期、Bridge 數、映射維護與預期 Controller,檔案中不得加上任何配對碼或憑證。

Force Sync 的前提與成本:Bridge 必須 running 且已啟用 autoForceSync,否則會回報零個。它會巡覽 endpoint,只推送相對記憶體 last-sync snapshot 有變更的狀態;程式在記憶體壓力下可跳過同步。不要把它當固定輪詢按鈕。若持續需要手動同步,應回頭查 HA 連線、subscription、資源壓力與映射,而不是增加操作頻率。

匯入、圖示、映射與裝置樹維護

Bridge 設定匯入/匯出

Export All 產物是版本化 JSON,包含 Bridge 設定陣列與匯出時間。Import 會先 Preview,列出名稱、連接埠、Filter rule 數、是否已存在,允許選擇 Bridge 與是否覆寫。舊格式可在預覽時標示 migration。安全做法是先預覽、只勾需要項目、預設不覆寫;確認目標環境沒有連接埠衝突後才套用。

設定匯出不包含 Matter identity、entity mappings、bridge image 資產與所有應用設定,因此它適合複製 Bridge 定義,不是災難復原檔。完整範圍請依第 22 章使用 Backup。匯入保留 Bridge 識別欄位可能影響既有資料對應;不要把同一份設定同時啟動在兩個主機上,避免同名服務與身份衝突。

Bridge icon 與 device image

Bridge icon 存在專用儲存目錄,支援常見點陣與向量格式,後端有檔案大小上限;Startup Order 卡片若找到自訂 icon 就顯示它,否則依 Bridge 設定選預設 icon。Device image 則按 Home Assistant entity 維護,Devices 與 endpoint 卡可批次解析是否有自訂或自動來源,也可上傳與移除。圖片是管理介面資產,不會神奇改變 Controller 端圖示;Controller 仍依 Matter device type 自行渲染。

Mapping profile

Bridge 詳細頁的 Entity Mapping section 可匯出 mapping profile、匯入預覽並套用。Profile 適合把相同裝置型號的映射規則移到另一座 Bridge,但匯入前仍要檢查目標 entity 是否存在、裝置能力是否相同、舊 mapping 是否會被覆寫。Profile 不包含 Fabric 身份,也不是 Bridge Filter 的替代品。

Endpoint、cluster 與失敗實體

Endpoint 卡把來源 entity、device type、clusters、cluster state 與自動映射線索集中呈現。先看 failed entities 的 reason,再比對 endpoint tree:若來源 entity 根本不在樹中,查 Filter、disabled mapping 與 HA registry;若 endpoint 在但缺能力,查 device class、override 與 composed entities;若 cluster 在但 Controller 不顯示,查 Controller 支援,不要任意改成不相符的 device type。

維護物用途不包含/不保證安全驗證
Bridge export JSON複製 Bridge 基本設定與 Filter身份、mapping、資產、設定Import Preview 與連接埠檢查
Mapping profile重用 entity mapping來源 entity 一定存在預覽變更並抽查 endpoint
Bridge icon管理頁辨識Controller 圖示重新載入 Bridges/Startup Order
Device imageDevices/endpoint 視覺辨識Matter 能力變更看解析來源與移除回退
Full backup設定、映射、身份與指定資產復原任意跨版本都零風險隔離環境預覽、校驗與復原演練

家庭與小型辦公室的操作節奏

家庭情境:客廳照明 Bridge 正常,只有一個窗簾 endpoint 失敗。你先在 failed entities 看 reason,回 Home Assistant 確認來源 entity,再修正 mapping。其他 Bridge 與 Controller 都維持運作;只有修正後單座 Restart,避免全屋裝置同時離線。

小型辦公室:照明、空調與門鎖分成三座 Bridge。主機重啟時,先讓較小且關鍵的照明 Bridge 啟動,再啟動空調,最後才是 endpoint 多、負載較高的其他 Bridge。Startup priority 幫你固定這個順序,但網路、防火牆與 Controller 可達性仍需獨立管理。

改版維護:先 Export All 供設定差異比對,再建立完整身份備份。升級後逐座啟動:確認 Health、裝置數、Fabric 數與 failed count,再測一個低風險 endpoint 的雙向狀態。設定匯出可協助重建 Bridge;只有完整身份備份才可能保留既有 commissioned Fabric。

不可並行複製身份:不要把含 Matter identity 的同一份備份同時在舊主機與新主機啟動。遷移時採「備份、停止舊端、復原新端、驗證」的單一活躍實例流程;需要回退時也先停止新端。

症狀、檢查與安全修復

  1. Start 後立刻變成 Failed

    檢查:詳細頁 status reason、系統紀錄、HA connected、連接埠與儲存權限。安全修復:先排除明確原因,單座 Restart;若仍失敗,保留 log 與設定,不要 Factory Reset。Auto Recovery 只會重試 failed Bridge,不能修正配置錯誤。

  2. Force Sync 顯示零個、很少或被跳過

    檢查:Bridge 是否 running、autoForceSync 是否啟用、endpoint 是否相對記憶體 snapshot 真的有變更、Health 的 session/subscription,以及 metrics 記憶體。安全修復:先恢復 HA 與 Controller 連線、降低資源壓力,再只執行一次;未變更 endpoint 被略過屬正常。

  3. 匯入預覽顯示已存在

    檢查:Bridge 名稱、識別、連接埠與目標環境現有設定。安全修復:預設保持 overwrite 關閉,只選真正缺少的 Bridge;需要覆寫時先完整備份並安排停止衝突 Bridge。

  4. 裝置在 Home Assistant 存在但裝置樹沒有

    檢查:Filter Preview、hidden/disabled 狀態、mapping disabled、device class 與 failed reason。安全修復:修正 Filter 或 mapping 後單座 Restart;不要為了「出現」而指定不相符 Matter type。

  5. 裝置樹有 cluster,Controller 卻沒有控制項

    檢查:Controller 對該 Matter device type/cluster 的支援與本功能成熟度。安全修復:保留正確映射、分拆給相容 Controller 或採 Controller 支援的較保守類型;不要宣稱跨 Controller 等價。

  6. 重啟後自訂圖示或圖片消失

    檢查:持久化 storage 是否掛載、資產是否包含在所用備份範圍。安全修復:修正持久化後由可信原檔重新上傳;圖示遺失不應觸發 Fabric Reset。

常見問題

Stop Bridge 會移除 Controller 配對嗎?
Stop 是停止運作,不是 Factory Reset。設定與身份應留在持久化 storage;重新 Start 後既有關係可恢復連線。不過硬關機、storage 遺失或另有破壞性操作是不同風險。
何時可以使用 Restart All?
只有多座 Bridge 都需要相同維護、你已安排短暫離線窗口,且知道如何逐座驗證時。單座或單一 entity 問題應使用最小範圍。
Export All 可以取代完整 Backup 嗎?
不可以。Bridge export 主要是設定 JSON,不含 Matter identity 與完整映射/資產範圍。需要保留已 commissioned Fabric 時使用第 22 章的完整備份流程。
Force Sync 會新增漏掉的裝置嗎?
它以現有 endpoint 狀態為主,不是 Filter 或 mapping 修復器。裝置不在樹中時先處理 HA registry、Filter、mapping,接著單座 Restart。
調整 Startup Order 會立即重啟嗎?
Startup Order 頁儲存的是啟動 priority;程式碼中的儲存操作不等於按下 Restart。新順序在後續啟動流程產生效果。
Factory Reset 與 Delete Bridge 有何差別?
v2.0.55 Factory Reset 只有 Running Bridge 才真正清除 Matter 配對 Fabric;Stopped/Failed 可能沒有 reset 就被 start。先確認 Running 並於動作後核對 Fabric/commissioning。Delete 還會移除 Bridge 設定;兩者都要先備份。

固定版本來源