智能家居MQTT与路由器更配-华硕路由刷梅林安装使用Mosquitto方法
在前面的文章《免费域名和证书你要不要?用华硕路由玩转智能家居homeassistant》中我把homeassistant的NGINX反向代理服务器安装到了我的华硕AC86U中,成功地利用了华硕自带的域名和证书,实现homeassistant的HTTPS访问。后来我又觉得homeassistant中常用的MQTT协议服务器Mosquitto理想安家之地仍然是路由器。因为MQTT协议是基于TCP/IP协议的物联网通信协议,TCP/IP协议的反正都是要过路由器的,路由器本来就是网络中枢,而Mosquitto服务器作为MQTT通信中枢,两者天然适合在一起。还有路由器不经常重启,会保证MQTT服务一直在,并且如果真的路由器重启,装在其他地方的MQTT服务器没了路由器,也无法通信。
那么怎么在华硕路由器上安装Mosquitto呢?
1、刷梅林固件,并开启ssh
刷梅林固件的教程,站内及互联网上有很多,并且华硕路由刷梅林也很简单,跟升级官方固件差不多,我就不再赘述了。刷完梅林后开启ssh。
2、格式化U盘
安装entware必须插U盘,并且用梅林自带安装脚本安装,必须把U盘格式成Ext4等文件格式。不过格式化也很简单,插上U盘。ssh连接到路由器后输入 amtm,再输入fd,然后按照提示一步一步操作即可。
3、安装entware
U盘格式化完成后,继续用梅林自带的amtm工具安装entware。依然很简单。输入amtm后再输入ep,然后按照提示,做好选择,最后就能自动安装成功了。
4、安装Mosquitto服务器程序。在ssh命令行中输入opkg install mosquitto-nossl。
编辑Mosquitto设置文件。在Mosquitto配置文件夹下输入 nano mosquitto.conf (没安装nano的可以用opkg install nano进行安装),然后复制下面两行到文件最前面。然后CTRL X退出编辑,输入Y,按下enter键保存修改。
allow_anonymous false
password_file /etc/mosquitto/pwfile
然后在同一目录下(/etc/mosquitto)新建一个文件名为“pwfile”的文件(命令为nano pwfile),然后输入“mqtt用户名(你自己随意设置):密码”,然后同样CTRL X退出编辑,输入Y,按下enter键保存修改。
5、启动Mosquitto
我们修改完配置文件后,在命令行输入mosquitto进行启动。但是发生下面的报警。提示用户mosquitto不存在。
那么添加用户mosquitto吧,提示添加用户命令不存在
那么我变通一下用已存在的用户启动mosquitto吧,继续nano mosquitto.conf修改配置文件,把# user mosquitto 前#取消掉,并把mosquitto修改成admin。再次启动mosquitto,依然报用户mosquitto不存在。看来修改用户没起作用。经过查询发现mosquitto并没有自动加载mosquitto.conf配置,我们需要用如下命令,让mosquitto加载mosquitto.conf配置
mosquitto -c /tmp/mnt/mysda/entware/etc/mosquitto/mosquitto -d
这样mosquitto就在后台启动了。
6、但是当我们重启路由时mosquitto并不能自动启动。所以我们需要写个脚本,让路由启动时启动mosquitto。cd /jffs/scripts 然后nano mqttsart,输入下面的内容,然后保存退出。
然后还需要给该文件执行权限。chmod a+rx /jffs/scripts/*
最后可以reboot重启了。
7、最后你就可以用你node-red或手机上的MQTTool软件测试MQTT服务器是否正常启动了。
这次先到这里,homeassistant中使用MQTT的地方我们下次再说。
如果您爱好数码电子产品和智能家居,欢迎大家关注、点赞、收藏,你们的鼓励,就是我创作的动力。
顺其人生
校验提示文案
awei924
校验提示文案
3dfxx
校验提示文案
huanglongwen520
校验提示文案
大树根儿
校验提示文案
值友8523158436
校验提示文案
游戏泛
校验提示文案
恁眼哥
校验提示文案
值友2405919059
校验提示文案
值友2405919059
校验提示文案
恁眼哥
校验提示文案
值友8523158436
校验提示文案
大树根儿
校验提示文案
游戏泛
校验提示文案
顺其人生
校验提示文案
huanglongwen520
校验提示文案
3dfxx
校验提示文案
awei924
校验提示文案