Home Assistant 如何透過 Zigbee2MQTT 接入 (幾乎) 所有 Zigbee 設備 – Home Assistant 手把手教學 EP 2

在著手規劃智慧家庭的你,肯定苦惱過要怎麼選擇智慧裝置品牌,這麼多品牌都有推出 Zigbee 裝置,該如何選擇?每個品牌都要透過各自的 APP 進行設定,是否也讓你覺得困擾?

今天就來介紹在 Home Assistant 如何透過 Zigbee2MQTT 接入幾乎所有 Zigbee 設備,讓你徹底擺脫品牌 APP 們的束縛!如果你有 Aqara、Tuya 或其他品牌 Zigbee 裝置想接入 Home Assistant,那今天的教學肯定能幫到你!

概念:什麼是 Zigbee?什麼是 Zigbee2MQTT?

Zigbee

Zigbee 是一種智慧家庭裝置通訊協定,常見的智慧家庭通訊協定有:WiFi、Bluetooth、Zigbee、zWave、Matter,而 Zigbee 是其中唯二建議優先考慮的通訊協定 (另一個是 Matter),原因請參考:什麼是智慧家庭?智慧家庭該怎麼開始?智慧家庭必備的三大元素,懶的程度決定家的智慧程度 🤣 – Smart Home 智慧家庭 EP 1

Zigbee 採用 Mesh 架構,在 Zigbee Mesh 網路環境中各節點可以建立複數連結,各個裝置只要不和 Zigbee 網路環境完全中斷就可以正常運作,網路環境中有三個不同的角色:Coordinator、Router、End device

  1. Coordinator:也就是「網關」,是整個 Zigbee 網路環境的核心,所有 Zigbee 裝置都會連接上 Coordinator。
  2. Router:也稱「中繼器」,可以幫助擴展 Zigbee 網路覆蓋範圍,非電池供電的 End device 很常同時也是 Router,例如:Zigbee 開關、插座。
  3. End device:整個 Zigbee 網路環境中最末端的裝置。

整個 Zigbee mesh network 大概是下圖這樣的結構,Zigbee 通訊覆蓋範圍可以透過 Router 進行擴展,遇到牆也可以利用 Router 加強 end device 連線品質。

Zigbee mesh 網路拓墣

Zigbee2MQTT

Zigbee2MQTT 也就是指 Zigbee to MQTT,通常會用 Z2M 簡稱,簡單來說是個 Zigbee 與 MQTT 溝通的橋樑,詳細資訊可以參考 Zigbee2MQTT 官網:https://www.zigbee2mqtt.io/,使用 Zigbee2MQTT 作為家中 Zigbee 裝置連線的手段雖然不一定需要對 Zigbee2MQTT 技術有完整的理解 (我就是這樣 😂),但一定要先確認購買的 Zigbee 裝置是 Zigbee2MQTT 有支援的,選購裝置前記得先參考:https://www.zigbee2mqtt.io/supported-devices/

透過 Zigbee2MQTT 接入有什麼好處?

以 Aqara 為例,Aqara 裝置接入 Home Assistant 最入門的方式是透過 “Aqara Gateway” 這個第三方 plug-in 來轉接入 Home Assistant,不過裝置還是要先接入 Aqara 平台,也就是裝置資訊及資設定實際上是儲存在 Aqara 雲端再同步給 Home Assistant,最終達成 cloud control 和 local control 同時併行 (感謝 @Alexander 校正),流程大概像這樣:

Aqara 雲端服務

而透過 Zigbee2MQTT 接入則是讓裝置直接接入 Home Assistant,達成純粹的 local control,不用擔心資料安全問題,這種方式 Home Assistant 和裝置之間的溝通流程大概是這樣:

Home Assistant local 本地端控制

透過上面兩個流程圖應該可以清楚看到兩種接入方式存在本質上的差別,使用 Zigbee2MQTT 幾乎沒有任何缺點,所以建議 Zigbee 裝置都優先考慮有 Zigbee2MQTT 方式接入 Home Assistant!

Step 0. 佈建 Home Assistant、準備 Zigbee2MQTT 網關

Step 0-1. 佈建 Home Assistant

已經佈建好 Home Assistant 的話可以跳過這一步,或是可以參考:Home Assistant 安裝步驟詳解,快速打造智慧家庭 – Home Assistant 手把手教學 EP 1

