第 2 章

安裝 Woow EMQX add-on

安裝 Woow EMQX add-on(EMQX 5.8.9):加入 WoowTech repository、安裝與啟動、host_network、五個連接埠、Ingress 進入方式、首次登入與改密碼,以及與 Mosquitto 的連接埠衝突。

為什麼要學這個

Home Assistant 的附加元件商店裡預設沒有 Woow EMQX,所以要裝它必須先把 WoowTech 的 repository 加進你的 Home Assistant。這個過程不算難,但如果你沒先搞懂「host_network 模式」、「連接埠 1883/18083」與「Ingress」這三個關鍵字,啟動後常常只會看到它開不起來,然後卡在 Log 前一頭霧水。

讀完這章,你會能自己完成:加入 repository → 安裝 → 啟動 → 用 admin/public 初次登入 → 改掉預設密碼,並知道五個連接埠各是幹什麼的、遇上 Mosquitto 搶埠時該怎麼解。

核心概念

Woow EMQX 是 WOOWTECH 基於 hassio-addons/addon-emqx 的 fork 維護的 Home Assistant add-on。它內建 EMQX 5.8.9(Open Source),搭配 Erlang/OTP 執行環境與內建 SQLite 儲存設定。add-on 使用 host_network: true,意思是它不把網封進容器內的小型虛擬網路,而是直接用 Home Assistant 主機本身的連接埠收發 MQTT。

這樣做的好處是其他瀏覽器、手機 App、外部裝置都能直接連到你主機的 1883、8883 等埠,不必轉接。代價是你得在乎連接埠被誰佔用:如果你保留著 Home Assistant 的 Mosquitto add-on,兩者同樣使用 1883,就無法同時啟動。

另外,add-on 用 ingress 模式提供管理介面:Home Assistant 左側選單裡可以直接開 EMQX Dashboard,而不必記憶 http://<主機>:18083。add-on 的 config.yaml 已經把 ingress_port: 18083 與 host_network: true 都寫好。

名詞對照

英文中文說明
Repository儲存庫Home Assistant 額外附加元件的來源位址
Host Network主機網路模式add-on 直接使用主機網路的模式
Ingress入口通道從 Home Assistant 左側直接開 add-on 網頁
Listener Port監聽連接埠broker 在哪些埠收 MQTT/管理流量
Web UI網頁管理介面EMQX Dashboard 的入口

這裡指一個關鍵的 repo 位址:https://github.com/WOOWTECH/Woow_ha_emqx,就是你等一下要加進 Home Assistant 的儲存庫來源。

動手做

  1. 加入 WoowTech repository

    在 Home Assistant 進入 設定 → 附加元件 → 商店,點右上的 ⋯ 選單 → 新增儲存庫,貼上 https://github.com/WOOWTECH/Woow_ha_emqx,按新增。

  2. 安裝 Woow EMQX

    重新整理商店,找到 Woow EMQX,點進去按 安裝(可能需要一些時間下載)。

  3. 啟動 add-on

    確認 add-on 頁面的 host_network 有開啟,再按 啟動。之後看 Log 確認沒有「連接埠被佔用」的錯誤。

  4. 開啟 Web UI 並初次登入

    點 開啟 Web UI,用使用者名稱 admin、密碼 public 登入。系統若要求改密碼,請當場改成 <你的新密碼>,並在後續章節建立正式 MQTT 帳號前都不要再使用 public。

連線用的五個連接埠

因為 host_network,這五個埠直接開在 Home Assistant 主機上。add-on README 列出的預設如下。

連接埠協定說明
1883MQTT標準 MQTT(TCP)
8083MQTT/WSMQTT over WebSocket
8084MQTT/WSSMQTT over 安全 WebSocket(TLS)
8883MQTTSMQTT over SSL/TLS
18083HTTPEMQX Dashboard(管理介面)

你只需要在日常最常用 1883 給裝置與 Home Assistant、18083 開 Dashboard,其餘是 WebSocket 與 TLS 選項。若某一埠被別的服務佔用,例如 WebRTC 用 8083,就必須先停掉衝突的一方,再於 Dashboard 的 Listeners 頁改埠。

首次登入與改密碼

EMQX Dashboard 的預設帳號是 admin/public。官方文件明確規範:第一次用預設帳密登入後,系統會偵測到你還在用預設密碼,並強制你更換密碼;新的密碼不能跟原本一樣,也不建議再把 public 當成正式使用。

這是保護管理面很重要的第一步:Dashboard 就是控制整個 broker 的入口,如果有人猜中 admin/public,就能改你所有的驗證與授權。之後你在第 6 章會建立真正的 MQTT 帳號給裝置與 Home Assistant 使用;本章只需先把 Dashboard 的登入密碼換掉。

如果你忘了新密碼,EMQX 提供 emqx ctl admins passwd <帳號> <新密碼> 這個 CLI 指令重設,細節會在第 18 章的診斷與 API 主題帶到。

故障排除

  • 儲存庫加到商店後沒出現 Woow EMQX:先重新整理頁面,或退出商店再進一次;確認網址完整貼上(含末段的 Woow_ha_emqx)。
  • 無法啟動、Log 看連接埠被佔用:你最有可能同時開著 Mosquitto add-on 或 WebRTC,兩個都卡 1883 或 8083。先把衝突的服務暫停,再啟動 EMQX。
  • Dashboard 進不去:用 Ingress(左側 EMQX 圖示)進;或改用 http://<Home Assistant 位址>:18083。確認 18083 沒被其他服務占用。
  • 改完後就真的不要再用 public:初次登入若沒被要求改密碼,代表你已經不是新安裝;若仍用預設帳密,請在 Dashboard 的使用者設定中手動更換。

常見問題

安裝後為什麼必須立刻改密碼

預設 admin/public 對任何看過文件的人都是公開值。若你的主機有對外暴露,等於把整個 broker 的掌控權交出去。第一步就把它改成你自己的強密碼。

Mosquitto 和 Woow EMQX 能同時跑嗎

不行。兩個 add-on 都把 MQTT 監聽在 1883,連接埠一衝突就有一方無法啟動。要嘛二選一,要嘛用 Listeners 把其中一個搬到別的埠。

Ingress 是什麼,跟直接打 18083 差在哪

Ingress 是 Home Assistant 提供的反向代理入口:從左側欄開 EMQX,不必記連接埠或擔心被其他人直連。直接打 18083 也能進同一套 Dashboard,差別在於安全與方便性。

裝完後資源吃比較重,會不會拖慢 Home Assistant

EMQX 比 Mosquitto 多花一點 RAM/CPU。Woow 的 README 說建議至少 512MB RAM。若主機記憶體緊繃,Mosquitto 可能仍是更輕的選擇;若要用 EMQX,先確認你的硬體撐得住。

官方來源