Uni-meter项目中使用VzLogger作为数据源的配置优化
在能源监控系统中,Uni-meter项目作为一个灵活的数据采集和转发工具,支持多种输入输出设备的配置。本文将重点介绍如何优化配置VzLogger作为数据源的最佳实践。
传统配置与JSON配置的对比
早期版本中,Uni-meter文档推荐直接使用VzLogger webserver作为输入源。但随着项目发展,generic-http输入设备配合JSON解析方式展现出更好的稳定性和性能表现。这种配置方式具有以下优势:
- 响应速度更快,调节更及时
- 数据稳定性更高,不易出现数值波动
- 配置灵活性更强,可精确指定各参数的数据路径
推荐配置详解
以下是一个经过实践验证的优化配置示例,适用于从VzLogger获取三相电能数据:
uni-meter {
output = "uni-meter.output-devices.shelly-pro3em"
input = "uni-meter.input-devices.generic-http"
output-devices {
shelly-pro3em {
min-sample-period = 5000ms
udp-port = 1010
udp-interface = "0.0.0.0"
device {
mac = "B827EB364242"
hostname = "shellypro3em-b827eb364242"
}
}
}
input-devices {
generic-http {
url = "http://服务器IP:端口"
power-phase-mode = "tri-phase"
energy-phase-mode = "mono-phase"
channels = [
{
type = "json"
channel = "energy-consumption-total"
json-path = "$.data[4].tuples[0][1]"
scale = 1
},
{
type = "json"
channel = "energy-production-total"
json-path = "$.data[5].tuples[0][1]"
scale = 1
},
{
type = "json"
channel = "power-l1"
json-path = "$.data[1].tuples[0][1]"
},
{
type = "json"
channel = "power-l2"
json-path = "$.data[2].tuples[0][1]"
},
{
type = "json"
channel = "power-l3"
json-path = "$.data[3].tuples[0][1]"
}
]
}
}
}
关键配置参数说明
- min-sample-period:设置为5000ms(5秒)可平衡数据刷新频率和系统负载
- power-phase-mode:三相电模式配置
- energy-phase-mode:单相电能计量模式
- json-path:精确指定各参数在JSON响应中的位置
- scale:数据缩放因子,保持原始值时设为1
实际应用建议
- 对于Marstek Venus等设备,此配置方案表现稳定,调节响应迅速
- 可根据实际网络状况调整采样周期,平衡实时性和系统负载
- 各通道的json-path需要根据VzLogger实际输出的数据结构进行调整
- 若需认证,可取消注释username和password配置项
这种配置方式已在实际项目中验证其有效性,特别适合需要稳定、高效获取VzLogger数据的应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



