Page 5 of 6
Re: Python Plugin: Growatt Inverter
Posted: Friday 21 October 2022 19:30
by jacobsentertainment
And some newer errors showing up I have never seen before.
Code: Select all
2022-10-21 19:27:12.448 Error: Growatt: 'onMessage' failed 'KeyError':'('Data',)'.
2022-10-21 19:27:12.448 Error: Growatt: Exception traceback:
2022-10-21 19:27:12.448 Error: Growatt: ----> Line 276 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py', function onMessage
2022-10-21 19:27:12.448 Error: Growatt: ----> Line 168 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py', function onMessage
2022-10-22 22:00:10.602 Error: EventSystem: Warning!, lua script /home/pi/domoticz/dzVents/runtime/dzVents.lua has been running for more than 10 seconds
2022-10-22 22:05:04.653 Error: Growatt: Google returned a Server Error.
2022-10-22 22:45:07.335 Error: Growatt: Google returned a Server Error.
2022-10-22 22:55:11.018 Error: Growatt: 'onMessage' failed 'KeyError':'('Data',)'.
2022-10-22 22:55:11.018 Error: Growatt: Exception traceback:
2022-10-22 22:55:11.018 Error: Growatt: ----> Line 276 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py', function onMessage
2022-10-22 22:55:11.018 Error: Growatt: ----> Line 168 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py', function onMessage
2022-10-22 23:45:03.327 Error: Growatt: Google returned a status: 502
2022-10-23 01:35:10.292 Error: Growatt: Google returned a Server Error.
2022-10-23 02:05:02.311 Error: Growatt: Google returned a status: 502
2022-10-23 02:35:12.295 Error: Growatt: Google returned a Server Error.
2022-10-23 02:45:12.299 Error: Growatt: Google returned a status: 502
2022-10-23 03:58:14.600 Error: Growatt: Google returned a status: 504
2022-10-23 04:40:05.665 Error: Growatt: Google returned a Server Error.
2022-10-23 05:20:05.270 Error: Growatt: Google returned a status: 502
Re: Python Plugin: Growatt Inverter
Posted: Sunday 30 October 2022 10:15
by jacobsentertainment
Problem solved the hard way, installed a shelly em3 and deleted the growatt plugin. I know this is no solution to the plugin but it works for me enjoy the weekend

