johanmeijer / grott

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

Data correctness and consistency for SPF 3000TL LVM-48P #597

Open Ohrad opened 1 week ago

Ohrad commented 1 week ago

Hello,

I have been working on a home solar project that incorporates grott / grottserver as the mechanism for monitoring my Growatt SPF 3000TL LVM-48P. So far it has been working pretty well, and I am really impressed with the work being done here! I have grott sending the output via mqtt which gets consumed by influxdb, and then I am using Grafana to set up custom dashboards. I am noticing that the values being reported by Grott don't seem to make sense all of the time, and they are very spotty for me. I am attaching some screen captures of my grafana dashboards showing the data coming from grott for the PV Voltage,

In this first screenshot, you can see that the data seemed to be coming in fine and then the connection gets really spiky. In between the spikes, grott is actually reporting values but they seem to be wrong. grafana_spotty

In this screenshot, I have the live output of the mqtt messages next to the grafana dash. live_with_mqtt

In this last screen capture, I have zoomed in on the first screen capture, showing nice smooth plots of the data until about 10:50 when it starts to spike. smoother_start

Here is an example of one of the mqtt output messages: energy/growatt {"device": "TSEHHZ404A", "time": "2024-09-15T17:21:38", "buffered": "yes", "values": {"datalogserial": "JVH0D4D0N1", "pvserial": "TSEHHZ404A", "pvstatus": 12, "vpv1": 810, "vpv2": 0, "ppv1": 7090, "ppv2": 0, "buck1curr": 129, "buck2curr": 0, "op_watt": 3580, "pvpowerout": 3580, "op_va": 916480, "acchr_watt": 0, "acchr_VA": 0, "bat_Volt": 5391, "batterySoc": 100, "bus_volt": 2123, "grid_volt": 0, "line_freq": 0, "outputvolt": 1201, "pvgridvoltage": 1201, "outputfreq": 5999, "invtemp": 285, "dcdctemp": 256, "loadpercent": 119, "buck1_ntc": 271, "buck2_ntc": 281, "OP_Curr": 29, "Inv_Curr": 35, "AC_InWatt": 0, "AC_InVA": 0, "faultBit": 0, "warningBit": 0, "faultValue": 0, "warningValue": 0, "constantPowerOK": 1, "epvtoday": 7, "pvenergytoday": 7, "epvtotal": 1118, "eacCharToday": 0, "eacCharTotal": 90, "ebatDischarToday": 21, "ebatDischarTotal": 858, "eacDischarToday": 0, "eacDischarTotal": 20, "ACCharCurr": 0, "ACDischarWatt": 0, "ACDischarVA": 0, "BatDischarWatt": 0, "BatDischarVA": 0, "BatWatt": -2890, "invfanspeed": 36}}

Here is my grott.ini setup for my system, version 2.7.0:

[Generic]
verbose = False
ip = <local ip for computer hosting grottserver>

port = 5781
blockcmd = True 
compat = False
invtype = spf

[Growatt]
grottserver = True
grottip = <local ip for computer hosting grottserver>
grottport = 5279

[MQTT]

nomqtt = False
ip = 127.0.0.1
port = 1883
topic= energy/growatt
auth = True
user = <my_user>
password = <my_pass>

[PVOutput]

[influx]

[extension]

I'm hoping someone can help me figure out why the data being sent back is so spotty. I am also wondering if my grott.ini is set up correctly for my Growatt, as it seems like some of the values I am receiving from grott don't make sense. Are there some resources for what each key represents in the list of data being sent back? I checked out the Growatt Layout Definitions, but many of my keys are missing or do not line up exactly with what is in that guide. For what it's worth, I am a robotics software engineer by profession, and would be happy to contribute to this project if there is a bug with my setup or a missing feature.

Ohrad commented 1 week ago

It was behaving well up until just after noon when it dropped off.

good_solar_grafana

johanmeijer commented 1 week ago

Ok. The drop off can be caused b a time drift issue in the datalogger.

I also see that a lot of data historical data is being sent (buffered = yes). I am not sure why this is but normally this caused by drop of connection. So maybe you have a bad connection?

The drop off can be bypassed by setting:

time=server 

In [Generic] part of the grott.ini

Is there a reason why you use 2.7.0?

Ohrad commented 1 week ago

Interesting....thank you for the quick response. I will try updating the time setting in grott.ini.

No there is no reason why I am using 2.7.0 (that was just from the comment in the grott.ini file). I just cloned the git repo (looks like it defaults to branch:Master) and started from there. Is there a different version you recommend?

Ohrad commented 1 week ago

Is there a way to bypass the shinestick altogether? I have my monitoring computer right next to my Growatt and could easily hardwire a connection.

johanmeijer commented 1 week ago

Yes but then you have to use other software (available at github). Grott does not support a direct (Modbus) connection at this moment.

johanmeijer commented 1 week ago

Interesting....thank you for the quick response. I will try updating the time setting in grott.ini.

No there is no reason why I am using 2.7.0 (that was just from the comment in the grott.ini file). I just cloned the git repo (looks like it defaults to branch:Master) and started from there. Is there a different version you recommend?

No master branch (2.8.3) is ok!