HA 配置mqtt
前提条件
- 你已经有一个正在运行的 独立 Mosquitto 服务器。
- 你知道该服务器的 IP 地址 和 端口(默认是 1883)。
- 你已经准备好了 用户名和密码(如果你为 Mosquitto 配置了认证,强烈推荐)。
- (可选但推荐)如果你配置了 SSL/TLS 加密,你拥有相应的 CA 证书。
- 启动HA,我自己创建了虚拟环境,所以要先激活虚拟环境,再启动HA,具体参见后面的参考链接:
source venv313/bin/activate
在 Home Assistant 中的配置步骤
第1步:添加 MQTT 集成
- 打开您的 Home Assistant 后台。
- 进入 「设置」 -> 「设备与服务」。
- 点击右下角的 「添加集成」 按钮。
- 在搜索框中输入
MQTT
,然后选择出现的 「MQTT」 集成。
第2步:填写连接信息
点击 「MQTT」 后,会弹出一个配置窗口,你需要填写你独立 Mosquitto 服务的详细信息。
- 代理: 填写你的 Mosquitto 服务器的 IP 地址 或 主机名。例如:
192.168.1.100
或mqtt.myhome.com
。 - 端口: 默认是
1883
(非加密)或8883
(SSL加密)。请根据你的 Mosquitto 配置填写。 - 用户名: 你在 Mosquitto 中创建的用户名。
- 密码: 对应用户的密码。
高级选项(点击「显示高级选项」):
- 协议: 保持默认的 「MQTT 3.1.1」 即可,它有最好的兼容性。
- SSL/TLS: 这是一个关键选项。
- 不使用 SSL/TLS: 如果你的 Mosquitto 使用默认的 1883 端口且未加密,请选择此项(不推荐用于生产环境)。
- 使用 SSL/TLS,不验证证书: 如果你使用了自签名证书,并且只希望加密通信而不验证证书有效性,可以选择此项。
- 使用 SSL/TLS并验证证书: 如果你拥有受信任的 CA 签发的证书,请选择此项以提供最高安全性。
第3步:提交并测试连接
填写完所有信息后,点击 「提交」 按钮。
如果所有信息都正确,Home Assistant 会成功连接到你的独立 Mosquitto 服务器,并返回到集成列表页面。你会看到一个新的 「MQTT」 卡片,状态应该是 「已连接」。
故障排除
如果连接失败,Home Assistant 会提示错误信息。请检查以下几点:
- 网络连通性: 确保 Home Assistant 主机可以
ping
通你的 Mosquitto 服务器 IP。 - 防火墙设置: 检查 Mosquitto 服务器上的防火墙是否打开了指定的端口(1883或8883)。
- 认证信息: 仔细核对用户名和密码是否正确。你可以在 Mosquitto 服务器上使用
mosquitto_passwd
命令验证或重置密码。 - Mosquitto 配置: 检查 Mosquitto 的配置文件
mosquitto.conf
,确保:- 设置了
listener
端口(如listener 1883
)。 - 如果 Mosquitto 服务器不在本地,需要设置
allow_anonymous false
并配置密码文件,或者将listener
绑定到0.0.0.0
(默认只绑定到 127.0.0.1)。
- 设置了
验证连接(可选但推荐)
为了确认一切工作正常,你可以使用 Home Assistant 的 MQTT 开发工具。
- 进入 「开发者工具」 -> 「MQTT」 标签页。
- 在 「监听主题」 中输入
#
(监听所有主题),然后点击 「开始监听」。 - 让你的一些 MQTT 设备发布消息,或者手动在 「发布消息」 部分发布一个测试主题(例如
home/test
),看看是否能收到。
如果你能正常收发消息,恭喜你,Home Assistant 已经成功连接到你的独立 Mosquitto 服务了!
完成以上步骤后,所有通过此 MQTT 代理进行通信的设备(例如 ESPHome、Tasmota 设备等)都可以被 Home Assistant 自动发现或手动配置接入。
ps:
在Ubuntu上从零开始编译并运行Home Assistant源码并集成HACS与小米开源的Ha Xiaomi Home