项目介绍
HomeAssistant
HomeAssistant
是一个用于智能家居自动化的开源平台。它旨在将各种智能设备和服务集成到一个统一的系统中,让用户可以通过一个界面来控制和管理所有连接的设备。
- 功能特点:支持众多品牌和类型的设备,包括灯光、传感器、门锁、摄像头等,几乎涵盖了所有智能家居领域。用户可以通过简单的配置文件或图形化界面来定义自动化规则,实现设备之间的联动和场景控制。例如,当传感器检测到有人进入房间时,自动打开灯光;或者根据时间和天气条件自动调整恒温器的设置。同时,提供了一个直观的 Web 界面和移动应用程序,方便用户随时随地进行控制和监控。
- 应用场景:适用于家庭自动化场景,可创建高度个性化的智能家居环境,满足不同用户对便捷、舒适和节能的需求。
EMQX
EMQX
是一款开源的分布式MQTT
消息服务器,旨在为物联网(IoT)、工业物联网(IIoT)和车联网等场景提供高可靠、高性能的消息通信服务。
- 功能特点:具有高并发处理能力,能够支持海量设备的连接和消息传输。具备分布式架构,可实现集群部署,确保系统的高可用性和可扩展性。支持多种通信协议,除了 MQTT,还包括 MQTT-SN、CoAP 等,以适应不同类型设备和应用场景的需求。提供了丰富的插件体系,方便用户根据具体需求进行功能扩展,如身份验证、访问控制、数据持久化等。
- 应用场景:广泛应用于物联网项目中,作为设备之间消息传递的桥梁,支持大规模设备的实时数据交互和远程控制。
MQTT
这里提供MQTT的HomeAssistant插件的中文文档,请自行查阅。
笔者已经自行搭建了HomeAssistant以及EMQX服务器,以供研究学习使用,点击链接即可访问。本服务器不提供公共用户用于登录测试,如有需要,请发送申请邮件到笔者邮箱(swglxhcg@163.com)以获取测试账户。
方案介绍
本方案使用HomeAssistant和EMQX,首先当然是因为他们都是开源软件,其次是因为确实好用。
HomeAssistant主要是用来汇总各种物联网设备,目前已经支持众多品牌以及各种类型的设备,基本上实现了物联网设备的统一访问和控制。另外,其强大的自动化系统使得用户可以简单方便地进行不同设备之间的联动,对于大部分自动化场景1
下不需要使用到编程,极大方便了物联网设备的使用和普及。
EMQX则是连接物联网侧端设备和中心服务器的桥梁,负责侧端设备2
和中心服务器(例如本例中的HomeAssistant)的通信。当今物联网项目对于实时性要求较高,且同一项目中使用到的侧端设备一般数量也不会太少,故而需要能够支持高并发的中间通信服务器。
测试记录
HomeAssistant想要和EMQX联动十分方便,只需要进入“配置 -> 集成”中,选择“添加集成”,搜索MQTT
即可添加。
然后进行如下配置
记得勾选启用发现(Enable discovery)
,那么这个发现
是什么呢?在HomeAssistant中,想要把一个设备添加到自己的Home里面,一般都是需要用户自己手动在HomeAssistant中填写设备信息,还需要在设备中手动添加连接到HomeAssistant的信息,这样十分麻烦,而且对于技术水平较低的小白而言可能有些困难。而这个发现,就是让设备自己向HomeAssistant发送一条特殊的消息,告诉HomeAssistant有一个新设备想要加入Home中,启用了发现
功能的HomeAssistant就会自己把这个设备的所有信息都记录到自己的设备列表里面,同时自己和设备沟通好进行通信时的具体细节,比如信息交流的格式等。这样只需要在设备端设置好HomeAssistant的联系方式,在设备开机联网后HomeAssistant就会自己把设备加入Home里面啦。设置方法如下图。
在笔者搭建的服务器上一切都已经配置好啦,EMQX平台暂时只提供了基于MQTT协议的访问方式,连接参数如下
- 连接地址:emqx.chzt2.cn
- 连接端口:18830
- 用户名:test
- 密码:test
根据官方的例子,使用MQTTX客户端程序测试HomeAssistant的设备发现功能。