在 Home Assistant 中安裝與設定 EMQX MQTT 代理伺服器
每當在 Home Assistant 的語境中提到 MQTT 時,我們馬上聯想到 Mosquitto MQTT。它被廣泛使用作為 Zigbee2MQTT、TasmotaMQTT 以及許多其他整合和裝置在 MQTT 協定上通訊的主要代理伺服器。它極為輕量,幾乎不佔用硬體資源,同時安裝和設定也相當簡便。
我喜歡嘗試和探索主流之外的選擇,特別是在任何智慧家居相關的事物上,即使像 Mosquitto MQTT 這樣的東西運作得非常完美。在這篇文章中,我將討論在 Home Assistant 中安裝 EMQX MQTT 代理伺服器作為附加元件,如何進行配置,以及何時應該使用這個附加元件而非 Mosquitto。
EMQX MQTT Broker 是標榜為「用於物聯網(IoT)、工業物聯網(IIoT)和連接車輛的最具擴展性的開源 MQTT 代理伺服器」。它是一個開源的 MQTT 代理伺服器,擁有高性能的實時消息處理引擎,為大規模 IoT 設備提供事件流。作為最具擴展性的 MQTT 代理伺服器,EMQX 可以幫助您在任何規模下連接任何裝置,包括您的智慧家居。
EMQX 是 Mosquitto MQTT 代理伺服器的先進替代方案,通常在 Home Assistant 中使用,並具有用於調試、存取控制、管理客戶端和流量的實用用戶界面。
為什麼要使用 EMQX 而不是 Mosquitto?
由於 MQTT 是一個輕量級的通信協議,Mosquitto 完全足夠充當代理伺服器而毫無問題。您可以通過從 Home Assistant 監聽主題來調試問題並相應地採取行動。它只是靜靜地在 Home Assistant 的已安裝附加元件列表中執行並完成其工作。
EMQX 就像是被增強過的 Mosquitto,它具有一些 Mosquitto 中不存在的高級功能:
- 內建儀表板
- 高級存取控制
- 認證
- 授權
- 黑名單
- 高級數據集成
- 檢查數據流
- 設置規則
- 高級 MQTT 設置
- 您可以使用單個 MQTT 伺服器來連接多個 Home Assistant 實例
- 優越的診斷和調試功能
因此,EMQX 提供了比 Mosquitto 更多的進階功能,並為使用者提供更強大的控制和監控能力。
總結來說,如果您想要充分利用 EMQX 的高級功能,如連接概覽、高級存取控制以及在乾淨且數據豐富的儀表板上觀察實時數據流,那麼使用 EMQX 是一個不錯的選擇。如果您實際上不需要這些功能,那麼使用 Mosquitto 完全足夠。
在我們繼續安裝 EMQX 附加元件之前,您需要注意以下一些關鍵事項:
- EMQX 附加元件無法與 Mosquitto 附加元件同時運行。
- 您可以暫停 Mosquitto 並測試 EMQX。
- EMQX 附加元件默認使用端口 1883、8083、8084 和 8883。
- 如果您現有的任何附加元件與這些端口發生衝突,您將需要更改它們的端口或 EMQX 附加元件的監聽器端口。
- 在啟動 EMQX 並更改監聽器端口之前,您需要關閉衝突的附加元件,因為當端口被佔用時,集成將無法啟動。
- 已知的可能與之衝突的附加元件包括 AlexxIT 的 WebRTC 以及任何默認使用端口 1883、8083、8084 和 8883 的元件。在啟動 EMQX 之前,請暫時更改這些端口。
探索 EMQX 儀表板
EMQX 儀表板資料非常豐富。從選單頂部開始向下,您可以為活動用戶端連線和 MQTT 主題探索一系列不同的內容。
在叢集概覽中,EMQX 為您提供每秒訊息傳入和傳出的速率。例如,如果您的 Zigbee 網狀網路過載,這可以幫助您了解整體情況。它列出了活動連接、主題和訂閱的數量,您可以單獨瀏覽它們並查看哪些活動連接到您的 MQTT 代理。
從「概覽」選單進一步向下捲動,相同的資料被組織成折線圖,以便您可以查看歷史記錄:
在「節點」功能表中,您將找到該特定節點的一些資訊和統計資料。正常運行時間、CPU 負載、記憶體負載和節點的活動連接可在此處概述。 「指標」標籤將其擴展為更多詳細信息,將其分解為授權數量、接收和發送的位元組數、接收和發送的訊息、發布和傳遞的訊息以及詳細的資料包資訊。
在客戶端清單中,您將看到連接到經紀商的客戶端清單。如果您將一堆不同的裝置連接到 EMQX,您將在此列表中看到它們。 TasmotaMQTT、Frigate,您透過 MQTT 連接到代理商的任何內容都將在此處列出。在此開發版本中,我僅與少數裝置建立了活動的 Zigbee2MQTT 連線。我可以透過點擊客戶端 ID 來詳細展開它。
同樣,您將看到有關該特定客戶端的一些一般信息,例如狀態、IP 位址、訂閱數量等。
進一步向下捲動,您將看到客戶端的指標。接收和發送的位元組數、接收和發送的資料包以及詳細的訊息訊息。
診斷 MQTT 連結問題
假設您有一台正在運作的裝置。它經常從網路中掉線,對命令響應緩慢或可能根本不響應。 Zigbee2MQTT 可以工作,但沒有任何內容透過 MQTT 推送到 Home Assistant。所以你想嘗試找出發生了什麼事。
導覽至頂部選單中的監控 > 訂閱 > 主題。您將看到所有裝置作為 zigbee2mqtt 主主題下的子主題單獨列出,例如zigbee2mqtt/Sonoff SNZB-02D。
選擇您的裝置並點擊右側的「建立監視器」 。這將為該特定裝置建立診斷監視器,並進入EMQX 的診斷 > 主題指標選單。您將看到已在此處新增的監視器列表,選擇有問題的監視器並按一下「檢視」。
您將看到與設備相關的故障或訊息。如果丟棄的訊息中的數字大於 0 ,則表示 Zigbee2MQTT(在我的例子中)和 EMQX 代理程式之間的連接中存在 MQTT 封包遺失。這同樣適用於您可能擁有的與 MQTT 代理通訊的任何 Wi-Fi 裝置。
診斷選單對於識別是否有東西向您的網路發送垃圾郵件也很有用,例如裝置經常報告其狀態方式。此外,「慢速訂閱」選單(啟用後)可讓您概覽與代理程式通訊速度慢於預設閾值的裝置。
概括
Home Assistant 的 EMQX 插件是一個功能齊全的 MQTT 代理。它就像 Mosquitto 的老大哥,為最終用戶提供卓越的調試功能以及用於設定高級網路的不同身份驗證和授權方法。
傳入的資料在乾淨的儀表板中組織良好,您可以概覽和控制 MQTT 時可能需要的任何內容。我特別欣賞當您為每個主題創建監視器時它為您提供的統計數據。