Growatt and ecocms

I'm trying to set up a raspberry Pi and ecocms to be my monitoring platform. I have a growatt inverter which I can communiocate with Shinenet and PVBeancounter. Is there any available scrpt that anyone is aware of to extract data from growatt with Linux?

TrystanLea's picture

Re: Growatt and ecocms

there seems to be a spec sheet for the rs232 comms: http://snafu.priv.at/mystuff/growatt-proto.pdf and a perl script by a guy called Alexander Zangerl: http://snafu.priv.at/mystuff/growatt.html, can that be used?

 

 

tommiy's picture

Re: Growatt and ecocms

These detail the pre modbus implementation. This is what the content pf snarfu state. PVBean apparently has the modbus protocol spec and i've asked for that as well as emailing the contact on the bottom of the snarf documentation.

gor1don's picture

Re: Growatt and ecocms

Did you get any further with this? I have a Shine net agent that monitors the comms between the PC and the inverter. I see commands sent and responses received, e.g.

INFO [Thread-262] (BlueToothCommandSender.java:94) - commu = true
INFO [Thread-262] (BlueToothCommandSender.java:95) - rs = true
INFO [Thread-262] (BlueToothCommandSender.java:96) - inverter is lost = false
INFO [Thread-262] (AbstractCommandSender.java:202) - command = 3f 23 3 32 42 0
0 de
INFO [Thread-262] (AbstractCommandSender.java:206) - returnData = 23 3f 3 32 42
15 0 0 0 0 0 0 0 0 44 0 0 61 f0 0 0 81 aa 0 0 f1 38 5 a0
INFO [Thread-262] (BlueToothCommandSender.java:94) - commu = true
INFO [Thread-262] (BlueToothCommandSender.java:95) - rs = true
INFO [Thread-262] (BlueToothCommandSender.java:96) - inverter is lost = false
INFO [Thread-262] (AbstractCommandSender.java:202) - command = 3f 23 3 32 41 0
0 dd
INFO [Thread-262] (AbstractCommandSender.java:206) - returnData = 23 3f 3 32 41
23 1 d 3b 0 0 66 2f 9 b8 0 65 13 81 63 1f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 84
1e 19 7 2b
INFO [Thread-262] (BlueToothCommandSender.java:94) - commu = true
INFO [Thread-262] (BlueToothCommandSender.java:95) - rs = true
INFO [Thread-262] (BlueToothCommandSender.java:96) - inverter is lost = false
INFO [Thread-262] (AbstractCommandSender.java:202) - command = 3f 23 3 32 42 0
0 de
INFO [Thread-262] (AbstractCommandSender.java:206) - returnData = 23 3f 3 32 42
15 0 0 0 0 0 0 0 0 44 0 0 61 f0 0 0 81 aa 0 0 f1 38 5 a0
INFO [Thread-262] (BlueToothCommandSender.java:94) - commu = true
INFO [Thread-262] (BlueToothCommandSender.java:95) - rs = true
INFO [Thread-262] (BlueToothCommandSender.java:96) - inverter is lost = false
INFO [Thread-262] (AbstractCommandSender.java:202) - command = 3f 23 3 32 41 0
0 dd
INFO [Thread-262] (AbstractCommandSender.java:206) - returnData = 23 3f 3 32 41
23 1 d 1e 0 0 68 48 9 ae 0 68 13 85 65 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 84
1e 19 7 4d

 

Is it just a question of using the Raspberry pi to send the command and then to capture the data via the serial port?

Elwell's picture

Re: Growatt and ecocms

Hi folks - awakening an old thread.

I've just had 10*250w panels and a Growatt Sungold 3000 fitted. Sadly their 'remote monitor' turned out to be a non-hackable (ahem, without a soldering iron) http://efergy.com/au/products/electricity-monitors/elitev3-monitor

Thanks to the wondrous world of .au wiring, my ideal setup of 3 CT sensors arranged over load (house), supply (grid) and generation (PV) isn't possible as there's no way to get the house busbars separated (and you need a licenced spark to do any work on power over here). Secondly, the nice metal meter box doesn't really bode well for mounting a radio transmitter inside...

so, time to investigate the inverter rs232...

Like the original poster I couldn't get the perl script to work, so set about hacking modbus (new to me) and ended up with https://github.com/Elwell/solarmon -- Still a work in progress.

I'm using read_value.py to read out the values and comparing the fields with what's on the display at the same time (ish - not easy when at work and doing it over SSH)

when all done, read_pv will datalog at o(5s) intervals for local detailed logs, and publish to local mqtt broker and consolidated data to pvoutput.org. This will be started / stopped at sunrise/sunset (calculated with pyephem) so that I get a daily summary

oh, and later on I'll build up my emontx board (sadly the damn jack sockets I purchased locally don't match the PCB...) but I'll also see if I can make an ANSI optical probe to read the EM1000 meter since the ct coils can't tell direction...

Andrew

Caspianjvc's picture

Re: Growatt and ecocms

How are your scripts going? I have a raspberry pi that I am interested in using with my sun gold 3000. Do you have more info on how to automate the output. Do you just create a cron job to trigger one of the scripts?

Elwell's picture

Re: Growatt and ecocms

Hi Caspianjvc,

Well, system is still only half finished - busy doing other things and it was working well enough...

So - I have a nightly cron job at 10pm on a guruplug that uses pyephem to calculate the next sunrise and sunset and publish these as a retained message to my broker. It also sets up two 'at' jobs - one to start off the monitoring at sunrise (running in screen as I haven't propely daemonised it) and a second to kill off the tasks at sunset. This means that the inverter is normally booted (ie, serial port responds) even if it's not generating any significant amount of power. 

The actual monitor probe then queries the inverter over modbus-rtu@9600 baud and publishes to the broker, as well as a daily logfile (pvlog-YYYY-MM-DD.log)  - I don't need to worry about log rollover as it starts and stops during one day.

ie

andrew@mythic:~$ mosquitto_sub -h localhost -v -t \#
sunrise 2013-12-11 05:03:20
sunset 2013-12-11 19:16:25
solar/AC_Hz 49.98
solar/PV_A 7.9
solar/timestamp 1386744849.91
solar/pid 22990
solar/AC_V 250.7
solar/Out_W 1973.8
solar/PV_W 2075.1
solar/PV_V 261.2
solar/kWh_Total 26.8
solar/kWh_today 11.6

 

To get averaged data I then have a subscriber process on my nas that summarises and publishes

Hope that helps - once I tidy it up and remove some of the DEBUG print stuff I'll push to github again

 

Andrew

(one thing I'm unhappy about is that the old school perl script can pull the inverter temp out and I haven't found the modbus equvalent register yet)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.