Step 0-2. 準備 Zigbee2MQTT 網關

Zigbee2MQTT 網關可以在各大網購通路搜尋並購買適合的 Zigbee2MQTT,這裡提供蝦皮搜尋結果參考。

Zigbee2MQTT 網關有幾種安裝、連線方式:USB 直插、有線網路、WiFi,建議優先考慮 USB 或有線乙網路,連線會比 WiFi 來得更穩定,我是選用 USB 直接插在安裝了 Home Assistant 的樹莓派上,除了比較不好看之外,基本上沒什麼缺點。


Step 1. 安裝 Mosquitto (MQTT Broker)

Step 1-1. Home Assistant ➜ 左側「設定」「附加元件」

Home Assistant 新增 MQTT

Step 1-2. 進入「附加元件商店」

Home Assistant 新增 MQTT

Step 1-3. 搜尋、安裝 Mosquitto

Home Assistant 新增 MQTT

Step 1-4. 啟動 Mosquitto

啟動完成之後如下圖:

※ 記得看一下「日誌」有沒有任何錯誤訊息,沒有錯誤訊息就沒問題囉!

Home Assistant 新增 MQTT

Step 2. 安裝 Zigbee2MQTT

Step 2-1. 新增 Zigbee2MQTT repository

Zigbee2MQTT 屬於第三方 Add-on,非 Home Assistant 官方內建,先到 Zigee2MQTT Github 頁面 複製連結。

Home Assistant 新增 Zigbee2MQTT

接著回到 Home Assistant 附加元件商店 (Add-on store) 點擊右上角選擇「儲存機制 (Repositories)」,將剛剛複製的連結填入輸入框,接著按「新增 (ADD)」

Step 2-2. 安裝 Zigbee2MQTT

Repository 新增完成後會在附加元件 (Add-on) 清單中新增三項:Zigbee2MQTT、Zigbee2MQTT Edge、Zigbee2MQTT Proxy,選擇「Zigbee2MQTT」安裝。

Home Assistant 新增 Zigbee2MQTT

Step 3. 設定/啟動 Zigbee2MQTT

接下來這段算是全部最複雜的部分,不過還好只需要設定一次,加油!

Step 3-1. 進入 Zigbee2MQTT 設定 (Configuration)

Home Assistant 新增 Zigbee2MQTT

Step 3-2. 設定 server

如果是使用 USB 直插的 Zigbee2MQTT 網關,這裡就輸入 “mqtt://core-mosquitto”

如果是使用有線網路、WiFi 的 Zigbee2MQTT,這裡就需要輸入 Home Assistant 的 IP (可以從路由器去查,記得要在路由器設定固定 IP),格式是 “mqtt://xxx.xxx.xxx.xxx”

Home Assistant 新增 Zigbee2MQTT

Step 3-3. 設定 user, password

user, password 這裡輸入你安裝 Home Assistant 時設定的帳號、密碼。

Home Assistant 新增 Zigbee2MQTT

Step 3-4. 設定 port

這裡依網關類型分為兩種:USB 直插、網路連結 (有線乙太網路 or WiFi),這裡就看你是購買哪種網關擇一參考操作。

如果你是「USB 直插網關」

Home Assistant「設定」➜「系統」➜「硬體」➜「所有硬體」➜ 搜尋 “USB”,找到你插在 Home Assistant 主機上的 USB 網關的 “裝置路徑” (如果不知道怎麼辨識,那就看一下插上前後多了哪個裝置)

Home Assistant 新增 Zigbee2MQTT

將找到的 “裝置路徑” 填入 Zigbee2MQTT 設定中 serial 區段 port: 後面 (如下圖),最後按下儲存 (Save)。

Home Assistant 新增 Zigbee2MQTT

如果你是「網路連結 (有線網路 or WiFi)」

  • 從路由器上找到網關 IP (記得設定固定 IP,否則很有可能會因為時常連不上而需要頻繁更換)。
  • 參考購買的網關的設定教學,確定該網關使用幾號 port。
  • 將 IP 和網關使用的 port 號 (不同家做的網關可能使用不同 port) 組合後填入 Zigbee2MQTT 設定中 serial 區段 port: 後面 (如下圖)
    舉例來說我路由器看到網關 IP 是 “192.168.50.18”,而網關使用的 port 是 “6638”,這時候我要填入的值就是 tcp://192.168.50.18:6638。
  • 最後按下儲存 (Save)。
