第 15 章

通訊協定大百科

Wi-Fi、Zigbee、Z-Wave、Thread、Matter、藍牙、KNX、Modbus、MQTT⋯⋯這些名字到底差在哪?這一章把它們一次攤平比較,讓你在按下「加入購物車」之前就知道:這顆燈泡買回家會不會變成一塊廢鐵。看完你會有一張可以查一輩子的速查表,還有一套買設備前的自我檢查流程。

為什麼要學這個

你在第 14 章學會了怎麼在 Home Assistant 裡新增「整合(Integration)」。但整合是軟體層的事,這章要往下鑽一層:訊號到底是怎麼從你手機飛到那顆燈泡上的。

為什麼要管這麼底層的事?三個很痛的理由:

  • 買錯就是白買。網拍上一顆便宜的「智慧開關」,寫著支援語音助理,你買回家卻發現它只認自家 App 的雲端帳號,Home Assistant 根本抓不到。錢丟水裡。
  • 網路斷線就全家癱瘓。有些協定是「本地控制」,路由器對外斷線也照樣開燈;有些是「雲端控制」,中華電信一抽風你家玄關就變全黑。
  • 裝到第 20 個裝置才發現有人數上限。典型情境:全家買 Wi-Fi 插座,裝到第十幾個時路由器開始掉線,因為家用路由器能同時掛的裝置數量是有限的。這種坑要在買第一顆之前就避開。
觀念:協定(Protocol)就是「裝置之間講話用的語言 + 用什麼方式把聲音傳出去」。選協定就是在選你家的通訊基礎建設,跟選房子要不要拉網路線是同一個等級的決定。

讀完這章,你會有能力做這三件事:看到一個商品頁就判斷它能不能進 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)把訊號轉成網路封包再送進來。

提示:看到一個新協定,就用這三個問題套下去:「它用什麼傳?」「Home Assistant 有沒有對應的整合?」「中間需不需要多買一個盒子?」三題答完,你大概就知道值不值得買了。

兩個一定要分清楚的詞

