- Introduced a comprehensive summary of MQTT connection issues and their resolutions in `MQTT_FIX_SUMMARY.md`. - Created a detailed troubleshooting guide in `TROUBLESHOOTING.md` to assist users in resolving common MQTT-related problems. - Updated `README.md` to include prerequisites for MQTT integration and enhanced error handling instructions. - Improved user experience by clarifying configuration steps and providing clear error messages for MQTT integration issues.
3.8 KiB
3.8 KiB
JackeryHome 故障排除指南
MQTT 连接问题
问题:Host is unreachable 错误
如果您在 Home Assistant 日志中看到以下错误:
ERROR (MainThread) [homeassistant.components.mqtt.client] Error re-connecting to MQTT server due to exception: [Errno 113] Host is unreachable
WARNING (MainThread) [custom_components.jackery_home.sensor] MQTT not ready: Error talking
原因: JackeryHome 集成依赖于 Home Assistant 的内置 MQTT 集成。该错误表明 Home Assistant 无法连接到配置的 MQTT broker。
解决方案:
1. 确认已安装并配置 MQTT 集成
- 进入 Home Assistant:设置 → 设备与服务
- 检查是否已添加 MQTT 集成
- 如果没有,点击 添加集成,搜索并添加 MQTT
2. 配置正确的 MQTT Broker 地址
在 MQTT 集成配置中,确保:
- Broker 地址:填写您的 MQTT broker 的 IP 地址或主机名
- 如果使用 Mosquitto Add-on:通常是
localhost或core-mosquitto - 如果使用独立 MQTT broker:填写其 IP 地址(例如
192.168.1.100)
- 如果使用 Mosquitto Add-on:通常是
- 端口:默认为
1883(或 TLS 加密使用8883) - 用户名/密码:如果 broker 需要认证,请填写
3. 检查网络连接
确保 Home Assistant 可以访问 MQTT broker:
# 在 Home Assistant 容器/主机中测试连接
ping <mqtt_broker_ip>
telnet <mqtt_broker_ip> 1883
4. 检查 MQTT Broker 是否运行
如果使用 Mosquitto Add-on:
- 进入 设置 → 加载项
- 找到 Mosquitto broker
- 确认状态为 已启动
- 查看日志确认没有错误
5. 重新配置 JackeryHome 集成
在 MQTT 集成正确配置后:
- 进入 设置 → 设备与服务
- 找到 JackeryHome 集成
- 如果仍有问题,尝试删除并重新添加该集成
问题:MQTT publish failed
如果看到 "MQTT publish failed" 错误,但 MQTT 集成已配置:
- 重启 MQTT broker
- 重启 Home Assistant
- 检查 MQTT broker 日志中是否有连接错误
- 确认 MQTT broker 没有达到连接限制
问题:数据未更新
如果传感器显示"不可用"或数据不更新:
-
检查 MQTT 主题:确认设备正在向正确的主题发布数据
- LWT 主题:
v1/iot_gw/gw_lwt - 数据主题:
v1/iot_gw/gw/data
- LWT 主题:
-
使用 MQTT Explorer 监控:
- 安装 MQTT Explorer(桌面应用)
- 连接到您的 broker
- 订阅
v1/iot_gw/#查看是否有数据
-
检查设备序列号:
- 查看传感器的属性,确认
device_sn是否正确 - 确认设备已上线并发送了 LWT 消息
- 查看传感器的属性,确认
常见配置问题
使用 Mosquitto Add-on
推荐配置:
- Broker:
core-mosquitto或localhost - Port:
1883
使用外部 MQTT Broker
- 确保防火墙允许 1883 端口
- 如果使用 Docker,确保网络配置正确
- 考虑使用 TLS 加密连接(端口 8883)
调试步骤
启用详细日志
在 configuration.yaml 中添加:
logger:
default: info
logs:
custom_components.jackery_home: debug
homeassistant.components.mqtt: debug
重启 Home Assistant 后,日志将显示更详细的 MQTT 交互信息。
手动测试 MQTT 连接
使用 mosquitto_pub 和 mosquitto_sub 工具测试:
# 订阅主题
mosquitto_sub -h <broker_ip> -t "v1/iot_gw/#" -v
# 发布测试消息
mosquitto_pub -h <broker_ip> -t "v1/iot_gw/test" -m "test message"
获取帮助
如果问题仍未解决,请在 GitHub 上提交 issue,并提供:
- Home Assistant 版本
- JackeryHome 集成版本
- MQTT broker 类型和版本
- 完整的错误日志(启用调试日志后)
- MQTT 集成配置(隐藏敏感信息)