johanmeijer / grott

Growatt inverter monitor
https://github.com/johanmeijer/grott/wiki
395 stars 109 forks source link

No Meter Data collected #427

Open lepo80 opened 1 year ago

lepo80 commented 1 year ago

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:

lepo80 commented 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.


this is the configuration to be add into grottconf.py to read Growatt 3600TL-HX (T065104XTL3) and ChiNT DDSU666 meter (T065120). I used this configuration into this Docker version: ledidobe/grott:2.8.2

all relevant information are collected now, but, for my needs, i put some comments to avoid to collect not relevant data, fell free to remove these comments basing on your preference.

due to I don't have any battery installed, I wasn't able to verify all battery values.

    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}
    }}

also, it is needed to add all lines below into the right position

    self.recorddict.update(self.recorddict15)  #T065104XTL3
    self.recorddict.update(self.recorddict16)  #T065120
cantupaz commented 12 months ago

@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.