名詞白話解釋為什麼你要在意
本地控制(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 RTURS-485 線可拉很長不適用要 USB 轉 RS-485 轉換器
Modbus TCP網路線/區網範圍不適用不用,直接走區網
MQTT區網範圍(它本身不是無線電)不適用要一台 broker(可裝在 HA 主機上)
純區網 HTTP區網範圍不適用不用

接下來這張表回答「所以我到底要怎麼把它接進 Home Assistant」:

協定常見品牌/裝置在 HA 裡怎麼接
Wi-FiTuya/塗鴉系、Shelly、TP-Link、小米系、各家掃地機多半有各自的整合,在設定 > 裝置與服務 > 新增整合搜尋品牌名。刷 ESPHome 或 Tasmota 韌體的自製裝置也走這條
ZigbeeIKEA、Aqara、Philips Hue、SONOFF、Tuya Zigbee 款插一支 Zigbee 協調器,用 ZHA 整合或 Zigbee2MQTT
Z-WaveAeotec、Fibaro、Zooz、Heltun插 Z-Wave 協調器,用 Z-Wave 整合(背後跑 Z-Wave JS)
Thread / MatterNanoleaf、Eve、Aqara 新款、SwitchBot 部分型號安裝 Matter 整合與 Matter Server,用手機 App 配對
藍牙 BLE小米溫濕度計、SwitchBot、各種藍牙體重計與植物感測器Bluetooth 整合 + 主機內建藍牙,或加 ESPHome Bluetooth Proxy
KNXABB、Gira、Jung、Schneider(多為建案/商辦)KNX 整合,透過 KNX IP 介面連線
Modbus電表、變頻器、PLC、工業級空調控制器、部分太陽能逆變器Modbus 整合,寫在 configuration.yaml
MQTTZigbee2MQTT、Tasmota、ESPHome 也可走、各種 DIY 裝置安裝 Mosquitto broker,再新增 MQTT 整合
純區網 HTTP部分 NAS、印表機、開源韌體裝置、自架服務官方整合,或用 rest_command 自己打 API
注意:同一個品牌常常同時賣 Wi-Fi 版和 Zigbee 版,外觀幾乎一樣,型號差一兩個字母。下單前把商品標題整行看完,不要只看圖片。

動手做:盤點你家現在跑哪些協定

在買新東西之前,先搞清楚你現在手上有什麼。這五步大概十分鐘就能做完。

  1. 打開整合列表,看看已經有哪些

    左側選單點設定,進入裝置與服務。這一頁列出所有已經接上的整合。把裡面出現的名字抄下來,例如看到「MQTT」「Zigbee Home Automation」「Bluetooth」,就代表你家已經在跑這些協定了。

  2. 檢查有沒有 Zigbee 或 Z-Wave 專屬頁面

    如果你已經插了 Zigbee 協調器並設定好 ZHA,設定選單裡會多出一個 Zigbee 項目;Z-Wave 設好之後同樣會出現 Z-Wave 項目。有沒有這兩個入口,就是最快判斷「我家有沒有這套網路」的方法。不同版本的選單位置可能微調,以你畫面上看到的為準。

  3. 數一數 Wi-Fi 裝置有幾台

    登入你家路由器的管理頁面,找「已連線裝置」或類似名稱的清單。把不是手機、電腦、電視的那些數出來——那些就是你的 Wi-Fi 智慧裝置。如果這個數字已經超過十幾台而你還打算繼續加,那接下來就該考慮改用 Zigbee 或 Thread 了。

  4. 把每個裝置標記成「本地」或「雲端」

    回到設定 > 裝置與服務,逐一點進整合。判斷方法很簡單:如果當初設定時要你輸入廠商 App 的帳號密碼、或是跳出網頁去廠商官網授權,那大概率是雲端;如果只要求你填一個區網 IP 或直接自動找到,那就是本地。

  5. 做一次斷網演習

    把路由器對外的網路線拔掉(不是關 Wi-Fi,是拔掉對外那條),維持你家內部區網。然後試著用 Home Assistant 開關每一個裝置。能動的就是真本地,轉圈圈然後失敗的就是雲端依賴。演習完記得把線插回去。

  6. 把結果記下來

    第 4 章教的標籤(Label)功能,幫雲端依賴的裝置加一個「雲端」標籤。之後停電或斷網時,你一眼就知道哪些東西會失效,也知道下次要優先汰換誰。

Zigbee 深入:協調器、路由器、頻道干擾

Zigbee 是台灣家庭最容易入手、裝置最便宜、電池最耐用的一套。但它有幾個地雷,踩到會讓你以為「Zigbee 好爛」,其實只是佈點沒做對。

三種角色:協調器、路由器、終端裝置

角色是什麼典型例子要注意
協調器 Coordinator整個網路的大腦,全家只能有一個插在 HA 主機上的 USB 接收器它掛了整個 Zigbee 網路就停擺
路由器 Router幫忙轉發訊號的中繼站Zigbee 燈泡、插座、常時供電的開關必須是「一直有電」的裝置才會當路由器
終端裝置 End Device只負責回報,不幫別人轉發電池款門窗感應器、溫濕度計、按鈕它不會擴大你的網路覆蓋
觀念:官方文件明講 Zigbee 路由器裝置「必須是一直保持可用的」。所以擴大 Zigbee 覆蓋範圍的正解不是買更強的協調器,而是在中間走廊、樓梯間多裝幾顆插電的 Zigbee 插座或燈泡,讓訊號有地方接力。

協調器怎麼選

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 線。

注意:ZBT-2 一次只能跑一種協定。官方文件寫得很白:它沒辦法同時當 Zigbee 協調器和 Thread border router。你要嘛用它跑 Zigbee,要嘛用它跑 Thread,兩個都要就準備買兩支。

頻道干擾:別急著改 Zigbee 頻道

Zigbee 和 Wi-Fi 都擠在 2.4GHz,所以互相干擾是常態。但官方 ZHA 文件的建議跟很多網路教學相反,它說的是:最佳做法是不要去改 Zigbee 頻道。ZHA 的「Smart」選項在建立網路時會掃描所有頻道,優先挑 15、20、25 這三個,這是一次性的動作。

如果真的一直有干擾,文件建議的順序是:先把協調器放遠離 Wi-Fi 基地台和其他 Wi-Fi 訊號源,還是不行的話,去改你家路由器的 Wi-Fi 頻道,而不是改 Zigbee 頻道。原因很現實:改 Zigbee 頻道通常意味著全部裝置要重新配對,那是一個下午的工。

USB 3.0 是隱形殺手

危險:官方文件明確警告:Zigbee USB 接收器只能插 USB 2.0 埠,不要插 USB 3.x 埠。USB 3.0 會產生大量 2.4GHz 頻段的雜訊,直接把你的 Zigbee 網路打殘。如果你的主機只有 USB 3 埠,就買一個有供電的 USB 2.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
適合誰第一次玩、想少踩坑、裝置都是主流品牌裝置雜、有冷門品牌、想要更細的調校
提示:選擇建議很簡單——第一次弄就選 ZHA,因為它少了兩個會壞的東西。等你哪天遇到「這顆感應器 ZHA 認不出來」,再考慮搬家到 Zigbee2MQTT。兩邊都用同一支協調器,換過去主要成本是全部裝置要重新配對。
注意:絕對不要同時開 ZHA 和 Zigbee2MQTT 去搶同一支 USB 接收器。一支協調器同時間只能被一個軟體使用,兩個一起開的結果是兩邊都不能用。

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,干擾問題天生就少一大半。

買之前先搞清楚頻段

危險:Z-Wave 用的是低於 1GHz 的頻段,而且不同地區用的頻率不一樣。歐規、美規、澳規的裝置彼此完全不能通訊。從國外網站下單前,一定要確認你買的協調器和裝置是同一個地區版本,買錯不是「效果差一點」,是「完全連不上」。台灣市面上流通的版本不固定,跟賣家問清楚。

在 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)
GoogleNest Hub 第 2 代、Nest Hub Max、Nest Wifi Pro、Nest Wifi、Google TV Streamer (4K)
AppleHomePod 第 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 章有講。

  1. 先裝好 Matter 整合

    設定 > 裝置與服務,新增 Matter 整合。如果你跑的是 Home Assistant OS,系統會問你要不要安裝官方的 Matter Server,按提交讓它自己裝就好。這個 Matter Server 是一個獨立跑的程式,負責把你的 Matter 網路(術語叫 Fabric)跟 Home Assistant 接起來。

  2. 確認 IPv6 有開

    官方文件把這列為必要條件:IPv6 必須啟用。檢查路徑是 設定 > 系統 > 網路,把 IPv6 設成自動(Automatic)或靜態(static)。這一步沒做,後面配對會莫名其妙失敗。

  3. 用手機打開 Companion App

    在手機的 Home Assistant App 裡,進入 設定 > Matter,點新增裝置。Android 使用者還要把 App 的定位權限設成「一律允許」,否則掃不到裝置。

  4. 選擇這是新裝置還是二手

    如果裝置是全新沒被別的平台加入過,選「不,這是新的」(No, it's new.),然後用手機相機掃裝置上的 QR code,或是點「更多選項」手動輸入配對碼。最後按加入 Home Assistant

  5. 如果裝置已經在別的平台

    裝置如果已經加進 Apple 家庭或 Google Home,選「是,它已在使用中」(Yes, it's already in use),指出它目前接在哪個控制器上,然後照畫面指示做。實際流程是到那個平台的 App 裡產生一組分享用的 QR code 或配對碼,再拿到 Home Assistant 這邊用。Matter 的一大優點就是同一個裝置可以同時被多個平台控制。

注意:Matter 很吃 mDNS/multicast 這種區網廣播封包。官方文件要求這類流量必須能在你的網路裡自由通行。如果你家有做 VLAN 切網、或路由器開了「AP 隔離」,Matter 幾乎一定會配對失敗。另外配對 Wi-Fi 版 Matter 裝置時,手機要跟裝置在同一個 2.4GHz 網路上。
觀念:Matter 支援的裝置類型一直在擴充。目前官方文件列出的涵蓋燈、開關、鎖、窗簾、風扇、空調、熱水器、感應器、二元感應器、按鈕、警報器、閥門、掃地機器人、電動車,還有一些通用型態(數值、選項、更新)。但實務上「支援」不等於「每個功能都能用」——很多裝置基本開關沒問題,某些原廠 App 才有的花式功能就是抓不到。買之前建議搜一下那個型號在社群的實際回報。

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):最迷人的部分

觀念:官方文件說明 MQTT 自動探索預設就是開啟的,探索主題的預設前綴是 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)、headerspayloadverify_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。

