Open lepo80 opened 1 year ago
[SOLVED] - you should find below what I implemented to consider the new Growatt inverter and the specific meter models. unfortunatly I don't have any battery installed in my solar system, then I wasn't able to verify their data.
self.recorddict15 = {"T065104XTL3": {
"decrypt" : {"value" :"True"},
"pvserial" : {"value" :76, "length" : 10, "type" : "text", "divide" : 10},
"date" : {"value" :136, "divide" : 10},
"pvstatus" : {"value" :158, "length" : 2, "type" : "num"},
#"pvpowerin" : {"value" :162, "length" : 4, "type" : "num", "divide" : 10},
#"pv1voltage" : {"value" :170, "length" : 2, "type" : "num", "divide" : 10},
#"pv1current" : {"value" :174, "length" : 2, "type" : "num", "divide" : 10},
#"pv1watt" : {"value" :178, "length" : 4, "type" : "num", "divide" : 10},
#"pv2voltage" : {"value" :186, "length" : 2, "type" : "num", "divide" : 10},
#"pv2current" : {"value" :190, "length" : 2, "type" : "num", "divide" : 10},
#"pv2watt" : {"value" :194, "length" : 4, "type" : "num", "divide" : 10},
#"pvpowerout" : {"value" :250, "length" : 4, "type" : "num", "divide" : 10},
#"pvfrequentie" : {"value" :258, "length" : 2, "type" : "num", "divide" : 100},
#"pvgridvoltage" : {"value" :262, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridcurrent" : {"value" :266, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridpower" : {"value" :270, "length" : 4, "type" : "num", "divide" : 10},
#"pvgridvoltage2" : {"value" :278, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridcurrent2" : {"value" :282, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridpower2" : {"value" :286, "length" : 4, "type" : "num", "divide" : 10},
#"pvgridvoltage3" : {"value" :294, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridcurrent3" : {"value" :298, "length" : 2, "type" : "num", "divide" : 10},
#"pvgridpower3" : {"value" :302, "length" : 4, "type" : "num", "divide" : 10},
#"totworktime" : {"value" :346, "length" : 4, "type" : "num", "divide" : 7200},
"pvenergytoday" : {"value" :354, "length" : 4, "type" : "num", "divide" : 10},
"pvenergytotal" : {"value" :362, "length" : 4, "type" : "num", "divide" : 10},
"epvtotal" : {"value" :370, "length" : 4, "type" : "num", "divide" : 10},
"epv1today" : {"value" :378, "length" : 4, "type" : "num", "divide" : 10},
#"epv1total" : {"value" :386, "length" : 4, "type" : "num", "divide" : 10},
"epv2today" : {"value" :394, "length" : 4, "type" : "num", "divide" : 10},
#"epv2total" : {"value" :402, "length" : 4, "type" : "num", "divide" : 10},
"pvtemperature" : {"value" :530, "length" : 2, "type" : "num", "divide" : 10},
"etouser_tod" : {"value" :426, "length" : 4, "type" : "num", "divide" : 10},
#"etouser_tot" : {"value" :434, "length" : 4, "type" : "num", "divide" : 10},
"etogrid_tod" : {"value" :442, "length" : 4, "type" : "num", "divide" : 10},
"etogrid_tot" : {"value" :450, "length" : 4, "type" : "num", "divide" : 10},
#"elocalload_tod" : {"value" :458, "length" : 4, "type" : "num", "divide" : 10},
#"elocalload_tot" : {"value" :466, "length" : 4, "type" : "num", "divide" : 10},
#"pbusvolt" : {"value" :550, "length" : 2, "type" : "num", "divide" : 1},
#"nbusvolt" : {"value" :554, "length" : 2, "type" : "num", "divide" : 1},
#"ISO" : {"value" :490, "length" : 4, "type" : "num", "divide" : 10},
#"Temperature2" : {"value" :526, "length" : 4, "type" : "num", "divide" : 10},
#"Temperature5" : {"value" :542, "length" : 4, "type" : "num", "divide" : 10},
"pvipmtemperature" : {"value" :534, "length" : 2, "type" : "num", "divide" : 10}
} }
self.recorddict16 = {"T065120": {
"decrypt" : {"value" :"True"},
"datalogserial" : {"value" :16, "length" : 10, "type" : "text","incl" : "yes"},
"pvserial" : {"value" :76, "length" : 10, "type" : "text"},
"date" : {"value" :136, "divide" : 10},
"voltage_l1" : {"value" :160, "length" : 4, "type" : "num", "divide" : 10},
#"voltage_l2" : {"value" :168, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
#"voltage_l3" : {"value" :176, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
"Current_l1" : {"value" :184, "length" : 4, "type" : "num", "divide" : 10},
#"Current_l2" : {"value" :192, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
#"Current_l3" : {"value" :200, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
"act_power_l1" : {"value" :208, "length" : 4, "type" : "numx", "divide" : 10},
#"act_power_l2" : {"value" :216, "length" : 4, "type" : "numx", "divide" : 10,"incl" : "yes"},
#"act_power_l3" : {"value" :224, "length" : 4, "type" : "numx", "divide" : 10,"incl" : "yes"},
#"app_power_l1" : {"value" :232, "length" : 4, "type" : "numx", "divide" : 10}, #not used in HA
#"app_power_l2" : {"value" :240, "length" : 4, "type" : "numx", "divide" : 10,"incl" : "yes"}, #not used in HA
#"app_power_l3" : {"value" :248, "length" : 4, "type" : "numx", "divide" : 10,"incl" : "yes"}, #not used in HA
#"react_power_l1" : {"value" :256, "length" : 4, "type" : "numx","divide" : 10}, #not used in HA
#"react_power_l2" : {"value" :264, "length" : 4, "type" : "numx","divide" : 10,"incl" : "yes"}, #not used in HA
#"react_power_l3" : {"value" :272, "length" : 4, "type" : "numx","divide" : 10,"incl" : "yes"}, #not used in HA
#"powerfactor_l1" : {"value" :280, "length" : 4, "type" : "numx", "divide" : 1000}, #not used in HA
#"powerfactor_l2" : {"value" :288, "length" : 4, "type" : "numx", "divide" : 1000,"incl" : "yes"}, #not used in HA
#"powerfactor_l3" : {"value" :296, "length" : 4, "type" : "numx", "divide" : 1000,"incl" : "yes"}, #not used in HA
"pos_rev_act_power" : {"value" :304, "length" : 4, "type" : "numx", "divide" : 10},
#"powerfactor" : {"value" :328, "length" : 4, "type" : "numx", "divide" : 1000}, #not used in HA
#"frequency" : {"value" :336, "length" : 4, "type" : "num", "divide" : 10},
#"L1-2_voltage" : {"value" :344, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
#"L2-3_voltage" : {"value" :352, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
#"L3-1_voltage" : {"value" :360, "length" : 4, "type" : "num", "divide" : 10,"incl" : "yes"},
"pos_act_energy" : {"value" :368, "length" : 4, "type" : "numx", "divide" : 10},
"rev_act_energy" : {"value" :376, "length" : 4, "type" : "numx", "divide" : 10},
"eacharge_today" : {"value" :390, "length" : 4, "type" : "num", "divide" : 10},
"eacharge_total" : {"value" :398, "length" : 4, "type" : "num", "divide" : 10},
"edischrtoday" : {"value" :406, "length" : 4, "type" : "num", "divide" : 10},
"edischrtotal" : {"value" :414, "length" : 4, "type" : "num", "divide" : 10}
}}
self.recorddict.update(self.recorddict15) #T065104XTL3
self.recorddict.update(self.recorddict16) #T065120
@lepo80 Thanks for entering your solution here. My power meter sends the T065120 format of messages and your solution helped me to get the readings I needed.
@johanmeijer Would you consider integrating this into grott? I'd be happy to help test/validate if needed.
I started to use the grott into Docker installation, it works perfectly in proxy mode and write all inverter information into my MQTT server properly. but the meter data is not avaiable into mqtt; it seems that the meter data is not collected properly (e.g. power export to grid data is missing). The meter installed into my flat is ChiNT DDSU666. you should find below the Grott log. do you how how it is possible to collect and provide this data to MQTT, please?
thx
grott log: