安裝 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 的儲存庫來源。
動手做
加入 WoowTech repository
在 Home Assistant 進入 設定 → 附加元件 → 商店,點右上的 ⋯ 選單 → 新增儲存庫,貼上
https://github.com/WOOWTECH/Woow_ha_emqx,按新增。安裝 Woow EMQX
重新整理商店,找到 Woow EMQX,點進去按 安裝(可能需要一些時間下載)。
啟動 add-on
確認 add-on 頁面的
host_network有開啟,再按 啟動。之後看 Log 確認沒有「連接埠被佔用」的錯誤。開啟 Web UI 並初次登入
點 開啟 Web UI,用使用者名稱
admin、密碼public登入。系統若要求改密碼,請當場改成<你的新密碼>,並在後續章節建立正式 MQTT 帳號前都不要再使用public。
連線用的五個連接埠
因為 host_network,這五個埠直接開在 Home Assistant 主機上。add-on README 列出的預設如下。
| 連接埠 | 協定 | 說明 |
|---|---|---|
| 1883 | MQTT | 標準 MQTT(TCP) |
| 8083 | MQTT/WS | MQTT over WebSocket |
| 8084 | MQTT/WSS | MQTT over 安全 WebSocket(TLS) |
| 8883 | MQTTS | MQTT over SSL/TLS |
| 18083 | HTTP | EMQX 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,先確認你的硬體撐得住。