提示:如果你家已經有幾顆 Shelly Gen2 以上的智慧開關藏在牆裡,它們可以順便當藍牙代收員,等於免費升級。這是很多人不知道的隱藏功能。

自己做一個 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 的天線。
注意:連線 slot 是會用完的。一台 proxy 開 3 個 slot,代表它同時最多維持 3 個「主動連線」的裝置。如果你家有五把藍牙鎖,就要多放幾台 proxy 分攤。只是被動聽廣播的溫濕度計不佔 slot,那種你放幾十顆都沒關係。

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。

觀念:KNX 的專案設定通常是用一套叫 ETS 的專業軟體做的,那是水電/系統商的工具。如果你家是建商裝好的,去跟施工方要 ETS 專案檔或至少要一份群組位址表,這會省下你幾十小時的猜測。加密設定的部分,官方文件說明可以從 ETS 匯出 Keyring 檔再匯入 Home Assistant,路徑是在 KNX 整合的三點選單選重新設定,再選匯入 KNX Keyring。

Modbus:工業設備的通用語

Modbus 是工業界的老爺爺協定,1979 年就有了,到現在電表、變頻器、PLC、大型空調主機、太陽能逆變器還是滿滿都是它。它極度單純:設備裡面有一堆編號的格子(暫存器/Register),你去讀某個編號的格子,拿到一個數字,然後你自己要知道那個數字代表什麼。

