-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcerbo.conf
109 lines (108 loc) · 6.39 KB
/
cerbo.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
[[inputs.modbus]]
name = "cerbo"
controller = "tcp://192.168.178.104:502"
configuration_type = "metric"
[[inputs.modbus.metric]]
slave_id = 100 # Cerbo GX system + MPPT Carport
fields = [
{ address=771, name="pv_bat_v", type="UINT16", scale=0.01 },
{ address=772, name="pv_bat_i", type="INT16", scale=0.1 },
{ address=776, name="pv_v", type="UINT16", scale=0.01 },
{ address=784, name="pv_yield_today", type="UINT16", scale=0.1 },
{ address=817, name="ac_consumption_l1", type="UINT16" },
{ address=818, name="ac_consumption_l2", type="UINT16" },
{ address=819, name="ac_consumption_l3", type="UINT16" },
{ address=850, name="sys_pv_p", type="UINT16" },
{ address=2900, name="batlife_state", type="UINT16" },
{ address=2901, name="min_soc", type="UINT16", scale=0.1 },
{ address=2903, name="batlife_soc_limit", type="UINT16", scale=0.1 },
{ address=3728, name="pv_yield_total", type="UINT32" },
{ address=3730, name="pv_p", type="UINT16" },
{ address=5400, name="dess_active", type="UINT16" },
{ address=5401, name="dess_allow_grid_feed_in", type="UINT16" },
{ address=5402, name="dess_available", type="UINT16" },
{ address=5403, name="dess_charge_rate", type="UINT16", scale=10.0 },
{ address=5404, name="dess_error_code", type="UINT16" },
{ address=5405, name="dess_restrictions", type="UINT16" },
{ address=5406, name="dess_strategy", type="UINT16" },
{ address=5407, name="dess_target_soc", type="UINT16" },
]
[[inputs.modbus.metric]]
slave_id = 227 # VEBus (MultiPlus-II)
fields = [
{ address=26, name="ve_bat_v", type="UINT16", scale=0.01 },
{ address=27, name="ve_bat_i", type="INT16", scale=0.1 }
]
[[inputs.modbus.metric]]
slave_id = 1 # MPPT roof
fields = [
{ address=771, name="pv_bat_v", type="UINT16", scale=0.01 },
{ address=772, name="pv_bat_i", type="INT16", scale=0.1 },
{ address=784, name="pv_yield_today", type="UINT16", scale=0.1 },
{ address=3700, name="pv_v_0", type="UINT16", scale=0.01 },
{ address=3701, name="pv_v_1", type="UINT16", scale=0.01 },
{ address=3708, name="pv_yield_today_0", type="UINT16", scale=0.1 },
{ address=3709, name="pv_yield_today_1", type="UINT16", scale=0.1 },
{ address=3724, name="pv_p_0", type="UINT16" },
{ address=3725, name="pv_p_1", type="UINT16" },
{ address=3728, name="pv_yield_total", type="UINT32" },
{ address=3730, name="pv_p", type="UINT16" },
]
[[inputs.modbus.metric]]
slave_id = 225 # BMS
fields = [
{ address=258, name="bat_p", type="INT16" },
{ address=259, name="bat_v", type="UINT16", scale=0.01 },
{ address=262, name="bat_temp", type="INT16", scale=0.1 },
{ address=266, name="bat_soc", type="UINT16", scale=0.1 },
{ address=301, name="bat_out", type="UINT16", scale=0.1 },
{ address=302, name="bat_in", type="UINT16", scale=0.1 },
{ address=304, name="bat_soh", type="UINT16", scale=0.1 },
{ address=305, name="bat_cvl", type="UINT16", scale=0.1 },
{ address=306, name="bat_dvl", type="UINT16", scale=0.1 },
{ address=307, name="bat_ccl", type="UINT16", scale=0.1 },
{ address=308, name="bat_dcl", type="UINT16", scale=0.1 },
{ address=318, name="bat_min_cell_temp", type="INT16", scale=0.1 },
{ address=319, name="bat_max_cell_temp", type="INT16", scale=0.1 },
{ address=1290, name="bat_min_cell_v", type="UINT16", scale=0.01 },
{ address=1291, name="bat_max_cell_v", type="UINT16", scale=0.01 }
]
[[inputs.modbus.metric]]
slave_id = 30 # Grid meter
fields = [
{ address=2616, name="grid_v_l1", type="UINT16", scale=0.1 },
{ address=2618, name="grid_v_l2", type="UINT16", scale=0.1 },
{ address=2620, name="grid_v_l3", type="UINT16", scale=0.1 },
{ address=2634, name="grid_in", type="UINT32", scale=0.01 },
{ address=2636, name="grid_out", type="UINT32", scale=0.01 },
{ address=2638, name="grid_p_l1", type="INT32" },
{ address=2640, name="grid_p_l2", type="INT32" },
{ address=2642, name="grid_p_l3", type="INT32" },
{ address=2644, name="grid_hz", type="UINT16", scale=0.01 }
]
[[inputs.modbus.metric]]
slave_id = 21 # Ruuvi
fields = [
{ address=3304, name="t_temp", type="INT16", scale=0.01 },
{ address=3306, name="t_humidity", type="UINT16", scale=0.1 },
{ address=3307, name="t_battery", type="UINT16", scale=0.01 },
{ address=3308, name="t_pressure", type="UINT16" }
]
[[processors.starlark]]
namepass = ["modbus"]
source = '''
def apply(metric):
if "ac_consumption_l1" in metric.fields and "ac_consumption_l2" in metric.fields and "ac_consumption_l3" in metric.fields:
metric.fields["ac_consumption"] = (
metric.fields["ac_consumption_l1"] +
metric.fields["ac_consumption_l2"] +
metric.fields["ac_consumption_l3"]
)
if "grid_p_l1" in metric.fields and "grid_p_l2" in metric.fields and "grid_p_l3" in metric.fields:
metric.fields["grid_p"] = (
metric.fields["grid_p_l1"] +
metric.fields["grid_p_l2"] +
metric.fields["grid_p_l3"]
)
return metric
'''