本指南将帮助您将新安国际集中供液系统的数据集成到 HomeAssistant 中,实现自动设备发现和实时数据监控。本指南基于实际部署经验,包含了常见问题的解决方案。
如果您已经成功集成,应该能在 HomeAssistant 中看到:
- 设备名称:**新安国际集中供液系统**
- 9个实体:7个传感器 + 2个二进制传感器
- 实时数据通过 MQTT 正常更新
确保您的 HomeAssistant 已启用 MQTT 集成:
192.168.50.83:1883确保 Node-RED 已安装 MQTT 相关节点:bash npm install node-red-contrib-modbus npm install node-red-contrib-mqtt
HomeAssistant集成-选项卡-修正版.json - 主要集成配置(推荐使用)HomeAssistant自动发现配置.js - 自动发现功能代码HomeAssistant自动发现配置-直发版.js - 绕过分割节点的版本集中供液LinkOut节点.json - 发送端Link Out节点配置HomeAssistant-LinkIn节点.json - 接收端Link In节点配置数据集成连接配置.json - 完整的跨选项卡连接方案自动发现功能:
- 在 HomeAssistant 中自动创建设备 "新安国际集中供液系统"
- 配置所有传感器实体(温度、PH值、电导率、液位、压力、状态)
- 支持 HomeAssistant 的 MQTT 自动发现协议
数据传输功能:
- 将现有集中供液数据转发到 HomeAssistant
- 数据格式转换和验证
- 实时 MQTT 消息发布
HomeAssistant集成-选项卡-修正版.jsonmqtt_broker_ha)192.168.50.831883nodered_central_liquid4.1 修改新安国际集中供液选项卡:
1. 打开 新安国际集中供液-选项卡.json
2. 导入 集中供液LinkOut节点.json 中的节点
3. 修改每个debug节点的连接:
debug-温度 → link_temperature_out debug-PH值 → link_ph_out debug-当前液位 → link_level_out debug-电导率 → link_conductivity_out debug-供液一压力 → link_pressure1_out debug-供液二压力 → link_pressure2_out debug-报警状态 → link_alarm_out debug-工作状态 → link_work_status_out
4.2 配置HomeAssistant集成选项卡:
1. 导入 HomeAssistant-LinkIn节点.json 中的节点
2. 确认所有Link In节点都连接到 数据处理器 节点
3. 验证连接路径:Link In → 数据处理器 → 发送数据到HA
homeassistant/sensor/central_liquid_supply_temperature/config
homeassistant/sensor/central_liquid_supply_ph_value/config
homeassistant/sensor/central_liquid_supply_conductivity/config
homeassistant/sensor/central_liquid_supply_mixing_level/config
homeassistant/sensor/central_liquid_supply_storage_level/config
homeassistant/sensor/central_liquid_supply_supply_pressure_1/config
homeassistant/sensor/central_liquid_supply_supply_pressure_2/config
homeassistant/binary_sensor/central_liquid_supply_work_status/config
homeassistant/binary_sensor/central_liquid_supply_alarm_status/config
central_liquid_supply/sensor/temperature/state
central_liquid_supply/sensor/ph_value/state
central_liquid_supply/sensor/conductivity/state
central_liquid_supply/sensor/mixing_level/state
central_liquid_supply/sensor/storage_level/state
central_liquid_supply/sensor/supply_pressure_1/state
central_liquid_supply/sensor/supply_pressure_2/state
central_liquid_supply/binary_sensor/work_status/state
central_liquid_supply/binary_sensor/alarm_status/state
central_liquid_supply/status
问题原因:分割节点配置错误
解决方案:
- 检查分割节点设置:arraySplt: 1, arraySpltType: "len"
- 确保function节点返回格式:return [messages];
- 或使用直发版本:HomeAssistant自动发现配置-直发版.js
问题原因:设备配置中包含了多余字段
解决方案:
- 移除 via_device 字段
- 简化设备配置,只保留必要字段
- 确保传感器名称不包含设备名前缀
问题原因:数据类型不匹配(返回对象数组而非字符串)
解决方案:
- 方案一:修正分割节点配置,设置为数组分割
- 方案二:使用直发版本,绕过分割节点
数据处理器 中您可以在配置中修改每个传感器的图标:javascript icon: "mdi:thermometer" // 温度计图标 icon: "mdi:ph" // PH值图标 icon: "mdi:flash" // 电导率图标 // 更多图标请参考 Material Design Icons
在 HomeAssistant 的 configuration.yaml 中添加:yaml recorder: include: entities: - sensor.central_liquid_supply_temperature - sensor.central_liquid_supply_ph_value - sensor.central_liquid_supply_conductivity # 添加其他实体...
创建自动化规则监控关键参数:
```yaml
automation:
- alias: "集中供液温度异常"
trigger:
platform: numeric_state
entity_id: sensor.central_liquid_supply_temperature
above: 35
below: 10
action:
service: notify.mobile_app_your_phone
data:
message: "集中供液温度异常: {{ states('sensor.central_liquid_supply_temperature') }}°C"
Node-RED 配置备份:
bash # 导出所有流程 cd ~/.node-red cp flows.json flows_backup_$(date +%Y%m%d).json
HomeAssistant 配置备份:
您可以在 HomeAssistant 中设置自动化规则:yaml automation: - alias: "集中供液报警" trigger: platform: state entity_id: binary_sensor.central_liquid_supply_alarm_status to: '报警' action: service: notify.mobile_app_your_phone data: message: "集中供液系统发生报警!"
使用 HomeAssistant 的统计功能分析:
# configuration.yaml 添加统计传感器
sensor:
- platform: statistics
name: "温度趋势分析"
entity_id: sensor.central_liquid_supply_temperature
state_characteristic: mean
max_age:
hours: 24
- platform: statistics
name: "PH值稳定性分析"
entity_id: sensor.central_liquid_supply_ph_value
state_characteristic: standard_deviation
max_age:
hours: 24
基于历史数据建立预警规则:yaml automation: - alias: "预测性维护提醒" trigger: platform: template value_template: > {{ states('sensor.central_liquid_supply_ph_value') | float > 8.5 or states('sensor.central_liquid_supply_ph_value') | float < 6.5 }} condition: condition: template value_template: > {{ (as_timestamp(now()) - as_timestamp(states.automation.predictive_maintenance_reminder.attributes.last_triggered)) > 3600 }} action: service: notify.mobile_app_your_phone data: message: "PH值异常,建议检查设备: {{ states('sensor.central_liquid_supply_ph_value') }}"
更新日期: 2025年7月14日
版本: v2.0 - 基于实际部署经验更新
状态: ✅ 已验证可用