Modbus 有兩種常見接法:

  • Modbus RTU:走 RS-485 實體線,通常要買一個 USB 轉 RS-485 的轉換器插在主機上。線可以拉很長,抗干擾好。
  • Modbus TCP:走網路線,設備有自己的 IP。設定簡單很多。

官方 Modbus 整合文件目前是只能寫 YAML,改完要重啟 Home Assistant 才生效。支援的連線型態有 tcpudprtuovertcpserial 四種。最小設定像這樣:

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_inputcoilholdinginput依平台而定
slave / device_address設備在匯流排上的編號1
scan_interval多久去讀一次(秒)15

目前官方文件說支援七種實體平台:感測器、開關、二元感測器、空調、窗簾、風扇、燈。

注意:官方文件有一條很容易踩的規則:每一個 modbus 設備底下至少要定義一個實體,否則整個整合不會載入。所以不要先寫一個空的連線設定想說之後再補,那樣連線根本不會起來。
危險:Modbus 是可以「寫入」的。對著工業設備寫錯暫存器,輕則參數跑掉,重則設備損壞或造成危險。第一次接觸請只做讀取(sensors:),要寫入之前務必拿到設備的暫存器對照表,並且跟設備管理人確認過。

買設備前的五個檢查與選購決策流程

這一段是全章最實用的部分。把它存成書籤,每次下單前跑一遍。

