通訊協定大百科
Wi-Fi、Zigbee、Z-Wave、Thread、Matter、藍牙、KNX、Modbus、MQTT⋯⋯這些名字到底差在哪?這一章把它們一次攤平比較,讓你在按下「加入購物車」之前就知道:這顆燈泡買回家會不會變成一塊廢鐵。看完你會有一張可以查一輩子的速查表,還有一套買設備前的自我檢查流程。
為什麼要學這個
你在第 14 章學會了怎麼在 Home Assistant 裡新增「整合(Integration)」。但整合是軟體層的事,這章要往下鑽一層:訊號到底是怎麼從你手機飛到那顆燈泡上的。
為什麼要管這麼底層的事?三個很痛的理由:
- 買錯就是白買。網拍上一顆便宜的「智慧開關」,寫著支援語音助理,你買回家卻發現它只認自家 App 的雲端帳號,Home Assistant 根本抓不到。錢丟水裡。
- 網路斷線就全家癱瘓。有些協定是「本地控制」,路由器對外斷線也照樣開燈;有些是「雲端控制」,中華電信一抽風你家玄關就變全黑。
- 裝到第 20 個裝置才發現有人數上限。典型情境:全家買 Wi-Fi 插座,裝到第十幾個時路由器開始掉線,因為家用路由器能同時掛的裝置數量是有限的。這種坑要在買第一顆之前就避開。
讀完這章,你會有能力做這三件事:看到一個商品頁就判斷它能不能進 Home Assistant、幫家裡選一套主力協定不會後悔、遇到「裝置離線」時知道要從哪一層開始查。
協定到底在管什麼:把它拆成三層
大部分人的混亂來自把三件不同的事混在一起講。先把它拆開,後面就都通了。想像你在客廳跟廚房的家人講話:
第一層:無線電(用什麼把聲音送出去)
就是「用喊的、用對講機、還是用電話線」。Wi-Fi、Zigbee、Thread、藍牙都是靠 2.4GHz 這個頻段的無線電;Z-Wave 用的是另一個比較低的頻段;KNX 和 Modbus RTU 則根本不用無線電,走實體線路。
第二層:資料格式(講的是哪一種語言)
兩個人都用對講機,但一個講台語一個講法語,還是沒辦法溝通。Zigbee 裝置之間彼此聽得懂,但 Zigbee 不會自動聽懂 Z-Wave。Matter 之所以被吹捧,就是因為它想當那個「大家都會的共通語言」。
第三層:Home Assistant 怎麼聽到(誰幫你翻譯)
你的 Home Assistant 主機本身只有網路孔和 Wi-Fi,它沒有 Zigbee 天線也沒有 Z-Wave 天線。所以要嘛插一支 USB 接收器(協調器/Coordinator),要嘛靠原廠的閘道器(Gateway/Hub)把訊號轉成網路封包再送進來。
兩個一定要分清楚的詞
| 名詞 | 白話解釋 | 為什麼你要在意 |
|---|---|---|
| 本地控制(Local) | 指令從 Home Assistant 直接送到裝置,不出你家 | 快、穩、斷網也能用、不怕原廠倒閉 |
| 雲端控制(Cloud) | 指令要先上網到廠商伺服器,再繞回你家 | 慢半拍、斷網就死、廠商收攤你就變磚 |
| Mesh(網狀網路) | 裝置之間會互相幫忙轉發訊號,一顆傳一顆 | 訊號可以繞過牆壁往外長,房子越大越重要 |
| 閘道器(Gateway/Hub) | 把某種協定翻譯成網路訊號的中間盒子 | 多一個要插電的東西,也多一個故障點 |
主對照表:九種協定一次比完
這是全章最該收藏的一張表。傳輸距離那一欄請當成「概略感覺」而不是規格書數字,因為實際距離受牆壁材質、家具、干擾影響非常大,同一顆裝置放在木板隔間跟放在鋼筋混凝土隔間可以差三倍。
| 協定 | 傳輸距離感覺 | 耗電 | 要不要閘道 | 能本地控制嗎 | Mesh |
|---|---|---|---|---|---|
| Wi-Fi | 一般家用路由器覆蓋範圍,隔一兩道牆 | 高,幾乎都要接電 | 不用,路由器就是 | 看廠商,很多是雲端 | 否 |
| Zigbee | 單跳室內十幾公尺,可靠 mesh 接力延伸 | 很低,電池款可撐數月到一年以上 | 要,USB 協調器或原廠閘道 | 是 | 是 |
| Z-Wave | 比 Zigbee 略遠,穿牆通常較好 | 很低 | 要,USB 協調器 | 是 | 是 |
| Thread + Matter | 類似 Zigbee,靠 border router 接上家裡網路 | 很低 | 要 border router(很多裝置已內建) | 是 | 是 |
| 藍牙 BLE | 同一個房間,隔牆就開始掉 | 極低,鈕扣電池可撐很久 | 主機內建藍牙或用 BLE proxy | 是 | 否(要靠多個 proxy 補) |
| KNX | 靠佈線,整棟樓都可以 | 不適用(有線供電) | 要 KNX IP 介面/路由器 | 是 | 否(匯流排架構) |
| Modbus RTU | RS-485 線可拉很長 | 不適用 | 要 USB 轉 RS-485 轉換器 | 是 | 否 |
| Modbus TCP | 網路線/區網範圍 | 不適用 | 不用,直接走區網 | 是 | 否 |
| MQTT | 區網範圍(它本身不是無線電) | 不適用 | 要一台 broker(可裝在 HA 主機上) | 是 | 否 |
| 純區網 HTTP | 區網範圍 | 不適用 | 不用 | 是 | 否 |
接下來這張表回答「所以我到底要怎麼把它接進 Home Assistant」:
| 協定 | 常見品牌/裝置 | 在 HA 裡怎麼接 |
|---|---|---|
| Wi-Fi | Tuya/塗鴉系、Shelly、TP-Link、小米系、各家掃地機 | 多半有各自的整合,在設定 > 裝置與服務 > 新增整合搜尋品牌名。刷 ESPHome 或 Tasmota 韌體的自製裝置也走這條 |
| Zigbee | IKEA、Aqara、Philips Hue、SONOFF、Tuya Zigbee 款 | 插一支 Zigbee 協調器,用 ZHA 整合或 Zigbee2MQTT |
| Z-Wave | Aeotec、Fibaro、Zooz、Heltun | 插 Z-Wave 協調器,用 Z-Wave 整合(背後跑 Z-Wave JS) |
| Thread / Matter | Nanoleaf、Eve、Aqara 新款、SwitchBot 部分型號 | 安裝 Matter 整合與 Matter Server,用手機 App 配對 |
| 藍牙 BLE | 小米溫濕度計、SwitchBot、各種藍牙體重計與植物感測器 | Bluetooth 整合 + 主機內建藍牙,或加 ESPHome Bluetooth Proxy |
| KNX | ABB、Gira、Jung、Schneider(多為建案/商辦) | KNX 整合,透過 KNX IP 介面連線 |
| Modbus | 電表、變頻器、PLC、工業級空調控制器、部分太陽能逆變器 | Modbus 整合,寫在 configuration.yaml |
| MQTT | Zigbee2MQTT、Tasmota、ESPHome 也可走、各種 DIY 裝置 | 安裝 Mosquitto broker,再新增 MQTT 整合 |
| 純區網 HTTP | 部分 NAS、印表機、開源韌體裝置、自架服務 | 官方整合,或用 rest_command 自己打 API |
動手做:盤點你家現在跑哪些協定
在買新東西之前,先搞清楚你現在手上有什麼。這五步大概十分鐘就能做完。
-
打開整合列表,看看已經有哪些
左側選單點設定,進入裝置與服務。這一頁列出所有已經接上的整合。把裡面出現的名字抄下來,例如看到「MQTT」「Zigbee Home Automation」「Bluetooth」,就代表你家已經在跑這些協定了。
-
檢查有沒有 Zigbee 或 Z-Wave 專屬頁面
如果你已經插了 Zigbee 協調器並設定好 ZHA,設定選單裡會多出一個 Zigbee 項目;Z-Wave 設好之後同樣會出現 Z-Wave 項目。有沒有這兩個入口,就是最快判斷「我家有沒有這套網路」的方法。不同版本的選單位置可能微調,以你畫面上看到的為準。
-
數一數 Wi-Fi 裝置有幾台
登入你家路由器的管理頁面,找「已連線裝置」或類似名稱的清單。把不是手機、電腦、電視的那些數出來——那些就是你的 Wi-Fi 智慧裝置。如果這個數字已經超過十幾台而你還打算繼續加,那接下來就該考慮改用 Zigbee 或 Thread 了。
-
把每個裝置標記成「本地」或「雲端」
回到設定 > 裝置與服務,逐一點進整合。判斷方法很簡單:如果當初設定時要你輸入廠商 App 的帳號密碼、或是跳出網頁去廠商官網授權,那大概率是雲端;如果只要求你填一個區網 IP 或直接自動找到,那就是本地。
-
做一次斷網演習
把路由器對外的網路線拔掉(不是關 Wi-Fi,是拔掉對外那條),維持你家內部區網。然後試著用 Home Assistant 開關每一個裝置。能動的就是真本地,轉圈圈然後失敗的就是雲端依賴。演習完記得把線插回去。
-
把結果記下來
用第 4 章教的標籤(Label)功能,幫雲端依賴的裝置加一個「雲端」標籤。之後停電或斷網時,你一眼就知道哪些東西會失效,也知道下次要優先汰換誰。
Zigbee 深入:協調器、路由器、頻道干擾
Zigbee 是台灣家庭最容易入手、裝置最便宜、電池最耐用的一套。但它有幾個地雷,踩到會讓你以為「Zigbee 好爛」,其實只是佈點沒做對。
三種角色:協調器、路由器、終端裝置
| 角色 | 是什麼 | 典型例子 | 要注意 |
|---|---|---|---|
| 協調器 Coordinator | 整個網路的大腦,全家只能有一個 | 插在 HA 主機上的 USB 接收器 | 它掛了整個 Zigbee 網路就停擺 |
| 路由器 Router | 幫忙轉發訊號的中繼站 | Zigbee 燈泡、插座、常時供電的開關 | 必須是「一直有電」的裝置才會當路由器 |
| 終端裝置 End Device | 只負責回報,不幫別人轉發 | 電池款門窗感應器、溫濕度計、按鈕 | 它不會擴大你的網路覆蓋 |
協調器怎麼選
Home Assistant 官方文件目前列為推薦的協調器包含幾個系列:Silicon Labs EmberZNet 晶片的機種(例如官方的 Home Assistant Connect ZBT-2、Connect ZBT-1、Home Assistant Yellow、SONOFF ZBDongle-E、SMLIGHT SLZB-07)、Texas Instruments 的 CC2652 與 CC1352 系列 USB 棒,以及 dresden elektronik 的 ConBee III。
文件同時把一批舊機種列為不再推薦,包含 ConBee II、RaspBee II、SONOFF ZBBridge、Nortek HUSBZB-1、Elelabs 系列、Digi XBee 系列、ZiGate 系列,以及 TI 的 CC2530/CC2531/CC2538。網拍和二手市場上這些還很多,價格常常只要推薦款的三分之一——看到特別便宜,先查一下型號在不在這份「不推薦」名單裡再下單。
官方自家的 Connect ZBT-2 規格是 Silicon Labs MG24 晶片搭 ESP32-S3 負責 USB 連線,傳輸速率 460800(前一代 ZBT-1 是 115200),改用外接天線,官方建議售價 49 美元/45 歐元,盒裝附一條 1.5 公尺 USB-C 線。
頻道干擾:別急著改 Zigbee 頻道
Zigbee 和 Wi-Fi 都擠在 2.4GHz,所以互相干擾是常態。但官方 ZHA 文件的建議跟很多網路教學相反,它說的是:最佳做法是不要去改 Zigbee 頻道。ZHA 的「Smart」選項在建立網路時會掃描所有頻道,優先挑 15、20、25 這三個,這是一次性的動作。
如果真的一直有干擾,文件建議的順序是:先把協調器放遠離 Wi-Fi 基地台和其他 Wi-Fi 訊號源,還是不行的話,去改你家路由器的 Wi-Fi 頻道,而不是改 Zigbee 頻道。原因很現實:改 Zigbee 頻道通常意味著全部裝置要重新配對,那是一個下午的工。
USB 3.0 是隱形殺手
另外強烈建議用一條 USB 延長線把接收器拉離主機本體,因為主機、硬碟、SSD 本身都是干擾源。文件提醒延長線要選屏蔽良好的,通常線材越粗屏蔽越好。
佈點建議
- 協調器放在房子的中心位置,不要塞在電視櫃最裡面或金屬機櫃裡。
- 遠離電器和大量電線,冰箱、微波爐、電源供應器旁邊都是壞位置。
- 大坪數或長型格局,先在中段裝一顆插電的 Zigbee 裝置當接力點,再往外擴。
- ZHA 使用者可以在 設定 > Zigbee 裡選「顯示地圖」(Show map)看網路拓撲,上面的 RSSI 與 LQI 數值可以幫你找出哪一段連線特別弱。
ZHA 還是 Zigbee2MQTT?
同一支協調器、同一批 Zigbee 裝置,你有兩條路可以接進 Home Assistant。這是新手最常糾結的選擇題。
| 比較項目 | ZHA(Zigbee Home Automation) | Zigbee2MQTT |
|---|---|---|
| 本質 | Home Assistant 內建整合 | 獨立軟體,透過 MQTT 跟 HA 溝通 |
| 安裝難度 | 低。插上接收器通常會被自動偵測,在裝置與服務裡完成設定 | 中。要先裝 MQTT broker,再裝 Zigbee2MQTT,還要設定連接埠 |
| 要幾個元件 | 一個(整合本身) | 三個(broker、Zigbee2MQTT、MQTT 整合) |
| 設定介面 | 直接在 HA 裡面,有 設定 > Zigbee 專屬頁面 | 另外一個獨立的網頁介面 |
| 冷門裝置支援 | 靠 zigpy 函式庫,多數常見裝置沒問題 | 社群更新快,冷門或新上市裝置常常先在這裡有支援 |
| HA 掛掉時 | Zigbee 網路跟著停 | Zigbee2MQTT 還在跑,訊息會留在 broker |
| 適合誰 | 第一次玩、想少踩坑、裝置都是主流品牌 | 裝置雜、有冷門品牌、想要更細的調校 |
Zigbee2MQTT 官方文件目前把 zStack(Texas Instruments)和 EmberZNet(Silicon Labs)這兩類接收器列為推薦——跟 ZHA 的推薦清單重疊度很高,所以你買一支好的協調器,兩條路都走得通。安裝方面,Zigbee2MQTT 在 Home Assistant 上就是裝成一個 App(以前叫 add-on),另外還要一個 MQTT broker,官方推薦 Mosquitto。
換協調器怎麼辦
ZHA 有內建的遷移功能,在 設定 > Zigbee 裡有「Migrate」項目,官方文件說明支援 Silicon Labs、Texas Instruments 與 ConBee/RaspBee 晶片的機種之間遷移。這代表你從舊接收器換到新接收器時,有機會不用把全家感應器重配一次。實際流程請照你版本畫面上的精靈走。
Z-Wave:貴一點,但穩
Z-Wave 在台灣的能見度比 Zigbee 低很多,價格也明顯貴,但它在歐美是很主流的選擇,因為它不跟 Wi-Fi 擠 2.4GHz,干擾問題天生就少一大半。
買之前先搞清楚頻段
在 Home Assistant 裡怎麼跑
Home Assistant 的 Z-Wave 整合背後跑的是 Z-Wave JS。設定好之後,官方文件說你可以從 設定 > Z-Wave 或 設定 > 裝置與服務 > Z-Wave 進入管理頁面。它會用到 Z-Wave JS 這個「應用程式(App)」——這個東西以前叫做「附加元件(Add-on)」,Home Assistant 在 2026.2 版把 Add-on 正式改名成 App,選單路徑變成 設定 > 應用程式(英文介面是 Settings > Apps;中文介面的翻譯用詞可能還會微調,看到「App」或「應用程式」都是同一個地方)。這部分在附錄 A 有更完整的說明。
硬體與加入裝置
官方文件對剛入門的人建議直接買 800 系列的接收器,並且把韌體更新到 7.23.2 以上;文件裡也點名了官方自家的 Home Assistant Connect ZWA-2。除此之外,Aeotec Z-Stick Gen5+、Zooz ZST10、Nortek HUSBZB-1 這類舊機種也在能用的清單裡,但那是「還能跑」,不是「建議新買」。
把裝置加進網路(術語叫「納入/Inclusion」)有兩種做法:
- SmartStart:掃描裝置上的 QR code,之後裝置一通電,官方文件說會在 10 分鐘內自動加入。
- 傳統納入:把主機和裝置都切到納入模式。裝置那邊怎麼進入納入模式,一定要查該裝置的說明書,每家做法都不同。
安全性方面,Z-Wave 支援 S2 加密,官方文件提到 S2 不會造成額外的網路流量負擔還能帶來額外好處。新建網路時安全金鑰會自動產生。另外還有 Z-Wave Long Range 這種長距離網路型態可以搭配支援的裝置使用。
Matter 與 Thread:一個是語言,一個是路
這兩個詞最常被搞混,一句話分清楚:Thread 是怎麼傳(無線電那一層),Matter 是講什麼(資料格式那一層)。所以世界上存在「Matter over Thread」的裝置,也存在「Matter over Wi-Fi」的裝置,兩種都是 Matter。
Thread border router 是什麼
Thread 裝置自己組一個低耗電的 mesh 網路,但它們講的是 IPv6,要有一個東西幫忙把 Thread 網路接到你家的 Wi-Fi/有線網路上,那個東西就叫 border router(邊界路由器)。
官方 Thread 整合文件目前列出的 border router 包含:
| 陣營 | 裝置 |
|---|---|
| Home Assistant 官方 | Home Assistant Yellow、Connect ZBT-1、Connect ZBT-2(搭配 OpenThread Border Router 這個 App) |
| Nest Hub 第 2 代、Nest Hub Max、Nest Wifi Pro、Nest Wifi、Google TV Streamer (4K) | |
| Apple | HomePod 第 2 代、HomePod mini、Apple TV 4K 第 2/3 代 |
| 其他 | Nanoleaf 與 Amazon 的部分裝置 |
好消息是:如果你家已經有 HomePod mini 或 Nest Hub,你其實已經有一台 border router 了,不用再買。要查看家裡的 Thread 網路狀態,路徑是 設定 > 裝置與服務 > Thread > 設定。
在 Home Assistant 加入 Matter 裝置
先講一個很多人卡住的前提:配對 Matter 裝置必須用手機的 Companion App,瀏覽器做不到。官方文件寫得很清楚,Home Assistant 的 Matter 控制器是透過 Companion App 來完成配對的。Companion App 的安裝在第 7 章有講。
-
先裝好 Matter 整合
到設定 > 裝置與服務,新增 Matter 整合。如果你跑的是 Home Assistant OS,系統會問你要不要安裝官方的 Matter Server,按提交讓它自己裝就好。這個 Matter Server 是一個獨立跑的程式,負責把你的 Matter 網路(術語叫 Fabric)跟 Home Assistant 接起來。
-
確認 IPv6 有開
官方文件把這列為必要條件:IPv6 必須啟用。檢查路徑是 設定 > 系統 > 網路,把 IPv6 設成自動(Automatic)或靜態(static)。這一步沒做,後面配對會莫名其妙失敗。
-
用手機打開 Companion App
在手機的 Home Assistant App 裡,進入 設定 > Matter,點新增裝置。Android 使用者還要把 App 的定位權限設成「一律允許」,否則掃不到裝置。
-
選擇這是新裝置還是二手
如果裝置是全新沒被別的平台加入過,選「不,這是新的」(No, it's new.),然後用手機相機掃裝置上的 QR code,或是點「更多選項」手動輸入配對碼。最後按加入 Home Assistant。
-
如果裝置已經在別的平台
裝置如果已經加進 Apple 家庭或 Google Home,選「是,它已在使用中」(Yes, it's already in use),指出它目前接在哪個控制器上,然後照畫面指示做。實際流程是到那個平台的 App 裡產生一組分享用的 QR code 或配對碼,再拿到 Home Assistant 這邊用。Matter 的一大優點就是同一個裝置可以同時被多個平台控制。
MQTT 與純區網 HTTP:DIY 的兩條萬用路
前面講的都是「某種無線電」。MQTT 和 HTTP 不一樣,它們是跑在你家網路上的訊息格式,不管底下是 Wi-Fi 還是網路線。當某個裝置沒有專屬整合時,這兩條路就是你的救命繩。
MQTT 是什麼:一個社區佈告欄
想像社區大廳有一面佈告欄,上面分很多格子(術語叫「主題/Topic」)。溫濕度計每五分鐘就去「客廳/溫度」那一格貼一張紙條寫上 26.5。Home Assistant 只要事先說「我要訂閱客廳/溫度這一格」,有人一貼它就知道。這面佈告欄就是 broker(訊息代理伺服器)。
這個設計的好處是:貼紙條的人不需要知道誰在看,看的人也不需要知道誰在貼。所以你可以加無限多個裝置和無限多個訂閱者,彼此都不用互相認識。
裝一個 broker
官方 MQTT 文件說最簡單的做法是安裝官方的 Mosquitto Broker 這個 App(也就是以前說的 Mosquitto add-on),而且在設定 MQTT 整合的過程中可以順便自動裝好。
新增 MQTT 整合的路徑是 設定 > 裝置與服務,右下角新增整合,清單裡選 MQTT。
自動探索(Discovery):最迷人的部分
homeassistant。意思是裝置只要按照約定格式,往 homeassistant/... 開頭的主題丟一則自我介紹訊息,Home Assistant 就會自動幫它生出實體,你完全不用手寫設定。這就是為什麼 Zigbee2MQTT 和 Tasmota 用起來那麼順——你在它們那邊配對好一顆新感應器,Home Assistant 這邊過幾秒就自己冒出來了。
設定好之後要回頭改東西,官方文件把它分成兩件事:
- 改 broker 的連線資訊(換 IP、換帳號密碼):設定 > 裝置與服務,選 MQTT 整合,點三個點的選單,選重新設定(Reconfigure)。
- 改自動探索之類的選項:在同一個 MQTT 整合頁面,點設定 MQTT 選項(Configure MQTT Options)這顆按鈕。
實際的按鈕文字會隨版本和語系不同,以你畫面上看到的為準——認「三個點的選單」和「整合頁面上的按鈕」這兩個位置比較不會迷路。
純區網 HTTP:最後手段,但很好用
有些裝置什麼協定都不支援,但它有一個網頁介面,或者提供一個網址讓你打。這時候可以用 rest_command 這個整合自己打 API。它目前只能寫在 configuration.yaml 裡:
rest_command:
open_gate:
url: "http://192.168.1.50/api/open"
method: post
verify_ssl: false
官方文件列出的參數包含 url(必填,支援範本)、method(預設 get,可用 get/patch/post/put/delete)、headers、payload、verify_ssl(預設 true)、timeout(預設 10 秒)。上面那個範例把 verify_ssl 關掉,是因為區網裡的小裝置多半沒有正式的憑證;如果你打的是外網服務,就不要關。設定好之後,在自動化或腳本裡這樣呼叫:
actions:
- action: rest_command.open_gate
action: 而不是舊寫法的 service:。Home Assistant 已經把「服務(Service)」改稱「動作(Action)」,YAML 的 triggers: / conditions: / actions: 也都是複數形。第 8 章有完整說明。藍牙 BLE:便宜、省電、但傳不遠
低功耗藍牙(BLE,Bluetooth Low Energy)的裝置通常最便宜,一顆鈕扣電池能撐很久。缺點也很直接:它幾乎不穿牆,而且它不會 mesh,一個房間的訊號傳不到隔壁房間。
兩種運作方式
| 模式 | 怎麼運作 | 適合 |
|---|---|---|
| 被動接收(廣播) | 裝置自己一直對空氣喊數值,HA 聽到就記下來 | 溫濕度計、植物感測器這類只回報的裝置 |
| 主動連線 | HA 主動跟裝置建立連線去問或去下指令 | 藍牙鎖、需要下指令的窗簾機、溫控器 |
Home Assistant 的 Bluetooth 整合提供三種掃描模式:Auto(以被動聆聽為主,穿插短暫的主動掃描)、Active(持續主動詢問,更新最快但比較耗裝置的電池)、Passive(只聽,對電池影響最小)。官方文件說 Auto 模式跟一直開著主動掃描比起來,可以少掉大約 95% 的掃描耗電,所以除非你有特別理由,維持 Auto 就好。
新增路徑是 設定 > 裝置與服務 > 新增整合 > Bluetooth。
BLE Proxy:把耳朵裝到每個房間
既然藍牙傳不遠,解法就是不要只靠主機那一顆藍牙。你可以在各個房間放一台便宜的小裝置當「代收員」,它用藍牙聽到訊號,再透過 Wi-Fi 或網路線把資料轉送給 Home Assistant。這就是 Bluetooth Proxy。
官方 Bluetooth 文件說明整合可以接收來自外部轉發器的廣播資料,並點名了 ESPHome 的 ESP32 裝置、Shelly Gen2 以上的裝置,以及 SMLIGHT SLZB-U。
自己做一個 ESPHome Bluetooth Proxy
買一片 ESP32 開發板(幾百塊台幣),刷上 ESPHome,設定檔的核心只有這幾行:
esp32_ble_tracker:
bluetooth_proxy:
active: true
ESPHome 官方文件對這個元件的說明重點:
- 要用 ESP32 系列的板子。文件建議把 ESP32 平台設成
esp-idf框架,因為另一個arduino框架吃掉的記憶體多很多、跑起來也比較差。 active打開的是「代理主動連線」的能力。不同版本的文件對這個選項的預設值講法不一致,所以像上面那樣明寫active: true最保險,你就知道自己開了什麼。connection_slots是同時能維持的主動連線數,預設 3。文件建議不要超過5,以免記憶體不夠出問題;在esp-idf框架下最多可以到9。每個 slot 大約吃 1KB 記憶體,而且這個數字不能超過esp32_ble_tracker那邊設定的max_connections。- 用網路線的板子(例如 Olimex ESP32-PoE-ISO)通常比較穩,因為不用跟 Wi-Fi 搶 2.4GHz 的天線。
KNX 與 Modbus:建案與辦公室的世界
這兩個是「大人的協定」。你在網拍上買不太到,但如果你家是有做智能化的新成屋、或你負責公司辦公室的設備,很可能整棟樓底下就是跑這兩套。它們的共同特徵是:有線、極穩、幾十年不壞、但設定門檻高。
KNX:牆壁裡的匯流排
KNX 是歐洲建築自動化的標準,走的是一條專用的匯流排線(bus),所有開關、窗簾、空調控制器都掛在這條線上。它最大的特色是沒有中央大腦也能運作——你把「客廳牆上的按鍵」和「客廳的燈」設定成同一個群組位址,按下去燈就會亮,就算主機掛了也一樣。
群組位址(Group Address)是 KNX 的核心觀念。它長得像 1/2/3 這樣的三段數字。你可以把它想成佈告欄上的格子編號:按鍵往 1/2/3 這格丟一個「開」,所有訂閱這格的燈就一起亮。官方 KNX 整合文件說明群組位址以字串或整數設定,三層結構就是 1/2/3 這種格式。
在 Home Assistant 裡,KNX 整合可以從 UI 設定:到設定 > 裝置與服務 > 新增整合選 KNX。官方文件列出三種連線方式:
| 連線方式 | 做什麼 |
|---|---|
| 自動(Automatic) | 啟動時自己掃描,找出網路上的 KNX IP 介面 |
| 穿隧(Tunneling) | 指定連到某一台特定的 KNX IP 介面 |
| 路由(Routing) | 用群播(Multicast)跟 KNX IP 路由器溝通 |
另外還有加密版本的 Secure Tunneling 與 KNX IP Secure Routing。文件也提到有一個 KNX 面板,可以直接從前端建立實體、設定裝置與曝露內容,不用手寫 YAML。
Modbus:工業設備的通用語
Modbus 是工業界的老爺爺協定,1979 年就有了,到現在電表、變頻器、PLC、大型空調主機、太陽能逆變器還是滿滿都是它。它極度單純:設備裡面有一堆編號的格子(暫存器/Register),你去讀某個編號的格子,拿到一個數字,然後你自己要知道那個數字代表什麼。
Modbus 有兩種常見接法:
- Modbus RTU:走 RS-485 實體線,通常要買一個 USB 轉 RS-485 的轉換器插在主機上。線可以拉很長,抗干擾好。
- Modbus TCP:走網路線,設備有自己的 IP。設定簡單很多。
官方 Modbus 整合文件目前是只能寫 YAML,改完要重啟 Home Assistant 才生效。支援的連線型態有 tcp、udp、rtuovertcp、serial 四種。最小設定像這樣:
modbus:
- name: modbus_hub
type: tcp
host: 192.168.1.60
port: 502
sensors:
- name: 辦公室總電表
address: 100
input_type: holding
device_address: 1
如果是 RS-485 序列埠,關鍵欄位換成這組:
modbus:
- name: modbus_hub
type: serial
port: /dev/ttyUSB0
baudrate: 9600
bytesize: 8
method: rtu
parity: E
stopbits: 1
幾個文件裡明列的重點參數與預設值:
| 參數 | 意思 | 預設值 |
|---|---|---|
address | 要讀的暫存器或線圈位址,可以用十六進位如 0x789A | 必填 |
input_type | 讀取型態:discrete_input、coil、holding、input | 依平台而定 |
slave / device_address | 設備在匯流排上的編號 | 1 |
scan_interval | 多久去讀一次(秒) | 15 |
目前官方文件說支援七種實體平台:感測器、開關、二元感測器、空調、窗簾、風扇、燈。
sensors:),要寫入之前務必拿到設備的暫存器對照表,並且跟設備管理人確認過。買設備前的五個檢查與選購決策流程
這一段是全章最實用的部分。把它存成書籤,每次下單前跑一遍。
五個檢查
-
它到底是哪個協定?
商品標題和規格表裡找。找不到「Zigbee」「Z-Wave」「Matter」「Thread」「藍牙」這些字,只寫「智慧」「WiFi 連線」「手機遠端」,那就當它是 Wi-Fi 雲端裝置。同型號有不同協定版本時,型號尾巴的字母通常就是關鍵。
-
能不能不靠雲端運作?
看有沒有寫「本地控制」「Local API」「Local control」。或者反過來找警訊:如果規格寫「需搭配 XX App 使用」「需註冊帳號」,多半有雲端依賴。Matter 認證的裝置在這方面比較有保障,因為 Matter 本身就是設計成本地運作的。
-
Home Assistant 有沒有對應的整合?
下單前先到
home-assistant.io/integrations/搜品牌名。有官方整合最好;只有 HACS 社群整合的話,順便看一下那個專案最近有沒有在更新,半年沒更新的要小心。 -
要不要多買一個閘道器?
有些品牌的 Zigbee 裝置會綁自家閘道。如果你已經有通用的 Zigbee 協調器,多數狀況下可以直接配對,不用買它的閘道;但也有品牌會用私有指令讓通用協調器只能做基本開關。買之前搜「品牌名 + ZHA」或「品牌名 + Zigbee2MQTT」看社群回報。
-
壞掉之後買得到嗎?
選一個在台灣買得到、社群討論度高的型號,比選一個規格漂亮但只有一家海外賣的好。三年後你要加裝第二顆時會感謝自己。
選購決策流程
照著這個順序問自己,答案就出來了:
| 情況 | 建議走哪條路 | 理由 |
|---|---|---|
| 裝置要用電池,而且要裝很多顆(感應器、按鈕) | Zigbee 或 Thread | Wi-Fi 太耗電,電池款根本做不出來或撐不久 |
| 只要裝一兩個,而且位置就在路由器旁邊 | Wi-Fi 也可以 | 不用多買協調器,最省事 |
| 你已經有 Zigbee 協調器 | 繼續買 Zigbee | 邊際成本最低,而且每加一顆插電裝置 mesh 就更穩 |
| 你家已經有 HomePod mini 或 Nest Hub | 可以考慮 Thread + Matter | border router 已經有了,等於省一筆 |
| 你需要跨平台(家人用 iPhone,你用 Android) | Matter | 同一個裝置能同時被多個平台控制 |
| 要接電表、逆變器、工業設備 | Modbus | 那個世界就是講 Modbus |
| 建案已經預埋 KNX | KNX | 拆掉重做不划算,直接接上去 |
| 單純想知道房間溫濕度,預算超低 | 藍牙 BLE + proxy | 感測器最便宜,proxy 一片 ESP32 就搞定 |
常見卡關
-
某個裝置常常顯示「離線/不可用」
先分辨是「全部裝置都掉」還是「只有這一個掉」。全部掉就查協調器或閘道本身(USB 有沒有鬆、是不是插到 USB 3 埠、有沒有被別的軟體佔用)。只有一個掉,通常是訊號問題:它離最近的路由器裝置太遠,或中間隔了承重牆、金屬門、鏡子、魚缸。做法是在中間補一個常時供電的裝置當接力點。電池款裝置也要先確認不是單純沒電了——很多人花三小時查網路,結果是電池沒電。
-
Zigbee 裝置離協調器只有五公尺還是不穩
檢查 USB 埠。官方文件明確講不要插 USB 3.x 埠,USB 3 產生的雜訊會直接干擾 2.4GHz。接著檢查有沒有用延長線把接收器拉離主機,以及協調器旁邊有沒有 Wi-Fi 基地台。ZHA 使用者可以到 設定 > Zigbee 開「顯示地圖」看 LQI/RSSI,數值特別低的那一段就是問題所在。
-
Mesh 傳不到最遠的房間
記住 mesh 只靠「常時供電」的裝置接力,電池裝置不會幫忙轉發。所以在最遠房間裝十顆電池感應器,網路一樣長不過去。正解是在中段(走廊、樓梯口)裝一顆插電的 Zigbee 插座或燈泡。加完之後,最遠那些裝置可能需要重新配對或等一段時間才會自動改走新路徑。
-
Matter 裝置怎麼配對都失敗
照官方文件的必要條件逐項檢查:IPv6 有沒有在 設定 > 系統 > 網路 開啟(自動或靜態);mDNS/multicast 流量能不能在你的網路裡自由通行(有做 VLAN 或開了 AP 隔離就會擋掉);有沒有用手機的 Companion App 而不是瀏覽器;Android 的定位權限是不是設成「一律允許」;配對 Wi-Fi 版裝置時手機是不是在同一個 2.4GHz 網路上。這五項只要漏一項就會失敗。
-
買了裝置才發現被閘道品牌鎖死
症狀是:明明是 Zigbee 裝置,通用協調器卻配對不了,或配對後只能做最基本的開關,進階功能全部消失。這是廠商用私有指令的結果。能做的補救有兩條:一是查 Zigbee2MQTT 那邊有沒有對應的支援檔(社群常常會逆向出來);二是認賠買它的原廠閘道,看有沒有本地 API 可以接。長期解法只有一個——下次買之前先搜社群回報。
-
網路一斷,一半的裝置就死了
這是雲端依賴的典型症狀。用前面那個斷網演習找出是哪些,加上標籤標記起來。短期能做的是:把重要的自動化(安全、照明)改成用本地裝置觸發;長期就是逐步汰換。特別注意「門鎖」和「警報」這類東西,絕對不要讓它依賴雲端。
-
Modbus 設定寫了但整合沒起來
最常見的原因是:只寫了連線設定卻沒定義任何實體。官方文件說每個 modbus 設備至少要有一個實體,否則整合不會載入。另外 Modbus 設定改完必須重啟 Home Assistant,不是重新載入就好。序列埠的裝置路徑(
/dev/ttyUSB0)也可能因為插拔順序而改變。
常見問題
我可以同時用好幾種協定嗎?會不會打架?
Matter 出來了,那 Zigbee 是不是要被淘汰了?我現在還要買嗎?
Zigbee 協調器一定要用官方的嗎?網拍便宜的能用嗎?
我看到教學說要進「設定 > 附加元件」,但我的畫面找不到?
Zigbee 頻道跟 Wi-Fi 打架,我是不是該去改 Zigbee 頻道?
一台 ESP32 Bluetooth Proxy 可以接幾個藍牙裝置?
connection_slots 預設是 3 個,建議不要超過 5 個以免記憶體出問題,用 esp-idf 框架最多可以到 9 個,每個槽大約吃 1KB 記憶體。所以如果你有很多需要主動連線的裝置,正解不是把一台 proxy 的槽數開到爆,而是多放幾台 proxy 分散在不同房間。