Home Assistant 新增 Zigbee2MQTT

Step 3-5. 啟動 Zigbee2MQTT

在 Zigbee2MQTT「info」把 Start on boot、Watchdog、Auto update、Show in sidebar 這四項打開,並啟動 (Start),接著查看一下「Log」有沒有任何錯誤,如果正常啟動,接下來就可以進到 Web UI 開始接入設備啦!

Home Assistant 新增 Zigbee2MQTT

Step 4. 將設備接入 Zigbee2MQTT

恭喜你已經完成最麻煩的步驟!接下來就可以使用 Zigbee2MQTT 提供的操作介面進行裝置接入。

Step 4-1. Zigbee2MQTT 開啟「允許裝置加入」

進入 Zigbee2MQTT 後點擊「允許新裝置配對」,這時候右上角會出現一個綠色的提示訊息”Zigbee: allowing new devices to join.” 這時候 Zigbee2MQTT 就已經開啟配對模式了。

Zigbee2MQTT 新增設備

Step 4-2. Zigbee 設備開啟配對模式

以 Aqara 智能開關為例,開啟配對模式的方式是長按 5 秒直到藍色指示燈閃爍;不同 Zigbee 設備開啟配對模式的方式不同,配對前先參考使用手冊確認配對方式。

Step 4-3. Zigbee 設備配對成功

配對時畫面右上角會出現配對狀況訊息,基本上看到都是綠燈就沒問題,如果有出現錯誤,有幾種可能問題和可能的嘗試:

  1. 嘗試重複前面兩個步驟重新配對
  2. 嘗試把要配對的裝置離網關進一點
  3. 你買的裝置可能不支援 Zigbee2MQTT,參考這段
Zigbee2MQTT 新增設備

以上就是 Home Assistant 透過 Zigbee2MQTT 接入 Zigbee 設備的方法,從此以後就不需要每個品牌都一個網關啦!也可以享受 local control 的低延遲囉!

