MQTT通讯pc端准备工作
本地pc端MQTT代理服务器mosquitto的下载
mosquitto 是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。
Mosquittio下载的网址:https://mosquitto.org/download/,选择的是windows64位系统的版本
安装启动MQTT
按照自己电脑选择
打开下载的 mosquitto-1.6.12-install-windows-x64.exe 文件一路 Next 就可以
将mosquitto在任务管理器中设置为开机自启动
为MQTT设置用户名密码
1、找到MQTT安装目录文件夹,找到配置文件mosquitto.conf打开,末尾加入下面文本,保存退出
#设置不允许匿名登录
allow_anonymous false
#设置账户密码文件位置为 D:\Program Files\mosquitto\pwfile.example
password_file D:\Program Files\mosquitto\pwfile.example
2、win+R打开命令行窗口,复制下载到的文件夹地址,进入到MQTT安装路径
输入:
mosquitto_passwd -c ./pwfile.example hachina #(使用-c 参数意思是清空密码文件,新建用户名为hachina的用户)
用户名可以自定义。
电脑本机测试是否成功
打开两个命令运行框,都进入mosquitto安装的文件夹,一个用来发布信息,一个用来接受信息。当地址一致时,可以接收同一主题下信息。
本机电脑订阅代码:mosquitto_sub -h 192.168.1.109 -t test -u hachina -P hachina
本机电脑发布代码:mosquitto_pub -h 192.168.1.109 -t test -m "on" -u hachina -P hachina
-t为主题,-m为消息内容,-u为用户名,-P为密码,-h为地址
MQTT通讯HASS平台准备工作
首先在HASS上下载mqtt
步骤如下:
配置中打开设备与服务,点开右下角添加集成,输入MQTT查找,下面紫色那个图标就是我们要配置的对象。
下载后,点击左下角选项进入配置界面,配置MQTT
填写如下信息,服务器地址为前面下载的mosquitto MQTT代理服务器IP地址,端口都市区883,用户名和密码是之前自己设置的
以上完成后,本地PC端就已经可以通过·MQTT协议与HASS通讯了。
node red mqttin
PYTHON进行MQTT通讯所需代码
import paho.mqtt.client as mqtt
MQTT_USER = "hachina"
MQTT_PASS = "hachina"
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_USER)
client.connect("192.168.1.109", 1883, 60)
ient.publish("test", "on")
client.disconnect()