Uni-Meter项目中MQTT JSON主题路径配置指南

Uni-Meter项目中MQTT JSON主题路径配置指南

背景介绍

Uni-Meter是一个用于能源监控的开源项目,它支持通过MQTT协议从各种智能电表设备中采集数据。在实际部署中,正确配置MQTT主题和JSON路径对于数据采集至关重要。

JSON路径配置原理

在Uni-Meter的配置文件中,MQTT输入设备部分需要定义三个关键参数:

  1. 主题(topic):MQTT订阅的主题名称
  2. 通道(channel):数据分类(如总功率、总能耗等)
  3. JSON路径(json-path):从JSON消息中提取特定值的路径表达式

典型配置示例

以下是一个完整的配置示例,展示了如何从Tasmota设备采集电力数据:

uni-meter {
  input-devices {
    mqtt {
      url = "tcp://192.168.0.202:1883"
      username = "xxxx"
      password = "xxxx"

      power-phase-mode = "mono-phase"
      energy-phase-mode = "mono-phase"

      channels = [
        {
          type = "json"
          topic = "tele/tasmota_65F460/SENSOR"
          channel = "power-total"
          json-path = "$.SM['16_7_0']"
        },
        {
          type = "json"
          topic = "tele/tasmota_65F460/SENSOR"
          channel = "energy-consumption-total"
          json-path = "$.SM['1_8_0']"
        },
        {
          type = "json"
          topic = "tele/tasmota_65F460/SENSOR"
          channel = "energy-production-total"
          json-path = "$.ESL['ESL']"
        }
      ]
    }
  }
}

JSON路径解析详解

  1. 总功率(power-total):使用路径$.SM['16_7_0']从SM对象中提取16_7_0字段的值
  2. 总能耗(energy-consumption-total):使用路径$.SM['1_8_0']从SM对象中提取1_8_0字段的值
  3. 总发电量(energy-production-total):使用路径$.ESL['ESL']从ESL对象中提取ESL字段的值

配置验证技巧

在配置JSON路径时,建议使用专业的JSON路径测试工具进行验证。将实际的MQTT消息内容和预期的路径表达式输入测试工具,可以直观地看到提取结果是否符合预期。

常见问题处理

  1. 路径表达式错误:确保使用正确的对象层级和字段名称
  2. 数据类型不匹配:注意数值是否需要缩放(通过scale参数)
  3. MQTT连接问题:检查URL、用户名和密码是否正确

通过以上配置,Uni-Meter可以正确地从Tasmota设备采集电力数据并进行监控分析。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值