五個檢查

  1. 它到底是哪個協定?

    商品標題和規格表裡找。找不到「Zigbee」「Z-Wave」「Matter」「Thread」「藍牙」這些字,只寫「智慧」「WiFi 連線」「手機遠端」,那就當它是 Wi-Fi 雲端裝置。同型號有不同協定版本時,型號尾巴的字母通常就是關鍵。

  2. 能不能不靠雲端運作?

    看有沒有寫「本地控制」「Local API」「Local control」。或者反過來找警訊:如果規格寫「需搭配 XX App 使用」「需註冊帳號」,多半有雲端依賴。Matter 認證的裝置在這方面比較有保障,因為 Matter 本身就是設計成本地運作的。

  3. Home Assistant 有沒有對應的整合?

    下單前先到 home-assistant.io/integrations/ 搜品牌名。有官方整合最好;只有 HACS 社群整合的話,順便看一下那個專案最近有沒有在更新,半年沒更新的要小心。

  4. 要不要多買一個閘道器?

    有些品牌的 Zigbee 裝置會綁自家閘道。如果你已經有通用的 Zigbee 協調器,多數狀況下可以直接配對,不用買它的閘道;但也有品牌會用私有指令讓通用協調器只能做基本開關。買之前搜「品牌名 + ZHA」或「品牌名 + Zigbee2MQTT」看社群回報。

  5. 壞掉之後買得到嗎?

    選一個在台灣買得到、社群討論度高的型號,比選一個規格漂亮但只有一家海外賣的好。三年後你要加裝第二顆時會感謝自己。

選購決策流程

照著這個順序問自己,答案就出來了:

情況建議走哪條路理由
裝置要用電池,而且要裝很多顆(感應器、按鈕)Zigbee 或 ThreadWi-Fi 太耗電,電池款根本做不出來或撐不久
只要裝一兩個,而且位置就在路由器旁邊Wi-Fi 也可以不用多買協調器,最省事
你已經有 Zigbee 協調器繼續買 Zigbee邊際成本最低,而且每加一顆插電裝置 mesh 就更穩
你家已經有 HomePod mini 或 Nest Hub可以考慮 Thread + Matterborder router 已經有了,等於省一筆
你需要跨平台(家人用 iPhone,你用 Android)Matter同一個裝置能同時被多個平台控制
要接電表、逆變器、工業設備Modbus那個世界就是講 Modbus
建案已經預埋 KNXKNX拆掉重做不划算,直接接上去
單純想知道房間溫濕度,預算超低藍牙 BLE + proxy感測器最便宜,proxy 一片 ESP32 就搞定
提示:給第一次規劃的人的懶人建議:主力選一套 Zigbee(買一支官方或推薦清單上的協調器),Wi-Fi 只用在少數固定接電、耗流量大的東西(攝影機、掃地機),藍牙用來補溫濕度感測。這樣的組合便宜、本地、好維護,而且未來要加 Thread 也不衝突。

