muppet3000 / homeassistant-grott

Home Assistant Integration for Grott - MQTT
MIT License
65 stars 14 forks source link

Growatt Meter information missing #40

Open lepo80 opened 9 months ago

lepo80 commented 9 months ago

Hi. I installed Grott I integration using a docker image and the classic mosquito mqtt server. The Grott integration is working very well pointed out all Growatt inverter information, but all information managed by Growatt Meter is still missing. Where I wrong? Thanks.

muppet3000 commented 9 months ago

Firstly, in the other thread you mentioned that the data wasn't outputting the same variable names as what you had before. If you take a look here: https://github.com/muppet3000/homeassistant-grott/blob/main/examples/templates/template_configuration.yaml It's an example of how you can setup 'template' sensors in Home Assistant to copy the new values from grott into the old variable names so you can keep your history. It works really well (I use it myself).

Secondly, grott definitely supports the 'meter' installations as I've helped people to get it working, have you remembered to set the correct config type in the grott config.ini file?

Could you take a look at the chain here: https://github.com/muppet3000/homeassistant-grott/issues/7 and see if anything helps?

lepo80 commented 9 months ago

Thanks.. related to re use the sensor name to maintain historical data it is a genius idea!!!

But for my issue, I don't get the point. I read more times the reference suggested me. The issue is the same then mine, at the end the issue solved but it isn't so clear how. It may be that I have to set the docker variable "qttmtopic=True" or I have to change my invtype into grott.ini basing on the WS conversation from my Growatt Shilink. You can find below my APP variable data from my inverter/meter. But my grott HA integration doesn't see it. It see only one device within 37 items only. Thanks for any suggestion... Screenshot_2023-09-30-19-37-48-556_com growatt shinephones~2

lepo80 commented 9 months ago

is it possible that the Meter model is not defined, then the data is not collected by grott? the log is:

muppet3000 commented 9 months ago

You need to set your invtype in the grott.ini file. These are the available options: default,sph,spf,max, tl3 you have to pick one based on what type of inverter you have. What have you got it set to at the minute?

Are you seeing the missing values in the output from grott above? If you get the right invtype it should start appearing in the grott output.

lepo80 commented 9 months ago

Hi, thanks for your kindly support. I'm looking for my time to dedicate on it. I wasn't able to find the right inverter model, but trying a lot of time I found the tl3 is a good version. I have a new inverter and meter (chint666) model type configurations into grottconf.py but I will share tomorrow even if the battery information are not defined yet!. Any suggestions to make the reverse engineering analysis is welcome!

Thanks again!

muppet3000 commented 9 months ago

Thanks for the update, if it's a new inverter type that's not supported by grott then this integration won't display them until grott understands them. If you've had no luck with what you've added I recommend logging a bug over in the main grott repo: https://github.com/johanmeijer/grott and see if you can get some help there.

lepo80 commented 9 months ago

Hi, thanks for this suggestion. it was already done, but it seems that the grott project is not updated and not supported.

muppet3000 commented 9 months ago

Sorry - what do you mean by "it was already done"? Has someone already submitted a request for it and it hasn't been implemented? Could you share a link?

lepo80 commented 9 months ago

[SOLVED] Hi, I opened the issue into grott github only. nobody worked on that; the link is: https://github.com/johanmeijer/grott/issues/427 In any case, I found the solution that i paste here just only to avoid that other person with my same Inverter and Meter models point out to homeassistant-grott component similar issues.


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
muppet3000 commented 9 months ago

So are we good to close this as a duplicate of: #41 ?

lepo80 commented 9 months ago

yes. please. may you close it?

muppet3000 commented 9 months ago

Yes I'll do some admin tonight and update/close tickets accordingly