53 COMMENTS

  1. Neil, cloud control 和 local control 同時併行會有延遲現象嗎?因為我有國際冷氣、Dyson空清機要接入HA,他們不支援Zigbee,好像也只能使用雲端、本地同時並行的方式接入HA,我的想法是正確的嗎?應該沒法透過Z2m方式接入HA吧!?

  2. Neil你好,我是剛入HA的小白,有些觀念還是不清:
    想確認一下,若我入手不同廠牌的智能設備,是否仍需搭配該廠牌網關?
    只是控制的介面可統一由HA控制呢?

    • Hi Phlato, 原廠牌網關可用可不用
      1. 用原廠牌網關:這就要看該廠牌有沒有對應的 add-ons 可以整合進 HA,像是 Aqara gateway, Xiaomi Miio(小米)…等
      2. 不用原廠牌網關:裝置就選 Z2M 有支援的裝置 (大部分 Zigbee 裝置都支援),或是 Matter 連線裝置
      我會建議走 2. 不用原廠牌網關
      這樣操控的延遲相對低,安全性也會更高,更重要的是不用每個廠牌的 APP 都安裝,省事很多

      • Hi, Neil,感謝回覆
        想再請教一下,如果選「2.不用原廠牌網關」的話,是否代表我仍至少需要一個網關?比如我現在屋內已有Philips Hue的Bridge,我可以買其他也是Zigbee協儀的裝置透過Philips的Bridge來控制即可;
        抑或是其實HA的主機已有網關的功能,只要選Z2M有支援的裝置就可以透過HA主機來控制呢?

  3. 超菜雞發問新手問題,煩請Neil解惑
    請教如果要使用Aqara的M3網關的話,還有需要購買Zigbee2MQTT網關嗎?
    M3有支援matter跟MQTT,未來主流應該也都是走matter? 若是這樣M3是否已經足夠?

    • Hi Frank,
      我建議裝置都直連 HA,就不需要 Aqara 網關了,除非有特殊需求 (我是想不到XDD);如果直連 HA,Zigbee 裝置就需要 Z2M 網關,Matter 就直連 HA 即可

  4. Neil,請問一下
    我目前是使用VIZO zigbee版本開關搭配有線homekit網關接入Homekit使用中,
    您有在這樣的狀態下暫時不使用z2m的網關,而是把所有設備包含網關先全部接入Tuya app然後再透過Tuya帳號把所有裝置接入HA嗎?
    因為我現在遇到的問題是,我在Tuya的app中的”homekit訊息”有看到我所有的zigbee設備,但卻都顯示設備已離線,導致無法成功接入tuya的app,
    請問這會是因為設備已接入Homekit而造成無法同時在Tuya裡接入嗎? 謝謝

    • Hi Neil,
      不好意思,忘了自己在另外一篇文章已經有詢問,也看到您的回覆了,請忽略我這篇留言😓

  5. Hi Neil:
    請問一下,aqara fp1e可以接入 HA嗎?我 Zigbee2Mqtt找不到這個裝置說。

    • Hi 嘉嘉, FP1E 我自己沒用過,只有用過 FP1,但看起來 FP1E 有支援 Matter,可以試試看用 Matter 接入 HA

    • Hi Eric, 這就看你買的電機是使用哪種方式連線,Zigbee 的話就直接走 Z2M 接進 HA,Matter 也可以直連 HA,WiFi 可能就需要自家網關

  6. 我想請教一下看完兩篇後 如果我目前只有nvr攝影機 小米攝影機 還有nas 跟閒置電腦一台
    我這樣想要買燈 燈條 開關 人體感測器 雨水感應器 等等 我還需要購買什麼? 以及依照文中設定做嗎?

  7. 您好:
    想問 下 文章中提到
    參考購買的網關的設定教學,確定該網關使用幾號 port。
    要怎麼找到port的資訊呢? 我怎麼番都找不到
    使用的網關是 : zemismart m1

  8. 大神你好,想請問z2m目前只支援vizo的單火開關嗎?查支援設備的網站是只有顯示一個vizo的開關,但詢問vizo客服人員給的回覆是:
    確定能進HA有四種途徑
    1. 透過Tuya IoT方案(此方案須付費訂閱)
    2. Wi-Fi設備:透過Localtuya整合(實測開關、插座可以運作)
    3. Zigbee設備:購買Z2M網關透過Zigbee to mqtt整合到網關內
    4. 反接入:將Vizo有線網關接入Vizo App並不要接入HK,隨後再由HA新增HK裝置將設備帶入HA中

    看起來又好像都可以連入z2m

  9. 請問大神。我可以簡單理解使用z2m基本可以取代各廠牌(有支援Zigbee)的網關, 只是有些細緻功能可能會沒有
    這樣對嗎?

  10. 小白問個弱弱的問題,
    請問在示範的視窗是電腦螢幕還是手機螢幕,我準備買樹莓派4來使用HA,需要再另外購買螢幕嗎?

    • 是電腦螢幕喔,用家裡任何一台電腦連上同一個區網就可以操作了,樹莓派不需要額外接螢幕

  11. Hi Neil哥,
    請問Aqara全系列zigbee產品是不是都要透過Aqara自家網關?
    因為Zigbee2MQTT官網supported devices頁面上找不到Aqara
    但是上面教學(Step 4-2)卻又是用Aqara開關當範例
    想問一下偵測到的製造商是哪一家
    謝謝!

  12. 感謝教學, 想請教將zigbee設備透過z2m網關加入HA後, 還需要透過各家APP去設定詳細的功能嗎?
    例如: Vizo Zigbee 零火線智慧開關設定
    看Vizo開關的使用說明是要先用Vizo app加入網關, 再把開關加入網關的子設備裡才能設定雙切之類的功能
    那使用z2m網關, 是讓Vizo app把z2m網關加進app裡面嗎?
    還是如開頭詢問的, HA就能做這些設定?
    感謝

    • Hi Stan, 接 Z2M 就不用 Vizo 網關囉,但會少一些功能,像是開關上的小 LED 指示燈我目前還沒找到 Z2M 上怎麼開關;雙切就用 HA 的 automation 設定

      • Hi Neil哥,
        請問方便分享VIZO開關在HA上裝置頁面的截圖嗎?
        我最近在用HA控制小米智能開關,在裝置頁面上有個 Indicator Light, 讓它維持開啟這樣指示燈就會正常了
        不確定VIZO有沒有同樣的控制項目

      • Hi Mark, 下面截圖給你參考,如果你說的是開關上的指示燈,我 Vizo 目前關燈的時候都會亮指示燈,反而是還沒找到怎麼關指示燈有點煩惱 XDD
        Vizo 裝置截圖參考

      • Hi Neil哥,
        感謝回覆,我同步詢問VIZO原廠:指示燈需要用VIZO網關+APP才能控制
        這確實就是比較細緻的功能了

  13. 感謝教學~請問Vizo的開關可以支援ZtM嗎? 感應速度會很慢嗎? 看他們家的影片開關會有很大一聲da的聲音,實際使用時也是這樣嗎~~謝謝!

    • Vizo 開關有支援 Z2M;如果是用 Home Assistant 透過 Z2M 控制就會是 local control,反應速度很快;Da 聲確實有,我自己是沒有覺得很大聲,但這可能很看人XDD

  14. 如果在外租屋使用公用網路 但是自己有買一台路由器 通過wifi連到自己的路由器這樣ip位址是跟著共用網路的位子 還是我路由器上面的ip位子

  15. Neil 您好
    我有看你們YOUTUBE的影片
    腦袋還是不清楚
    想像您請問
    像你們家裡有裝VIZO的智能開關
    是有Zigbee2MQTT就不用再買它的HomeKit有線網關和Zigbee有線網關了嗎?

    像設定這個智能開關
    除了黑莓派 開關 Zigbee2MQTT 以外
    能不能請您告訴我 我應該準備哪些工具呢?
    我實在是個菜鳥⋯⋯
    沒有清單第一次還真不知道怎麼買

  16. 感謝詳細的文章~ 不好意思有好幾個問題:
    我沒有用過zigbee以及z2m, 目前只簡單用homebridge加上mqtt接Homekit,請問 z2m 的做法有沒有建議用Homebridge或Home Assistant呢? z2m您有試過配合homebridge呢?

    另外是我目前還沒有任何zigbee的東西,請問您的zigbee usb dongle 是買哪一支呢? 有沒有建議這個時間點買哪一個呢?
    我預計想安裝在NAS (Synology) 上面使用

    • @Timothy 嗨嗨
      我是建議走 Home Assistant (HA),然後整個智慧家庭中樞就以 HA 為主,Automation 設定也在 HA,Homekit 就只提供介面操作,這樣未來應變比較靈活一點,Zigee 裝置、HA、Homekit 之間的關係大概是這樣:
      1. Zigbee 裝置透過 Z2M 接入 HA
      2. HA 使用 Homekit bridge 將裝置同步到 Homekit
      3. Homekit 和 HA 都能對裝置進行操作

      Zigbee 網關我是用「cc2652p zigbee2mqtt網關【usb版】 Homeassistant Z2M網關」不過已經是一年前買的了,現在可能有新的型號,另外如果你是想接在 NAS 上可能也還需要再研究一下是不是插上去就能用。

      • 就我的認知來說
        「協定」是在比較底層設備間溝通的方式,像是「zigbee」「z-wave」
        而「標準」是比較應用程式上的東西,像是目前市面上有適合alex、apple homekit 或 google home
        一句話來說,設備商端出以某種「協定」互相溝通的產品,且其符合某種「標準」的設備
        舉例來說,philips hue是以zigbee為協定,且能以alex、apple homekit 和 google home 標準進行操作的設備
        Matter 就是覺得除了這三大家外,各設備商都有自己的標準,太亂了!要一統天下!才推出的統一標準
        若是有錯,再請後面的大大指正(下台一鞠躬

  17. 謝謝你分享好文章,
    但是有一點點小小的錯誤, 關於 “透過 Zigbee2MQTT 接入有什麼好處?”
    用 AqaraGateway 接入 HA, 它也是用 mosqutto, 把 zigbee 的訊息, 透過 mosquitto 傳到 HA, 也 local control. 同時也保留 Aqara Home App 雲控制的部份.
    Cloud Control 和 Local Control 都是可以運作的.

  18. 感謝教學,z2m架設成功!設備也陸續添加中~
    接下來就是美化UI還有HA自動化的大坑了 ^^”
    期待後續的教學文章!!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

你可能會喜歡

最近的討論

你可能會喜歡