常見卡關

  1. 某個裝置常常顯示「離線/不可用」

    先分辨是「全部裝置都掉」還是「只有這一個掉」。全部掉就查協調器或閘道本身(USB 有沒有鬆、是不是插到 USB 3 埠、有沒有被別的軟體佔用)。只有一個掉,通常是訊號問題:它離最近的路由器裝置太遠,或中間隔了承重牆、金屬門、鏡子、魚缸。做法是在中間補一個常時供電的裝置當接力點。電池款裝置也要先確認不是單純沒電了——很多人花三小時查網路,結果是電池沒電。

  2. Zigbee 裝置離協調器只有五公尺還是不穩

    檢查 USB 埠。官方文件明確講不要插 USB 3.x 埠,USB 3 產生的雜訊會直接干擾 2.4GHz。接著檢查有沒有用延長線把接收器拉離主機,以及協調器旁邊有沒有 Wi-Fi 基地台。ZHA 使用者可以到 設定 > Zigbee 開「顯示地圖」看 LQI/RSSI,數值特別低的那一段就是問題所在。

  3. Mesh 傳不到最遠的房間

    記住 mesh 只靠「常時供電」的裝置接力,電池裝置不會幫忙轉發。所以在最遠房間裝十顆電池感應器,網路一樣長不過去。正解是在中段(走廊、樓梯口)裝一顆插電的 Zigbee 插座或燈泡。加完之後,最遠那些裝置可能需要重新配對或等一段時間才會自動改走新路徑。

  4. Matter 裝置怎麼配對都失敗

    照官方文件的必要條件逐項檢查:IPv6 有沒有在 設定 > 系統 > 網路 開啟(自動或靜態);mDNS/multicast 流量能不能在你的網路裡自由通行(有做 VLAN 或開了 AP 隔離就會擋掉);有沒有用手機的 Companion App 而不是瀏覽器;Android 的定位權限是不是設成「一律允許」;配對 Wi-Fi 版裝置時手機是不是在同一個 2.4GHz 網路上。這五項只要漏一項就會失敗。

  5. 買了裝置才發現被閘道品牌鎖死

    症狀是:明明是 Zigbee 裝置,通用協調器卻配對不了,或配對後只能做最基本的開關,進階功能全部消失。這是廠商用私有指令的結果。能做的補救有兩條:一是查 Zigbee2MQTT 那邊有沒有對應的支援檔(社群常常會逆向出來);二是認賠買它的原廠閘道,看有沒有本地 API 可以接。長期解法只有一個——下次買之前先搜社群回報。

  6. 網路一斷,一半的裝置就死了

    這是雲端依賴的典型症狀。用前面那個斷網演習找出是哪些,加上標籤標記起來。短期能做的是:把重要的自動化(安全、照明)改成用本地裝置觸發;長期就是逐步汰換。特別注意「門鎖」和「警報」這類東西,絕對不要讓它依賴雲端。

  7. Modbus 設定寫了但整合沒起來

    最常見的原因是:只寫了連線設定卻沒定義任何實體。官方文件說每個 modbus 設備至少要有一個實體,否則整合不會載入。另外 Modbus 設定改完必須重啟 Home Assistant,不是重新載入就好。序列埠的裝置路徑(/dev/ttyUSB0)也可能因為插拔順序而改變。

常見問題

