Binding request: Growatt Server

Tags: #<Tag:0x00007f5c98628080> #<Tag:0x00007f5c9863ff28>

Hi,

Is someone willing and skilled enough to develop a binding that logs in to server.growatt.com and retrieves data on solar panels?

Here’s some documents for the API:
http://growatt.pl/wp-content/uploads/2020/01/Growatt-Server-API-Guide.pdf

And maybe this is helpfull?

Thanks.

If somebody want a particular binding it is recommended they post a bounty using bounty-source if they are unable to develop it themselves.
This is to encourage one of the volunteer developers to work on it.

Of course, but i thought i’d give it a shot in here first.

I’m using https://github.com/johanmeijer/grott/wiki/Rerouting-Growatt-Wifi-TCPIP-data-via-a-Linux-Server

I’ve seen that solution but it requires a dedicated Pi. Something i don’t want.
I’ve been playing with Home Assitant which has this little intergration for Growatt that made me think it would be possible to make a binding.

The Grott growatt monitor program ( https://github.com/johanmeijer/grott) does not require a seperate RPI. It can run at any linux system.

The latest version has a proxy mode that can be used without IP forwarding.

I run it on a system together with my home automation, mqtt, node red, influx db and grafana.

I’ve got the script running but not getting any data through mqtt. Probably because i have a ShineLanBox with a RF datalogger instead of the ShineWIFI-S wifi device.

Hi Nils, shine lan should work. I know there is at least one person is using it…

I believe the shine lan does not use encryption (and other record specs). Maybe you can test it with decrypt = False and/or compat = False.

See also:

If this not works than I have to look at the output.

Stupid question but did you rerouted the data via the device Grott is running?

I think i’ve tried all possible options regarding decrypt = False and/or compat = False. But still not getting any mqtt data.
I only set net.ipv4.ip_forward to 1 in /etc/sysctl.conf.

#Specify grott monitor configuration

[Generic]

Specify inverter id

inverterid = 5FZI909093

Specify mode (sniff or proxy)

mode = proxy

specify port to listen to (only proxy, default 5279)

port = 5279
#Decrypt is False if growatt communication is not encrypted (older inverters)
decrypt = False
#Compat is True and valoffset needs to be set if offset / growatt protocol has been changed. Since 2020 this needs to be specified (True,26)
compat = False
valueoffset = 26

[Growatt]
#ip address and port of Growatt server
ip = 47.91.67.66
port = 5279

[MQTT]
#mqtt parameters definitions
ip = 192.168.2.3
port = 1883
topic= energy/growatt
auth = False
user = …
password = …

LOG:
May 24 09:57:14 openhab systemd[1]: Started Grott Growatt monitor.
May 24 09:57:14 openhab grott[1589]: Grott Growatt logging monitor : 2.0.1
May 24 09:57:14 openhab grott[1589]: Grott Command line parameters processed:
May 24 09:57:14 openhab grott[1589]: verbose: True
May 24 09:57:14 openhab grott[1589]: config file: grott.ini
May 24 09:57:14 openhab grott[1589]: output file: <_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘UTF-8’>
May 24 09:57:14 openhab grott[1589]: nomqtt: False
May 24 09:57:14 openhab grott[1589]: trace: False
May 24 09:57:14 openhab grott[1589]: Grott settings:
May 24 09:57:14 openhab grott[1589]: _Generic:
May 24 09:57:14 openhab grott[1589]: version: 2.0.1
May 24 09:57:14 openhab grott[1589]: verbose: True
May 24 09:57:14 openhab grott[1589]: trace: False
May 24 09:57:14 openhab grott[1589]: config file: grott.ini
May 24 09:57:14 openhab grott[1589]: minrecl: 100
May 24 09:57:14 openhab grott[1589]: decrypt: False
May 24 09:57:14 openhab grott[1589]: compat: False
May 24 09:57:14 openhab grott[1589]: valueoffset: 26
May 24 09:57:14 openhab grott[1589]: offset: 6
May 24 09:57:14 openhab grott[1589]: inverterid: 5FZI909093
May 24 09:57:14 openhab grott[1589]: mode: proxy
May 24 09:57:14 openhab grott[1589]: grottport 5279
May 24 09:57:14 openhab grott[1589]: _MQTT:
May 24 09:57:14 openhab grott[1589]: nomqtt False
May 24 09:57:14 openhab grott[1589]: mqttip: 192.168.2.3
May 24 09:57:14 openhab grott[1589]: mqttport: 1883
May 24 09:57:14 openhab grott[1589]: mqtttopic: energy/growatt
May 24 09:57:14 openhab grott[1589]: mqtttauth: False
May 24 09:57:14 openhab grott[1589]: mqttuser:
May 24 09:57:14 openhab grott[1589]: mqttpsw:
May 24 09:57:14 openhab grott[1589]: _Growatt server:
May 24 09:57:14 openhab grott[1589]: growattip: 47.91.67.66
May 24 09:57:14 openhab grott[1589]: growattport: 5279
May 24 09:57:14 openhab grott[1589]: Grott proxy mode started

And then nothing…

Hi Nils. This looking oke but it did expect that data that was send from the inverter to the growatt server had been shown as well.

Did you configured your lan stick to send the data to server where grott is running? That is also needed for the proxy mode. Grott will then send the data to Growatt.

This can be done in eiher the setup dialog of the lan stick or via the Growatt website.

It is second part of what is described in the wiki in the IP-Forwarding description.
You can ignore the ip forwarding setup.

The growatt website has been changed so the screens look different. I will update the wiki for this.

I do understand that it is not totally clear that also in proxy mode you need to send the growatt data via the server grott is running. I will describe that as well.

1 Like

Thanks Johan, got it working now.

And for the grott.ini file i had to use :
decrypt = True
compat = False

My inverter is a Growatt - 4200MTL-S.

1 Like