上次我們在安裝HomeAssistant的時候(打卡智能家居學習之旅(1):了解HomeAssistant),順便把MQTT 集成安裝好了。
為什么要裝MQTT 集成呢?Wi-Fi 設(shè)備(Ai-WB2 或者Ai-M6x等模組)接入服務(wù)器必定要使用網(wǎng)絡(luò)協(xié)議,而MQTT 是這些網(wǎng)絡(luò)協(xié)議中最常用的。例如:阿里云的物聯(lián)網(wǎng)平臺,例如米家、鴻蒙等都有基于MQTT協(xié)議的接入方式,而HomeAssistant 對MQTT的適配也十分友好。
HomeAssistant的MQTT(MQTT的基本知識自行學習,這節(jié)不講MQTT協(xié)議):HomeAssistant的MQTT集成,可以理解為一個MQTT的客戶端,通過固定的數(shù)據(jù)格式,能夠自己訂閱Topic,并且接收數(shù)據(jù)和下發(fā)數(shù)據(jù)。
所以在使用HomeAssistant 的MQTT 的時候,需要先配置遠程MQTT服務(wù)器。設(shè)備接入HomeAssistant 的方式請看下圖:

MQTT 服務(wù)器負責轉(zhuǎn)接了HomeAssistant和其他Wi-Fi 設(shè)備的數(shù)據(jù),HomeAssistant 只不過是訂閱了每一個接入到HomeAssistant 上的設(shè)備的Topic,和獲取到了每個設(shè)備下發(fā)的Topic。
MQTT 服務(wù)器的搭建
MQTT 服務(wù)器我建議使用遠程服務(wù)器來搭建,當然局域網(wǎng)中也可以,使用遠程服務(wù)器主要還是為了避免家里有多個局域網(wǎng)(多個路由器)的情況,防止任意能夠訪問網(wǎng)絡(luò)的Wi-Fi 設(shè)備都能接入。本地服務(wù)器的搭建方式可以參考搭建MQTT服務(wù)器的帖子:在pi上面部署開源的MQTT服務(wù)器(EMQX)。
遠程服務(wù)器的搭建也差不多,只是系統(tǒng)不一樣而已。首先登錄到遠程服務(wù)器上:

后面的步驟就參考上述帖子,貼上相關(guān)指令:
下載 MQTTx Ubuntu 版
wget https://www.emqx.com/zh/downloads/broker/5.6.1/emqx-5.6.1-ubuntu20.04-amd64.deb
安裝:
sudo apt install ./emqx-5.6.1-ubuntu20.04-amd64.deb
運行:
sudo systemctl start emqx
安裝完成之后,遠程服務(wù)器還需要開放兩個端口:18083和1883.(18083 是MQTT后臺管理端口,1883 是客戶端連接端口,如果需要加密連接(SSL/TSL)的話,可能還需要開放8883)

最后驗證一下,打開瀏覽器輸入:ip:18083,訪問成功:首次登錄賬號:admin,密碼:public

HomeAssistant 連接服務(wù)器
分別點擊 “配置”——>"設(shè)備與服務(wù)"——>"添加集成"——>輸入框搜“MQTT”,填入MQTT服務(wù)器的IP地址:

連接成功會提示。

另外建議打開HomeAssistant 的高級功能,用來配置MQTT發(fā)現(xiàn)前綴等內(nèi)容。

可以開啟高級選項,能夠配置客戶端ID及其他功能。

接入HomeAssistant 的前提條件
首先需要了解HomeAssistant 的MQTT 自動發(fā)現(xiàn)機制:HomeAssistant 官方規(guī)定其他MQTT設(shè)備想要在HomeAssistant中顯示,就需要在連接MQTT服務(wù)器的時候,以實體的方式進行登錄。HomeAssistant 平臺才能識別到,并顯示在MQTT集成里面。如下圖所示:

HomeAssistant 官方也給出了關(guān)于實體登錄的文檔:https://www.home-assistant.io/integrations/mqtt
對接例子如下:

上面的意思是:連接服務(wù)器之后,給某個Topic 發(fā)送固定的示例上的json 數(shù)據(jù)。
Topic:
homeassistant/binary_sensor/garden/config
Json:
{
"name":null,
"device_class":"motion",
"state_topic":"homeassistant/binary_sensor/garden/state",
"unique_id":"motion01ad",
"device":{
"identifiers":[
"01ad"
],
"name":"Garden"
}
}
使用MQTTx 客戶端測試一下:

按照上述內(nèi)容發(fā)送之后,HomeAssistant 的MQTT 集成就能顯示東西了。所以說,每個實體只要根據(jù)說明發(fā)送相應(yīng)的數(shù)據(jù)就能登錄上去了~
審核編輯 黃宇
-
智能家居
+關(guān)注
關(guān)注
1943文章
9995瀏覽量
197410
發(fā)布評論請先 登錄
智能家居體驗升級關(guān)鍵!物聯(lián)網(wǎng)云平臺靠跨設(shè)備數(shù)據(jù)關(guān)聯(lián)發(fā)力
智能家居芯片:技術(shù)核心與創(chuàng)新突破
信號發(fā)生器在智能家居設(shè)備測試中的應(yīng)用
如何快速開發(fā)符合Matter標準的智能家居設(shè)備?
沒有Matter,你的智能家居就“out”了?
物聯(lián)網(wǎng)天線如何影響智能家居發(fā)展
Matter 智能家居的通用語言
明遠智睿SSD2351開發(fā)板:智能家居的智能核心
智能家居控制器:無線通訊,智能化管理家居設(shè)備
智能家居Mesh組網(wǎng)方案:實現(xiàn)智能化生活的無縫連接NRF52832
重大突破?這個系統(tǒng),讓智能家居生態(tài)屏障土崩瓦解
打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法
評論