基于MQTT服务器的智能家居远程控制
Step1:配置MQTT服务器:
首先第一步要有一个公网服务器,我直接跑在我的公网服务器上,服务器环境:Ubuntu 18.04.4 LTS x86_64,我使用大规模分布式 MQTT 消息服务器EMQX来做服务管理,接下来开始在服务器上安装EMQX,这里我提供命令行安装方式的命令,直接按顺序执行命令即可安装成功:
通过以下命令配置 EMQX Apt 源:
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
运行以下命令安装 EMQX:
sudo apt-get install emqx
运行以下命令启动 EMQX:
sudo systemctl start emqx
如果最后一步启动不了,是因为EMQX配置文件中的默认一个cookie是弱口令,EMQX认为其不安全,需要按照以下步骤配置一下:
sudo nano /etc/emqx/emqx.conf
然后重新启动EMQX即可通过18083端口访问EMQX的Dashboard(当然防火墙18083端口记得打开,顺便把1883,8083也打开)18083是EMQX的管理页面访问端口,1883是你的MQTT客户端设备连接到服务器的端口,8083是EMQX的Websocketk客户端端口,可以用于测试发布消息和订阅主题,就是一个网页版的MQTT客户端,然后就可以启动EMQX了,启动之后,访问服务器端的18083端口。
访问到如上页面就是启动成功了,MQTT服务器已经跑起来了。
Step2:配置Homeassistant的MQTT组件
进入Homeasistant的设备与服务页面
添加MQTT集成
配置服务器参数:
点击下一步即可连接MQTT服务器,来到EMQX的Dashboard可以看到设备已经连接。
至此,客户端与服务器已经建立连接,下一步就是配置自动化。
Step3:配置自动化
打开场景自动化界面
创建自动化
编写自动化内容—触发条件:
编写自动化内容—自动化动作:
至此自动化配置完毕,开始测试。
通过MQTT客户端发布Server主题的消息“Aircondition_ON”,查看空调是否打开为制热模式。
空调正常打开,测试完毕!此为一个控制思路而已,MQTT客户端可以是任何一个客户端,就可以实现远程控制了。