Re: Python Plugin: Growatt Inverter
Posted: Sunday 20 November 2022 12:13
by Rolandet
Looks like I've got Growatt on the fritz again
SInce yesterday I'm not getting any data from the Growatt server to Domoticz
Log shows:
Code: Select all
2022-11-20 12:11:35.192 Error: Growatt : Call to function 'onMessage' failed, exception details:
2022-11-20 12:11:35.194 Error: Growatt : Traceback (most recent call last):
2022-11-20 12:11:35.194 Error: Growatt : File "/home/pi/domoticz/plugins/domoticz-growatt-webserver-pvoutput-plugin/plugin.py", line 276, in onMessage
2022-11-20 12:11:35.194 Error: Growatt : _plugin.onMessage(Connection, Data)
2022-11-20 12:11:35.194 Error: Growatt : File "/home/pi/domoticz/plugins/domoticz-growatt-webserver-pvoutput-plugin/plugin.py", line 173, in onMessage
2022-11-20 12:11:35.194 Error: Growatt : apiResponse = json.loads(strData)
2022-11-20 12:11:35.194 Error: Growatt : File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
2022-11-20 12:11:35.194 Error: Growatt : return _default_decoder.decode(s)
2022-11-20 12:11:35.194 Error: Growatt : File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
2022-11-20 12:11:35.194 Error: Growatt : obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2022-11-20 12:11:35.194 Error: Growatt : File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
2022-11-20 12:11:35.194 Error: Growatt : raise JSONDecodeError("Expecting value", s, err.value) from None
2022-11-20 12:11:35.194 Error: Growatt : json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Does anyone have any idea what to make of this?
(or am I hijacking someones topic? )
Re: Python Plugin: Growatt Inverter
Posted: Monday 28 November 2022 19:52
by wifiminime
i have the same issue for some time now...
Re: Python Plugin: Growatt Inverter
Posted: Wednesday 30 November 2022 23:57
by Barneby
I have to change the server address
in both Growatt Shinelink and Domoticz I'm using now server.growatt.com instead server-api.growatt.com
Maybe that will fix
Re: Python Plugin: Growatt Inverter
Posted: Saturday 17 December 2022 16:44
by Rolandet
Barneby wrote: ↑Wednesday 30 November 2022 23:57
I have to change the server address
in both Growatt Shinelink and Domoticz I'm using now server.growatt.com instead server-api.growatt.com
Maybe that will fix
Is it possible you needed to use your emailadress instead of a username, and now it's username? (maybe that's what I got wrong, cause i've deleted and reinstalled, and now it works)
Re: Python Plugin: Growatt Inverter
Posted: Friday 10 February 2023 17:12
by janvdberg
Anybody knows what's going on here?
Everything was working fine and now I get this error (I tried changing URLs and other settings to see if it triggered something, no success).
Code: Select all
2023-02-10 17:05:35 Queued asynchronous read aborted (server . growatt . com:80), [2] End of file.
2023-02-10 17:05:35 GroWatt Web: Disconnect event received for 'server . growatt . com:80'.
2023-02-10 17:05:35 GroWatt Web: onDisconnect called for connection to: server . growatt . com:80
2023-02-10 17:06:35 GroWatt Web: Transport set to: 'TCP/IP', server . growatt . com:80.
2023-02-10 17:06:35 GroWatt Web: 38 38 30 66 33 64 30 38 30 64 36 38 31 61 62 64 61 39 38 37 880f3d080d681abda987
2023-02-10 17:06:35 GroWatt Web: --------['SERVERID=e2118838bdb1880f3d080d681abda987|1676045195|1676045195;Path=/']
2023-02-10 17:07:25 GroWatt Web: Processing 'onHeartbeatCallback' message
2023-02-10 17:07:25 GroWatt Web: Acquiring GIL for 'onHeartbeatCallback'
2023-02-10 17:07:25 GroWatt Web: Calling message handler 'onHeartbeat' on 'module' type object.
2023-02-10 17:07:25 GroWatt Web: onHeartbeat called, Connection is alive.
2023-02-10 17:07:25 GroWatt Web: Acquiring GIL for 'onHeartbeatCallback'
2023-02-10 17:07:35 Queued asynchronous read aborted (server . growatt . com:80), [2] End of file.
2023-02-10 17:07:35 GroWatt Web: Disconnect event received for 'server .growatt . com:80'.
2023-02-10 17:07:35 GroWatt Web: onDisconnect called for connection to: server . growatt . com:80
(I editted the URLs so I could post this question)
Re: Python Plugin: Growatt Inverter
Posted: Friday 10 February 2023 21:08
by janvdberg
I did a little bit of debugging and the problem is that the Growatt plugin gets the following response:
Code: Select all
{"back":{"msg":"507","success":false}}
The result is that the plugin does nothing!
But the problem is not the plugin. The problem is the Growatt API.
Because this is the exact same response that I get when I curl the API:
Code: Select all
sudo curl -X POST -H "Content-Type': 'application/x-www-form-urlencoded; charset=utf-8" -d 'password=MYMD5PASSWORD&userName=MYNAME' http:// server-api . growatt . com / newTwoLoginAPI . do; echo
So either Growatt is ratelimiting? Or something else? Either way '507' is not a very descriptive API error.
If anyone knows what this means, I am happy to listen.
Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 11:22
by Rolandet
janvdberg wrote: ↑Friday 10 February 2023 21:08
I did a little bit of debugging and the problem is that the Growatt plugin gets the following response:
Code: Select all
{"back":{"msg":"507","success":false}}
The result is that the plugin does nothing!
But the problem is not the plugin. The problem is the Growatt API.
Because this is the exact same response that I get when I curl the API:
Code: Select all
sudo curl -X POST -H "Content-Type': 'application/x-www-form-urlencoded; charset=utf-8" -d 'password=MYMD5PASSWORD&userName=MYNAME' http:// server-api . growatt . com / newTwoLoginAPI . do; echo
So either Growatt is ratelimiting? Or something else? Either way '507' is not a very descriptive API error.
If anyone knows what this means, I am happy to listen.
507 = insufficient storage on server side.
Totally no help to us as users, but just putting it out there

Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 11:30
by janvdberg
FWIW at EXACTLY 00:00 the plugin started receiving data again.
So I *think* the Growatt API does some kind of ratelimiting and resets this every day.

