基于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客户端可以是任何一个客户端,就可以实现远程控制了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注