Standalone Devices 與 Server Mode
理解 Stable 2.0.55 內的實驗性 Server Mode:每個設定都是獨立 Matter node、最多十個平面實體、第一個實體主導身份;在不執行 live 建立、配對或刪除的前提下,完成架構與 Controller 適配規劃。
Bridge 裡的裝置與獨立 node 不一樣
一般 Bridge 以 Aggregator endpoint 掛載多個 bridged devices;Server Mode 則把設備 endpoint 直接放在 Matter ServerNode 上,移除 bridged device identity,讓它看起來像獨立 Matter 裝置。這對掃地機器人等 Controller 只願意在獨立 node 上提供語音或 discovery 的類型特別重要。
Dashboard 的 /standalone-devices 頁面把每個 Server Mode 設定稱為 Standalone Device。它本質上仍使用一份 bridge data、filter、port、持久化身份與 commissioning 狀態,但啟動的執行路徑是 ServerModeBridge,而不是一般 Aggregator Bridge。
本章是規劃與風險導覽,不要求你在 live 系統按 Create、Pair 或 Delete,也不展示任何 QR、手動配對碼或識別資料。實際 commissioning 與 Multi-Fabric 安全流程由下一章處理。
Server Mode 的 node、endpoint 與身份
| 項目 | 一般 Bridge | Server Mode/Standalone |
|---|---|---|
| Matter 結構 | 一個 node 下有 Aggregator 與 bridged child endpoints。 | 實體 endpoints 直接加到 ServerNode,沒有 Aggregator。 |
| 裝置身份 | 每個 child 有 Bridged Device Basic Information。 | 移除 bridged identity,root node 承載主要身份。 |
| 數量 | 依 Bridge 規模與 Controller 容量規劃。 | 每 node 硬上限十個實體。 |
| 主實體 | Bridge 自身身份與各 child 分開。 | 第一個 include matcher 命中的可用實體是 primary,驅動 node identity 與 advertised device type。 |
| 組合裝置 | 可用 autoComposedDevices 與 user composed endpoint。 | 不支援 composed shape;回退成 flat standalone endpoint。 |
| Plugins | 一般 Bridge 可依功能與成熟度使用 plugin surface。 | 不可用;Server Mode bridge 沒有 pluginInfo 或 enable/disable methods。 |
除 vacuum 外,多數 domain 先沿用第 9–11 章 LegacyEndpoint 的相同映射,再透過 asStandaloneEndpointType 移除 bridgedDeviceBasicInformation。Vacuum 使用專用 ServerModeVacuumDevice/endpoint,同樣不含 bridged identity,且預設不加入不符合 RVC spec 的 OnOff cluster。
這表示 Standalone 不是另一套 domain 支援清單。燈、sensor、fan、select 等仍受相同 HA device class、Matter override 與 Controller device-type 支援限制;Server Mode 只改 node 結構,不能讓 Controller 突然支援原本標為 no 的類型。
最多十個、第一個 primary、其餘 sibling
Standalone Devices 建立表單接受精確 entity ID,每列必須符合 domain.object_id 形狀,不允許 wildcard,重複值也無效。前端與後端都固定上限十列/十個 endpoint;後端若收到更多,會略過超額項目並在 failed entities 回報。
第一個 include matcher 命中的實體是 primary。它的 HA device、friendly name、Entity Mapping identity override 與 Matter device type會驅動 root node identity 和 advertised device type;其餘最多九個實體是直接掛在同 node 的平面 sibling endpoints。多於一個實體的模式在 Stable 內仍是實驗性。
| 分組策略 | 適合 | 不適合 |
|---|---|---|
| 一個 node 一個實體 | Vacuum/mower、需要清楚獨立身份、問題隔離。 | 大量簡單 sensor,會增加 commissioning 與 node 管理成本。 |
| 一個 primary 加少量 sibling | 同一用途、同 Controller 支援輪廓的設備。 | 混合 EVSE、稀有 detector、媒體與一般燈,可能讓 Controller discovery 失敗或 UI 混亂。 |
| 塞滿十個 | 經測試且 Controller 能穩定呈現的受控場景。 | 只為節省 node 數量;十個是硬上限,不是建議目標。 |
某 sibling 若被 primary 的 mapping 吸收,例如 vacuum 自動關聯電池或模式 select,後端會把重複項目標成「Already exposed through …」,而不是建立第二份 endpoint。disabled entity 會保留身份號碼但列為失敗,避免可逆停用造成重新編號。
Create、Edit、Reorder、Delete 的影響
Create 概念:Standalone Devices 頁面的 Add device 表單收名稱與一到十個精確實體;送出後後端自動配置可用 port,建立 filter include rows 並把 serverMode 設為 true。這會新建 Matter node 與持久化資料,不是唯讀預覽。本章只教你在紙上或變更單準備名稱與順序,不要求在 live 系統提交。
Edit/Reorder 概念:清單卡片的 Open details and pairing 進入既有設定;一般 Bridge 詳情/編輯路由可管理 filter 與 Entity Mapping。Standalone 建立對話框本身沒有已建立 node 的拖曳編輯器。要改 primary,就必須改 include matcher 的順序,並評估身份與 Controller 快取;要改 Matter 類型,使用 Entity Mapping,而不是改 HA entity ID。
Delete 概念:清單有刪除按鈕與確認對話框。固定 UI 文案明確指出:刪除 Matter node 並從 Controller 取消配對,無法復原。刪除不是一般排錯步驟;執行前應備份持久化 storage 與設定、記錄所有已加入的 Controller、確認重建與重新 commissioning 的維護時段。
| 變更 | 可能影響 | 安全返回點 |
|---|---|---|
| 新增 node | 新 port、storage、commissioning 狀態與 Controller 裝置。 | 提交前取消;提交後先停止而非直接刪除,確認設定備份。 |
| 增加/移除 sibling | endpoint 結構改變、Controller 重新發現或留下快取。 | 一次只改一個,保留原 include 順序。 |
| 重排 primary | root identity 與 advertised device type 可能變動。 | 先恢復原順序;不要同時重命名或改 override。 |
| 刪除 node | 取消配對且不可復原,需重新建立與 commissioning。 | 只有事前備份與重建計畫;按下確認後沒有 undo。 |
Vacuum、mower 與 Controller fit
原始碼明確把 Server Mode vacuum 的目的寫為:避免 Bridged Device Basic Information,使它以 standalone device 出現,符合 Apple Home Siri 指令與 Alexa discovery 的需求。前端 Filter Preview 也會在一般 Bridge 包含 vacuum 時建議考慮 Server Mode。這是 device-specific 相容策略,不是 Server Mode 對所有 Controller 都有全面 yes。
| 類型 | 固定 device-type 支援 | Server Mode 規劃 |
|---|---|---|
robot_vacuum_cleaner | Apple、Google、Alexa、Aqara yes。 | Apple 語音與 Alexa discovery 優先一 node 一 vacuum;保留標準 RVC,不盲開 OnOff。 |
robotic_lawn_mower | Apple、Alexa yes;Google、Aqara unknown。 | 仍以 RVC 類型顯示,獨立 node 有助隔離,但不會產生 mower 專用 UI。 |
evse | Aqara yes;Apple、Google、Alexa no。 | 不應因 Standalone 就放入 Alexa;來源註記 bridged EVSE 可能破壞 Alexa 辨識。 |
air_purifier/fan | Apple no;Google、Alexa、Aqara yes。 | 獨立 node 仍無法改變 Apple no。 |
mode_select | Apple、Google、Alexa no;Aqara unknown。 | Standalone 不解決 UI 缺口;需要兩態 switch fallback 或保留 HA。 |
Vacuum 的 Service Area、Clean Mode、Operational State 與 Power Source 沿用第 11 章邏輯。房間、按鈕、吸力、拖地與充電關聯仍可能吸收其他實體;若把那些關聯實體又列成 sibling,後端會拒絕重複暴露。Mower 只有存在電池資訊才加 Power Source,且 Controller 可能稱它為 robot vacuum。
Commissioning 與 Multi-Fabric 概念
每個 Standalone Device 都是自己的 Matter node,因此有獨立的 commissioning 入口、Fabric 關係、session 與 Controller 裝置紀錄。清單卡片的 Open details and pairing 只是一個入口;你仍需先確認網路、IPv6、mDNS、Controller 帳號權限與維護窗口。
安全流程分成四段:先建立並啟動 node、再查看其 commissioning 狀態、在 Controller 端加入、最後回到 Matter Hub 驗證 Fabric 與 subscription health。QR 與手動資料都是秘密;只在你自己的受控畫面臨時顯示,不截圖、不貼到工單、不寫入本指南,也不使用任何真實示例。
Multi-Fabric 是把同一 node 加入第二個 Controller 生態,不是再建一份 Standalone。是否能開啟新的 commissioning window、Controller 如何分享,以及移除 Fabric 的影響,應依第 13 章固定流程;不要用 Delete Standalone Device 來移除單一 Controller,因為 Delete 會移除整個 node。
Server Mode 沒有 Plugins
Stable 2.0.55 的 Server Mode bridge 不提供 pluginInfo,也沒有 plugin enable/disable 等方法。Plugin API 會在清單略過 Server Mode,對單一 Server Mode bridge 的 plugin 操作回覆不支援,而不是安裝 plugin。
因此 Camera 與 Security Plugins 即使在 Stable channel 內有路由,產品成熟度仍是 experimental,且不可用於 Standalone/Server Mode。不要把第 11 章 experimental doorbell 當成 Camera Plugin;doorbell 只提供事件/switch 類型,不含影像。也不要用多實體 Standalone 嘗試「組合」camera、doorbell、lock 來繞過限制。
Server Mode 同樣不支援 composed mappings:若設定 composedEntities 或 climateExposeFan,程式會警告並把 primary 回退為 flat endpoint。自動關聯電池、vacuum mode 等仍可附著在該 endpoint,但不等於任意 composed device parent。
| 功能 | 一般 Bridge | Server Mode |
|---|---|---|
| Legacy entity mapping | 可用 | 可用,改成 standalone endpoint type。 |
| Vacuum 專用 endpoint | Bridged RVC | Standalone RVC,適合 Apple Siri/Alexa discovery。 |
| User composed device | 需 autoComposedDevices 等條件 | 不可用,回退 flat。 |
| Camera/Security Plugins | 功能本身為 Stable 內 experimental | 不可用。 |
不碰 live node 的規劃演練
列出目標實體與 Controller
在離線變更單中使用
vacuum.example_cleaner等文件 placeholder,標記每個 device type 的 yes/partial/no/unknown;不要貼入 live entity 清單或網路資料。決定一 node 一實體或小型群組
Vacuum/mower 優先獨立 node。若規劃群組,限制在十個以內,且只放支援輪廓相近的實體。
指定 primary 與順序
把應主導名稱、vendor identity 與 advertised type 的實體放第一列;在變更單記錄原順序與預期順序,評估 Controller 快取影響。
在 UI 做唯讀定位
確認導覽列有 Standalone Devices,查看既有卡片的名稱、實體摘要、status 與 entity problem;可開啟 details 查看狀態,但不要在本次演練按 Create、Pair、Delete 或儲存編輯。
完成備份與回復計畫
記錄需備份的 Matter Hub storage/設定、已配對 Controller 類別、停止與重啟窗口,以及若 primary 變更失敗時恢復原 include 順序的方法。
把實際執行交給 commissioning 流程
取得核准後依第 13 章在受控時段執行;秘密資料只留在本機畫面。沒有核准或備份時,本章的安全完成點就是「規劃完成、未提交」。
Server Mode 卡關與安全返回點
Standalone Devices 路由不存在
先核對版本確為 Stable 2.0.55 與前端 routes;不要用其他 channel 截圖或假設路由名稱。路由存在不等於功能 maturity 已 stable。
顯示 no entity 或 entity problem
查看 include 是否為精確 entity ID、實體是否更名/移除/disabled,以及 HA registry 是否可用。空 registry 在 HA 重啟時會延後 reconcile,不應立刻刪 endpoint。
第十一個實體沒有建立
每 node 硬上限十個;超額會列 failed entity。把額外實體移到另一個 node,而不是用 wildcard 規避,前端本來就禁止 wildcard。
Controller 名稱或類型由錯誤實體主導
檢查第一個 include matcher 與第一個實際成功建立的 endpoint。規劃恢復原順序;不要同時刪 node、改 custom name 與重新配對。
Vacuum 建立但語音或 discovery 不工作
確認它真的在 Server Mode、使用標準 RVC clusters、沒有不必要的 OnOff,並查 Controller device-type 支援。Server Mode 自身仍是 experimental,不保證每個平台版本。
找不到 Plugin 操作
這是設計限制,不是權限錯誤。Server Mode 不 host plugins;改用一般 Bridge 評估 experimental plugin,或保留功能在原平台。
準備刪除來解決快取問題
停止。Delete 會移除 node 並取消所有 Controller 配對且不可復原。先備份、收集已遮蔽診斷、恢復最近 mapping/順序;只有核准的重建計畫才進入刪除。
常見問題
Server Mode 在 Stable 2.0.55 算正式穩定功能嗎?
一個 Standalone Device 只能放一個實體嗎?
調整順序只是改列表嗎?
Standalone 能讓 Apple 顯示 air purifier 或 fan 嗎?
可以在 Standalone 裝 Camera 或 Security Plugin 嗎?
刪除後可以按 Undo 恢復嗎?
Stable 2.0.55 固定來源
- Standalone Devices 路由
- 建立表單、十個上限、primary 與刪除警告
- Server Mode endpoint manager、排序與上限
- ServerModeBridge node、session 與 identity
- 移除 bridged identity 的 endpoint 轉換
- Server Mode 不提供 Plugin surface
- serverMode feature flag 與 experimental 說明
- Pinned Add-on mirror
所有來源固定到 exact commit。本章不包含任何實際 commissioning 秘密、live node 識別或環境資料。