- Screenshot 2023-02-11 11.33.41.png (193.75 KiB) Viewed 2844 times
Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 11:38
by waltervl
See for example discussion here:
https://github.com/indykoning/PyPi_Grow ... /issues/55
Seems 5 min polling is a good rate for keeping you unlocked.
Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 11:44
by Rolandet
At this very moment it seems the API is just not responding. The online dashboard is working fine, but with the same credentials I'm getting a 502 from the API
.
Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 11:54
by janvdberg
Where or how can I set the polling rate in Domoticz?
By inspecting the logs I can tell the polling occurs every 3 minutes, so I should be safe.
Three minutes is probably the default.
However I am still curious where you can change the polling interval in the Domoticz settings/interface?
Re: Python Plugin: Growatt Inverter
Posted: Saturday 11 February 2023 23:19
by waltervl
It cannot be changed, it is currently hardcoded in the plugin (6 heartbeats). The plugin author could add a setting parameter to be able to set polling to x minutes.
Re: Python Plugin: Growatt Inverter
Posted: Monday 13 February 2023 7:51
by janvdberg
waltervl wrote: ↑Saturday 11 February 2023 23:19
It cannot be changed, it is currently hardcoded in the plugin (6 heartbeats). The plugin author could add a setting parameter to be able to set polling to x minutes.
I think I figured it out.
After a successful API call, the plugin does 12 heartbeats (10 seconds per beat = 2 minutes). After these hardcoded heartbeats the plugin uses the runAgain variable to determine after how many EXTRA beats it should do another API call. The default is 6 (6 x 10 = 1 minute). So effectively you get an API call every 3 minutes (2+1).
I changed the runAgain variable on line 83 and line 227 to 18 (=3 minutes): so now I get an API call every 5 minutes (2+3).
This can be observed in the logs:
Code: Select all
2023-02-12 21:45:45.089 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:45:55.065 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:05.092 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:15.070 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:25.090 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:35.057 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:45.088 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:55.070 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:05.093 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:15.064 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:25.083 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:35.059 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:45.083 GroWatt Web API: onHeartbeat called, run again in 17 heartbeats.
2023-02-12 21:47:55.059 GroWatt Web API: onHeartbeat called, run again in 16 heartbeats.
2023-02-12 21:48:05.080 GroWatt Web API: onHeartbeat called, run again in 15 heartbeats.
2023-02-12 21:48:15.053 GroWatt Web API: onHeartbeat called, run again in 14 heartbeats.
2023-02-12 21:48:25.076 GroWatt Web API: onHeartbeat called, run again in 13 heartbeats.
2023-02-12 21:48:35.099 GroWatt Web API: onHeartbeat called, run again in 12 heartbeats.
2023-02-12 21:48:45.067 GroWatt Web API: onHeartbeat called, run again in 11 heartbeats.
2023-02-12 21:48:55.096 GroWatt Web API: onHeartbeat called, run again in 10 heartbeats.
2023-02-12 21:49:05.065 GroWatt Web API: onHeartbeat called, run again in 9 heartbeats.
2023-02-12 21:49:15.090 GroWatt Web API: onHeartbeat called, run again in 8 heartbeats.
2023-02-12 21:49:25.070 GroWatt Web API: onHeartbeat called, run again in 7 heartbeats.
2023-02-12 21:49:35.094 GroWatt Web API: onHeartbeat called, run again in 6 heartbeats.
2023-02-12 21:49:45.069 GroWatt Web API: onHeartbeat called, run again in 5 heartbeats.
2023-02-12 21:49:55.093 GroWatt Web API: onHeartbeat called, run again in 4 heartbeats.
2023-02-12 21:50:05.070 GroWatt Web API: onHeartbeat called, run again in 3 heartbeats.
2023-02-12 21:50:15.091 GroWatt Web API: onHeartbeat called, run again in 2 heartbeats.
2023-02-12 21:50:25.059 GroWatt Web API: onHeartbeat called, run again in 1 heartbeats.
2023-02-12 21:50:35.095 GroWatt Web API: Transport set to: 'TCP/IP', server-api . growatt . com : 80.
2023-02-12 21:50:35.105 GroWatt Web API: Connect directive received, action initiated successfully.
2023-02-12 21:50:35.155 GroWatt Web API: Growatt connected successfully.
Re: Python Plugin: Growatt Inverter
Posted: Thursday 16 March 2023 14:15
by Pvhpsb
Thanks works fine.
Re: Python Plugin: Growatt Inverter
Posted: Tuesday 09 May 2023 20:29
by Hemingr
Hello everyone,
I hope I am not intruding as a new user. I found this plugin after configuring my new PV into Domoticz and I can't get the right output I think.
As you can see on the devices page the correct total generation is given (116kWh) but on the dashboard I get a duplication of the current wattage.
Am I doing something wrong? I tried reinstalling the plugin but to no avail.
I was hoping one of you experts could shed light on this?
Re: Python Plugin: Growatt Inverter
Posted: Tuesday 09 May 2023 22:03
by waltervl
This is normal behavior, just let it run a couple of days and you will see how it works.
Re: Python Plugin: Growatt Inverter
Posted: Tuesday 16 May 2023 8:26
by rensbr
janvdberg wrote: ↑Monday 13 February 2023 7:51
waltervl wrote: ↑Saturday 11 February 2023 23:19
It cannot be changed, it is currently hardcoded in the plugin (6 heartbeats). The plugin author could add a setting parameter to be able to set polling to x minutes.
I think I figured it out.
After a successful API call, the plugin does 12 heartbeats (10 seconds per beat = 2 minutes). After these hardcoded heartbeats the plugin uses the runAgain variable to determine after how many EXTRA beats it should do another API call. The default is 6 (6 x 10 = 1 minute). So effectively you get an API call every 3 minutes (2+1).
I changed the runAgain variable on line 83 and line 227 to 18 (=3 minutes): so now I get an API call every 5 minutes (2+3).
This can be observed in the logs:
Code: Select all
2023-02-12 21:45:45.089 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:45:55.065 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:05.092 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:15.070 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:25.090 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:35.057 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:45.088 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:46:55.070 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:05.093 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:15.064 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:25.083 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:35.059 GroWatt Web API: onHeartbeat called, Connection is alive.
2023-02-12 21:47:45.083 GroWatt Web API: onHeartbeat called, run again in 17 heartbeats.
2023-02-12 21:47:55.059 GroWatt Web API: onHeartbeat called, run again in 16 heartbeats.
2023-02-12 21:48:05.080 GroWatt Web API: onHeartbeat called, run again in 15 heartbeats.
2023-02-12 21:48:15.053 GroWatt Web API: onHeartbeat called, run again in 14 heartbeats.
2023-02-12 21:48:25.076 GroWatt Web API: onHeartbeat called, run again in 13 heartbeats.
2023-02-12 21:48:35.099 GroWatt Web API: onHeartbeat called, run again in 12 heartbeats.
2023-02-12 21:48:45.067 GroWatt Web API: onHeartbeat called, run again in 11 heartbeats.
2023-02-12 21:48:55.096 GroWatt Web API: onHeartbeat called, run again in 10 heartbeats.
2023-02-12 21:49:05.065 GroWatt Web API: onHeartbeat called, run again in 9 heartbeats.
2023-02-12 21:49:15.090 GroWatt Web API: onHeartbeat called, run again in 8 heartbeats.
2023-02-12 21:49:25.070 GroWatt Web API: onHeartbeat called, run again in 7 heartbeats.
2023-02-12 21:49:35.094 GroWatt Web API: onHeartbeat called, run again in 6 heartbeats.
2023-02-12 21:49:45.069 GroWatt Web API: onHeartbeat called, run again in 5 heartbeats.
2023-02-12 21:49:55.093 GroWatt Web API: onHeartbeat called, run again in 4 heartbeats.
2023-02-12 21:50:05.070 GroWatt Web API: onHeartbeat called, run again in 3 heartbeats.
2023-02-12 21:50:15.091 GroWatt Web API: onHeartbeat called, run again in 2 heartbeats.
2023-02-12 21:50:25.059 GroWatt Web API: onHeartbeat called, run again in 1 heartbeats.
2023-02-12 21:50:35.095 GroWatt Web API: Transport set to: 'TCP/IP', server-api . growatt . com : 80.
2023-02-12 21:50:35.105 GroWatt Web API: Connect directive received, action initiated successfully.
2023-02-12 21:50:35.155 GroWatt Web API: Growatt connected successfully.
That seems to do the trick. But I still had problems with locking accounts. So I changed the value to 24 today. Now wait and see if that will work better.
Re: Python Plugin: Growatt Inverter
Posted: Tuesday 06 June 2023 21:10
by woppybob
I have the same problem, keeps getting blocked by Growatt. Is there a solution for this as well. Have changed the setting to 24.
Verstuurd vanaf mijn Pixel 6 met Tapatalk