我可以同時用好幾種協定嗎?會不會打架?
可以,而且幾乎每個人最後都是混用。Home Assistant 的整個設計就是為了把不同協定的裝置放在同一個介面裡。實務上完全不衝突——你可以在同一個自動化裡,用藍牙溫濕度計當觸發條件,去開一顆 Zigbee 燈,同時推播到手機。唯一要注意的是無線電層面的干擾:Wi-Fi、Zigbee、Thread、藍牙都擠在 2.4GHz,裝置太多太密時要注意協調器的擺放位置。
Matter 出來了,那 Zigbee 是不是要被淘汰了?我現在還要買嗎?
短期內不用擔心。Zigbee 裝置的數量、價格和可取得性目前都還是最有優勢的,而且 Home Assistant 對 Zigbee 的支援非常成熟。Matter 和 Thread 是很好的方向,但生態還在長,某些型號的進階功能支援度不一定完整。比較穩健的做法是:現在要大量佈感應器就用 Zigbee,遇到你剛好想買的東西有 Matter 版本、價格也不貴,那就買 Matter 版。兩套並存完全沒問題。
Zigbee 協調器一定要用官方的嗎?網拍便宜的能用嗎?
不一定要官方的。Home Assistant 的 ZHA 文件有一份明確的推薦清單,包含 Silicon Labs EmberZNet 系列(如 Connect ZBT-2、ZBT-1、SONOFF ZBDongle-E、SMLIGHT SLZB-07)、Texas Instruments 的 CC2652/CC1352 系列,以及 ConBee III。清單上的機種都可以放心買。要避開的是文件列為不再推薦的舊機種,例如 ConBee II、RaspBee II、SONOFF ZBBridge、HUSBZB-1、ZiGate 系列等。網拍上特別便宜的常常就是這些舊型號。
我看到教學說要進「設定 > 附加元件」,但我的畫面找不到?
Home Assistant 在 2026.2 版把「附加元件(Add-on)」正式改名成「應用程式(App)」,選單路徑變成 設定 > 應用程式(英文介面是 Settings > Apps,中文翻譯用詞可能還會微調)。官方說明的理由很直白:多數人都知道「App」是什麼,打開手機的 App 商店、挑一個、裝起來,就是這種感覺。所以你看到舊教學寫 Add-on 的地方,現在都要去 App 那邊找,東西本身沒變,Mosquitto、Z-Wave JS、OpenThread Border Router 都還在。順帶一提,同一版也把新的「Home 儀表板」設為新安裝的預設,舊版的 Overview 樣板還可以從 設定 > 儀表板 > 建立 選「Overview (legacy)」拿回來。
Zigbee 頻道跟 Wi-Fi 打架,我是不是該去改 Zigbee 頻道?
官方 ZHA 文件的建議剛好相反:最佳做法是不要去改 Zigbee 頻道。ZHA 的「Smart」選項在建立網路時就會掃描所有頻道並優先選擇 15、20、25。如果真的持續有干擾,建議的順序是先把協調器放遠離 Wi-Fi 基地台,還是不行的話去改你家路由器的 Wi-Fi 頻道。原因很實際:改 Zigbee 頻道通常會讓所有裝置需要重新配對,代價太高。
一台 ESP32 Bluetooth Proxy 可以接幾個藍牙裝置?
要分兩種情況。只是被動聽廣播的裝置(溫濕度計那種)數量幾乎沒有限制,因為根本不需要建立連線。需要「主動連線」的裝置才會佔用連線槽(connection slot),ESPHome 文件說 connection_slots 預設是 3 個,建議不要超過 5 個以免記憶體出問題,用 esp-idf 框架最多可以到 9 個,每個槽大約吃 1KB 記憶體。所以如果你有很多需要主動連線的裝置,正解不是把一台 proxy 的槽數開到爆,而是多放幾台 proxy 分散在不同房間。
KNX 和 Modbus 這種東西,我一般家庭有可能用到嗎?
KNX 通常出現在有做智能化的新建案或商辦,一般公寓自己拉的機率低。但如果你家是預售屋交屋時就有中央控制面板,很值得去問建商是不是 KNX,是的話你可以把它整個接進 Home Assistant,那會比廠商給的 App 好用一百倍。Modbus 的機會反而比較高——很多太陽能逆變器、儲能設備、分電箱電表、大樓中央空調都是 Modbus,如果你想在 Home Assistant 裡看用電資料,很可能就會遇到它。
MQTT 聽起來很萬能,那我是不是全部裝置都該用 MQTT?
不是。MQTT 是一種「訊息傳遞方式」,不是無線電協定,它本身沒辦法讓你的燈泡憑空多出通訊能力。它的用途是:當某個系統(例如 Zigbee2MQTT、Tasmota、你自己寫的樹莓派程式)需要跟 Home Assistant 交換資料時,MQTT 提供一條乾淨的通道,而且有自動探索功能,裝置能自己冒出來。如果你的裝置已經有官方整合,直接用整合就好,不需要為了用 MQTT 而用 MQTT,那只是多一個會壞的中間層。
我想同時用 Zigbee 和 Thread,一支 USB 棒夠嗎?
以官方的 Connect ZBT-2 來說,答案是不夠。官方文件明講它沒辦法同時跑 Zigbee 和 Thread,一次只能選一種。所以兩種網路都要的話,最單純的做法就是準備兩支接收器。另一個省錢的方向是:如果你家已經有 HomePod mini、Apple TV 4K、Nest Hub 第 2 代這類裝置,它們本身就是 Thread border router,那 USB 棒就專心跑 Zigbee 就好。