Python Plugin: Growatt Inverter

Python and python framework

Moderator: leecollings

anconakip
Posts: 17
Joined: Tuesday 30 September 2014 12:41
Target OS: Raspberry Pi / ODroid
Domoticz version: 7722
Contact:

Re: Python Plugin: Growatt Inverter

Post by anconakip »

Can someone help me? i get an error while using de plugin:

2020-03-18 11:04:49.581 Error: (growatt) 'onStart' failed 'KeyError'.
2020-03-18 11:04:49.581 Error: (growatt) ----> Line 260 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py'
2020-03-18 11:04:49.581 Error: (growatt) ----> Line 135 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py'
2020-03-18 11:04:49.581 Error: (growatt) ----> Line 349 in '/home/pi/domoticz/plugins/Domoticz-Growatt-Webserver-Plugin/plugin.py'

What to do?
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

Had the same issue.
- Stopped the plugin
- Removed the Growatt icon (select the icons press red delete button).
Domoticz-growatt.JPG
Domoticz-growatt.JPG (53.7 KiB) Viewed 4162 times
- Restarted the plugin.
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

Currently building on expanding the Current Plugin. So much interesting info to find.
Growatt.JPG
Growatt.JPG (145.95 KiB) Viewed 4118 times
However still does not work as expected all the time.

Code: Select all

2020-04-14 19:51:35.345 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 19:51:35.345 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:51:35.345 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:58:35.815 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 19:58:35.815 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:58:35.816 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:03:35.402 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 20:03:35.402 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:03:35.402 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:04:35.469 Error: (Growatt-dev) No transport, write directive to 'Growatt Portal API' ignored.
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
upiter81
Posts: 1
Joined: Tuesday 10 March 2020 18:02
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.1
Location: Polska
Contact:

Re: Python Plugin: Growatt Inverter

Post by upiter81 »

How can I get this additional parameters?:
sincze wrote: Tuesday 14 April 2020 21:05 Currently building on expanding the Current Plugin. So much interesting info to find.
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

Obtained by calling an additional URL from the Growatt interface.
However after specific time the cookie expires and the data is not updated anymore so that is a big miss.
Seems to be unable for me to fix it at the moment.

Code: Select all

2020-04-18 16:16:51.193 (Growatt-dev) HTTP Details (2):
2020-04-18 16:16:51.193 (Growatt-dev) >'Status':'302'
2020-04-18 16:16:51.193 (Growatt-dev) >'Headers':
2020-04-18 16:16:51.193 (Growatt-dev) ---->'Date':'Sat, 18 Apr 2020 14:16:51 GMT'
2020-04-18 16:16:51.193 (Growatt-dev) ---->'Content-Length':'0'
2020-04-18 16:16:51.194 (Growatt-dev) ---->'Connection':'keep-alive'
2020-04-18 16:16:51.194 (Growatt-dev) ---->'Set-Cookie':
2020-04-18 16:16:51.194 (Growatt-dev) --------['JSESSIONID=E5F94E6433C6A154CF8A913123456789; Path=/; HttpOnly']
2020-04-18 16:16:51.194 (Growatt-dev) --------['SERVERID=e86db72cfd4d7e78f9dfe06123456789|123456789|123456789;Path=/']
2020-04-18 16:16:51.194 (Growatt-dev) ---->'Location':'/error.do?errorMess=errorNoLogin'
The following does not catch it so it seems.

Code: Select all

 elif (Status == 302):
                Domoticz.Error("Probably no login possible!.")                
                Connection.Send(self.cookieRequest())
Maybe need help from @Dnpwwo to fix it :D
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
MdeBoer
Posts: 10
Joined: Thursday 23 January 2020 14:09
Target OS: Raspberry Pi / ODroid
Domoticz version: 11942
Location: Alkmaar, NL
Contact:

Re: Python Plugin: Growatt Inverter

Post by MdeBoer »

@Sincze, Is it possible to retrieve the "month total"? I'm trying to edit the plugin.py but im stuc on the Device. I edit following pice of code

Code: Select all

elif ('powerValue' in apiResponse):
                    current = apiResponse['powerValue']
                    total = apiResponse['totalValue']
                    totalmonth = apiResponse['monthValue']                            # Convert kWh to Wh
                    sValue=str(current)+";"+str( float(total)*1000 )+";"+str(totalmonth)
                    Domoticz.Log("Currently producing: "+str(current)+" Watt. Totall produced: "+str(total)+" kWh in Wh that is: "+str(float(total)*1000)+" Month totall: "+str(totalmonth)+" kWh" )
                    UpdateDevice(Unit=1, nValue=0, sValue=sValue, TimedOut=0)
                    UpdateDevice(Unit=2, nValue=0, sValue=current, TimedOut=0)
                    UpdateDevice(Unit=3, nValue=0, SValue=totalmonth, TimeOut=0)
I also edit the create devices part. That piece works fine, the device is being created. but the device wouldn't be updated. Is there something special whit the update device part?
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

MdeBoer wrote: Saturday 18 April 2020 19:09 @Sincze, Is it possible to retrieve the "month total"? I'm trying to edit the plugin.py but im stuc on the Device. I edit following pice of code

Code: Select all

elif ('powerValue' in apiResponse):
                    current = apiResponse['powerValue']
                    total = apiResponse['totalValue']
                    totalmonth = apiResponse['monthValue']                            # Convert kWh to Wh
                    sValue=str(current)+";"+str( float(total)*1000 )+";"+str(totalmonth)
                    Domoticz.Log("Currently producing: "+str(current)+" Watt. Totall produced: "+str(total)+" kWh in Wh that is: "+str(float(total)*1000)+" Month totall: "+str(totalmonth)+" kWh" )
                    UpdateDevice(Unit=1, nValue=0, sValue=sValue, TimedOut=0)
                    UpdateDevice(Unit=2, nValue=0, sValue=current, TimedOut=0)
                    UpdateDevice(Unit=3, nValue=0, SValue=totalmonth, TimeOut=0)
I also edit the create devices part. That piece works fine, the device is being created. but the device wouldn't be updated. Is there something special whit the update device part?
mmm. Well I notice this:

Code: Select all

UpdateDevice(Unit=3, nValue=0, SValue=totalmonth, TimeOut=0)
[/code]

SValue?? doest that exist? The rest says sValue.

According to my info (but I could be wrong. sValue = &nvalue=0&svalue=COUNTER;USAGE
So it could be your sValue by adding totalmonth is illegal.
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
MdeBoer
Posts: 10
Joined: Thursday 23 January 2020 14:09
Target OS: Raspberry Pi / ODroid
Domoticz version: 11942
Location: Alkmaar, NL
Contact:

Re: Python Plugin: Growatt Inverter

Post by MdeBoer »

SValue?? doest that exist? The rest says sValue.
That was an issue, thanks!

Code: Select all

sValue=str(current)+";"+str( float(total)*1000 )+";"+str(totalmonth)
The above doesn't work indeed, I made it back to original. (see below) Is there an easy way to get the "month total" in a device?

Code: Select all

sValue=str(current)+";"+str( float(total)*1000 )
Edit: I made a mistake, I thought die code above was made to set the data in the string so it can send to the devices. But it's only for the first Device!.

I'm taking a look to the code again. Maybe I a find a way myself.
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

MdeBoer wrote: Saturday 18 April 2020 21:05
The above doesn't work indeed, I made it back to original. (see below) Is there an easy way to get the "month total" in a device?
Nice Job.
Why not create an additional device like a custom sensor to store the month total in?
Stay away from incremental counters as that will work against you.
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
rvandijk
Posts: 1
Joined: Friday 24 April 2020 21:01
Target OS: NAS (Synology & others)
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by rvandijk »

Hi!

Stumbled upon this thread a few days ago. I also have Growatt inverter and was using an energy meter with a s0 connection to get power values into domoticz. Sadly the energy meter broke down last week. So, I started looking if someone already tried to use the API from Growatt itself. And see here...

I got the plugin working in Domoticz on my Synology NAS. Great!
Just a few things I am wondering about:

- Why is the plugin creating two devices? Is it not possible to combine? (For my 'slimme meter' also more values are combined in 1 device)
- Only the totally produced kWH is stored in a device. Is it also possible to story only the day total? (Because I am sending it also to Grafana for nicer graphs and dashboarding). This value is send in the response, example: "todayValue":"13.7"

Could you also share your beta code to get more data like you showed in the screenshots?
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

rvandijk wrote: Friday 24 April 2020 21:08 Q: Why is the plugin creating two devices? Is it not possible to combine? (For my 'slimme meter' also more values are combined in 1 device)
A: It should create the follwing devices:
- On/Off
- Watt
- KwH
rvandijk wrote: Friday 24 April 2020 21:08 Q:- Only the totally produced kWH is stored in a device. Is it also possible to story only the day total? (Because I am sending it also to Grafana for nicer graphs and dashboarding). This value is send in the response, example: "todayValue":"13.7"
A: You can do that as that data is available however it will mess up the current counter AS that should be incremental. You can add a device and store it in a custom sensor for example. I just push all received data straight into Influx / Grafana and dit not worry about the daily result as that is stored in Domoticz for me.
rvandijk wrote: Friday 24 April 2020 21:08 Q: Could you also share your beta code to get more data like you showed in the screenshots?
A: It's available in the dev branch. :lol:
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
vandermark1977
Posts: 11
Joined: Sunday 11 December 2016 20:10
Target OS: -
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by vandermark1977 »

I have a new Growatt inverter and the growatt portal works fine. I can login and see all data via server.growatt.com

I added new hardware with your plugin and a few numbers come in but after 2 measurements it is not renewed. This is the log regarding the Growatt plugin:

Code: Select all

2020-05-15 15:40:19.982 (Growatt Omvormer) Pushing 'onHeartbeatCallback' on to queue
2020-05-15 15:40:20.014 (Growatt Omvormer) Processing 'onHeartbeatCallback' message
2020-05-15 15:40:20.014 (Growatt Omvormer) Calling message handler 'onHeartbeat'.
2020-05-15 15:40:20.014 (Growatt Omvormer) onHeartbeat called, run again in 3 heartbeats.
2020-05-15 15:40:29.983 (Growatt Omvormer) Pushing 'onHeartbeatCallback' on to queue
2020-05-15 15:40:30.030 (Growatt Omvormer) Processing 'onHeartbeatCallback' message
2020-05-15 15:40:30.030 (Growatt Omvormer) Calling message handler 'onHeartbeat'.
2020-05-15 15:40:30.030 (Growatt Omvormer) onHeartbeat called, run again in 2 heartbeats.
2020-05-15 15:40:39.985 (Growatt Omvormer) Pushing 'onHeartbeatCallback' on to queue
2020-05-15 15:40:39.997 (Growatt Omvormer) Processing 'onHeartbeatCallback' message
2020-05-15 15:40:39.997 (Growatt Omvormer) Calling message handler 'onHeartbeat'.
2020-05-15 15:40:39.997 (Growatt Omvormer) onHeartbeat called, run again in 1 heartbeats.
2020-05-15 15:40:50.167 (Growatt Omvormer) 31 33 3a 34 30 3a 35 30 20 47 4d 54 0d 0a 43 6f 6e 74 65 6e 13:40:50.GMT..Conten
2020-05-15 15:40:50.167 (Growatt Omvormer) 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f t-Type:.application/
2020-05-15 15:40:50.167 (Growatt Omvormer) 6a 73 6f 6e 3b 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0d 0a json;charset=UTF-8..
2020-05-15 15:40:50.167 (Growatt Omvormer) 53 65 74 2d 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 53 49 4f 4e Set-Cookie:.JSESSION
2020-05-15 15:40:50.167 (Growatt Omvormer) 49 44 3d 31 33 38 46 45 45 44 45 36 35 41 34 38 43 39 35 37 ID=138FEEDE65A48C957
2020-05-15 15:40:50.167 (Growatt Omvormer) 32 34 32 39 30 35 38 34 42 31 33 35 37 46 36 3b 20 50 61 74 24290584B1357F6;.Pat
2020-05-15 15:40:50.167 (Growatt Omvormer) 68 3d 2f 3b 20 48 74 74 70 4f 6e 6c 79 0d 0a 53 65 74 2d 43 h=/;.HttpOnly..Set-C
2020-05-15 15:40:50.167 (Growatt Omvormer) 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d 31 37 36 38 ookie:.SERVERID=1768
2020-05-15 15:40:50.167 (Growatt Omvormer) 62 62 32 33 31 35 61 64 36 61 64 30 61 31 65 36 63 36 62 39 bb2315ad6ad0a1e6c6b9
2020-05-15 15:40:50.167 (Growatt Omvormer) 30 30 63 32 61 63 62 36 7c 31 35 38 39 35 35 30 30 35 30 7c 00c2acb6|1589550050|
2020-05-15 15:40:50.167 (Growatt Omvormer) 31 35 38 39 35 35 30 30 35 30 3b 50 61 74 68 3d 2f 0d 0a 58 1589550050;Path=/..X
2020-05-15 15:40:50.167 (Growatt Omvormer) 2d 43 61 63 68 65 3a 20 4d 49 53 53 20 66 72 6f 6d 20 73 6f -Cache:.MISS.from.so
2020-05-15 15:40:50.168 (Growatt Omvormer) 6c 2d 70 72 6f 64 2d 66 69 6c 74 65 72 2d 30 35 2d 64 72 6f l-prod-filter-05-dro
2020-05-15 15:40:50.168 (Growatt Omvormer) 2e 73 6f 6c 63 6f 6e 2e 6e 6c 0d 0a 43 6f 6e 74 65 6e 74 2d .solcon.nl..Content-
2020-05-15 15:40:50.168 (Growatt Omvormer) 4c 65 6e 67 74 68 3a 20 31 30 33 39 0d 0a 43 6f 6e 6e 65 63 Length:.1039..Connec
2020-05-15 15:40:50.168 (Growatt Omvormer) 74 69 6f 6e 3a 20 43 6c 6f 73 65 0d 0a 0d 0a 7b 22 62 61 63 tion:.Close....{"bac
2020-05-15 15:40:50.168 (Growatt Omvormer) 6b 22 3a 7b 22 69 73 4f 70 65 6e 44 65 76 69 63 65 4c 69 73 k":{"isOpenDeviceLis
2020-05-15 15:40:50.168 (Growatt Omvormer) 74 22 3a 31 2c 22 69 73 4f 70 65 6e 44 65 76 69 63 65 50 61 t":1,"isOpenDevicePa
2020-05-15 15:40:50.168 (Growatt Omvormer) 72 61 6d 73 22 3a 30 2c 22 64 61 74 61 22 3a 5b 7b 22 70 6c rams":0,"data":[{"pl
2020-05-15 15:40:50.168 (Growatt Omvormer) 61 6e 74 4e 61 6d 65 22 3a 22 4d 6f 75 74 65 72 69 6a 20 32 antName":"Mouterij.2
2020-05-15 15:40:50.168 (Growatt Omvormer) 30 20 57 61 67 65 6e 69 6e 67 65 6e 22 2c 22 70 6c 61 6e 74 0.Wageningen","plant
2020-05-15 15:40:50.168 (Growatt Omvormer) 49 64 22 3a 22 33 30 36 34 33 31 22 7d 5d 2c 22 73 65 72 76 Id":"306431"}],"serv
2020-05-15 15:40:50.168 (Growatt Omvormer) 69 63 65 22 3a 22 31 22 2c 22 71 75 61 6c 69 74 79 22 3a 22 ice":"1","quality":"
2020-05-15 15:40:50.168 (Growatt Omvormer) 30 22 2c 22 69 73 4f 70 65 6e 53 6d 61 72 74 46 61 6d 69 6c 0","isOpenSmartFamil
2020-05-15 15:40:50.168 (Growatt Omvormer) 79 22 3a 30 2c 22 74 6f 74 61 6c 44 61 74 61 22 3a 7b 7d 2c y":0,"totalData":{},
2020-05-15 15:40:50.168 (Growatt Omvormer) 22 73 75 63 63 65 73 73 22 3a 74 72 75 65 2c 22 75 73 65 72 "success":true,"user
2020-05-15 15:40:50.168 (Growatt Omvormer) 22 3a 7b 22 75 69 64 22 3a 22 22 2c 22 75 73 65 72 4c 61 6e ":{"uid":"","userLan
2020-05-15 15:40:50.168 (Growatt Omvormer) 67 75 61 67 65 22 3a 22 68 6f 22 2c 22 69 6e 76 65 72 74 65 guage":"ho","inverte
2020-05-15 15:40:50.168 (Growatt Omvormer) 72 47 72 6f 75 70 22 3a 5b 5d 2c 22 74 69 6d 65 5a 6f 6e 65 rGroup":[],"timeZone
2020-05-15 15:40:50.168 (Growatt Omvormer) 22 3a 31 2c 22 6c 6e 67 22 3a 22 22 2c 22 64 61 74 61 41 63 ":1,"lng":"","dataAc
2020-05-15 15:40:50.168 (Growatt Omvormer) 71 4c 69 73 74 22 3a 5b 5d 2c 22 74 79 70 65 22 3a 30 2c 22 qList":[],"type":0,"
2020-05-15 15:40:50.168 (Growatt Omvormer) 70 61 73 73 77 6f 72 64 22 3a 22 37 64 33 39 34 61 61 32 38 password":"7d394aa28
2020-05-15 15:40:50.168 (Growatt Omvormer) 38 39 38 34 61 38 30 64 66 33 61 66 64 61 34 63 34 35 36 35 8984a80df3afda4c4565
2020-05-15 15:40:50.168 (Growatt Omvormer) 63 36 66 22 2c 22 69 73 56 61 6c 69 50 68 6f 6e 65 22 3a 30 c6f","isValiPhone":0
2020-05-15 15:40:50.168 (Growatt Omvormer) 2c 22 6b 69 6e 64 22 3a 30 2c 22 6d 61 69 6c 4e 6f 74 69 63 ,"kind":0,"mailNotic
2020-05-15 15:40:50.168 (Growatt Omvormer) 65 22 3a 74 72 75 65 2c 22 69 64 22 3a 34 37 36 38 34 32 2c e":true,"id":476842,
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 6c 61 73 74 4c 6f 67 69 6e 49 70 22 3a 22 31 30 30 2e 31 "lastLoginIp":"100.1
2020-05-15 15:40:50.169 (Growatt Omvormer) 32 30 2e 39 36 2e 39 22 2c 22 70 68 6f 6e 65 4e 75 6d 22 3a 20.96.9","phoneNum":
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 2b 33 31 36 32 34 36 32 32 30 37 39 22 2c 22 61 70 70 72 "+31624622079","appr
2020-05-15 15:40:50.169 (Growatt Omvormer) 6f 76 65 64 22 3a 66 61 6c 73 65 2c 22 61 72 65 61 22 3a 22 oved":false,"area":"
2020-05-15 15:40:50.169 (Growatt Omvormer) 45 75 72 6f 70 65 22 2c 22 73 6d 73 4e 6f 74 69 63 65 22 3a Europe","smsNotice":
2020-05-15 15:40:50.169 (Growatt Omvormer) 66 61 6c 73 65 2c 22 69 73 41 67 65 6e 74 22 3a 30 2c 22 74 false,"isAgent":0,"t
2020-05-15 15:40:50.169 (Growatt Omvormer) 6f 6b 65 6e 22 3a 22 22 2c 22 6e 69 63 6b 4e 61 6d 65 22 3a oken":"","nickName":
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 22 2c 22 70 61 72 65 6e 74 55 73 65 72 49 64 22 3a 30 2c "","parentUserId":0,
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 63 75 73 74 6f 6d 65 72 43 6f 64 65 22 3a 22 22 2c 22 63 "customerCode":"","c
2020-05-15 15:40:50.169 (Growatt Omvormer) 6f 75 6e 72 74 79 22 3a 22 4e 65 74 68 65 72 6c 61 6e 64 73 ounrty":"Netherlands
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 2c 22 69 73 50 68 6f 6e 65 4e 75 6d 52 65 67 22 3a 30 2c ","isPhoneNumReg":0,
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 63 72 65 61 74 65 44 61 74 65 22 3a 22 32 30 32 30 2d 30 "createDate":"2020-0
2020-05-15 15:40:50.169 (Growatt Omvormer) 35 2d 31 34 20 32 30 3a 35 32 3a 32 36 22 2c 22 72 69 67 68 5-14.20:52:26","righ
2020-05-15 15:40:50.169 (Growatt Omvormer) 74 6c 65 76 65 6c 22 3a 31 2c 22 61 70 70 54 79 70 65 22 3a tlevel":1,"appType":
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 63 22 2c 22 73 65 72 76 65 72 55 72 6c 22 3a 22 22 2c 22 "c","serverUrl":"","
2020-05-15 15:40:50.169 (Growatt Omvormer) 6c 61 74 22 3a 22 22 2c 22 6c 61 73 74 4c 6f 67 69 6e 54 69 lat":"","lastLoginTi
2020-05-15 15:40:50.169 (Growatt Omvormer) 6d 65 22 3a 22 32 30 32 30 2d 30 35 2d 31 35 20 32 31 3a 34 me":"2020-05-15.21:4
2020-05-15 15:40:50.169 (Growatt Omvormer) 30 3a 35 30 22 2c 22 72 6f 6c 65 49 64 22 3a 30 2c 22 65 6e 0:50","roleId":0,"en
2020-05-15 15:40:50.169 (Growatt Omvormer) 61 62 6c 65 64 22 3a 74 72 75 65 2c 22 61 67 65 6e 74 43 6f abled":true,"agentCo
2020-05-15 15:40:50.169 (Growatt Omvormer) 64 65 22 3a 22 41 4e 4a 57 32 22 2c 22 69 6e 76 65 72 74 65 de":"ANJW2","inverte
2020-05-15 15:40:50.169 (Growatt Omvormer) 72 4c 69 73 74 22 3a 5b 5d 2c 22 69 73 56 61 6c 69 45 6d 61 rList":[],"isValiEma
2020-05-15 15:40:50.169 (Growatt Omvormer) 69 6c 22 3a 30 2c 22 61 63 63 6f 75 6e 74 4e 61 6d 65 22 3a il":0,"accountName":
2020-05-15 15:40:50.169 (Growatt Omvormer) 22 76 61 6e 64 65 72 6d 61 72 6b 22 2c 22 65 6d 61 69 6c 22 "33","email"
2020-05-15 15:40:50.169 (Growatt Omvormer) 3a 22 62 61 72 74 2e 76 61 6e 64 65 72 6d 61 72 6b 40 67 6d :"33@gm
2020-05-15 15:40:50.170 (Growatt Omvormer) 61 69 6c 2e 63 6f 6d 22 2c 22 63 6f 6d 70 61 6e 79 22 3a 22 ail.com","company":"
2020-05-15 15:40:50.170 (Growatt Omvormer) 22 2c 22 61 63 74 69 76 65 4e 61 6d 65 22 3a 22 42 61 72 74 ","activeName":"33
2020-05-15 15:40:50.170 (Growatt Omvormer) 20 76 61 6e 20 64 65 72 20 4d 61 72 6b 22 2c 22 63 6f 64 65 .33","code
2020-05-15 15:40:50.170 (Growatt Omvormer) 49 6e 64 65 78 22 3a 31 2c 22 61 70 70 41 6c 69 61 73 22 3a Index":1,"appAlias":
2020-05-15 15:40:50.170 (Growatt Omvormer) 22 76 61 6e 64 65 72 6d 61 72 6b 22 2c 22 69 73 42 69 67 43 "33","isBigC
2020-05-15 15:40:50.170 (Growatt Omvormer) 75 73 74 6f 6d 65 72 22 3a 30 2c 22 6e 6f 74 69 63 65 54 79 ustomer":0,"noticeTy
2020-05-15 15:40:50.170 (Growatt Omvormer) 70 65 22 3a 22 22 7d 2c 22 6d 73 67 22 3a 22 22 2c 22 61 70 pe":""},"msg":"","ap
2020-05-15 15:40:50.170 (Growatt Omvormer) 70 5f 63 6f 64 65 22 3a 22 31 35 22 7d 7d .. .. .. .. .. .. p_code":"15"}}
2020-05-15 15:40:50.170 (Growatt Omvormer) Pushing 'onMessageCallback' on to queue
2020-05-15 15:40:50.170 (Growatt Omvormer) Processing 'DisconnectedEvent' message
2020-05-15 15:40:50.170 (Growatt Omvormer) Disconnect event received for 'server-api.growatt.com:80'.
2020-05-15 15:40:50.170 (Growatt Omvormer) Pushing 'onDisconnectCallback' on to queue
2020-05-15 15:40:50.170 (Growatt Omvormer) Processing 'onMessageCallback' message
2020-05-15 15:40:50.170 (Growatt Omvormer) Calling message handler 'onMessage'.
2020-05-15 15:40:50.170 (Growatt Omvormer) HTTP Details (3):
2020-05-15 15:40:50.170 (Growatt Omvormer) >'Status':'200'
2020-05-15 15:40:50.171 (Growatt Omvormer) >'Headers':
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'Date':'Fri, 15 May 2020 13:40:50 GMT'
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'Content-Type':'application/json;charset=UTF-8'
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'Set-Cookie':
2020-05-15 15:40:50.171 (Growatt Omvormer) --------['JSESSIONID=138FEEDE65A48C95724290584B1357F6; Path=/; HttpOnly']
2020-05-15 15:40:50.171 (Growatt Omvormer) --------['SERVERID=1768bb2315ad6ad0a1e6c6b900c2acb6|1589550050|1589550050;Path=/']
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'X-Cache':'MISS from sol-prod-filter-05-dro.solcon.nl'
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'Content-Length':'1039'
2020-05-15 15:40:50.171 (Growatt Omvormer) ---->'Connection':'Close'
2020-05-15 15:40:50.171 (Growatt Omvormer) >'Data':'b'{"back":{"isOpenDeviceList":1,"isOpenDeviceParams":0,"data":[{"plantName":"33","plantId":"306431"}],"service":"1","quality":"0","isOpenSmartFamily":0,"totalData":{},"success":true,"user":{"uid":"","userLanguage":"ho","inverterGroup":[],"timeZone":1,"lng":"","dataAcqList":[],"type":0,"password":"7d394aa288984a80df3afda4c4565c6f","isValiPhone":0,"kind":0,"mailNotice":true,"id":476842,"lastLoginIp":"100.120.96.9","phoneNum":"+31624622079","approved":false,"area":"Europe","smsNotice":false,"isAgent":0,"token":"","nickName":"","parentUserId":0,"customerCode":"","counrty":"Netherlands","isPhoneNumReg":0,"createDate":"2020-05-14 20:52:26","rightlevel":1,"appType":"c","serverUrl":"","lat":"","lastLoginTime":"2020-05-15 21:40:50","roleId":0,"enabled":true,"agentCode":"ANJW2","inverterList":[],"isValiEmail":0,"accountName":"33","email":"33","company":"","activeName":"33","codeIndex":1,"appAlias":"vandermark","isBigCustomer":0,"noticeType":""},"msg":"","app_code":"15"}}''
2020-05-15 15:40:50.172 (Growatt Omvormer) Retrieved following json: {"back": {"isOpenDeviceList": 1, "isOpenDeviceParams": 0, "data": [{"plantName": "Mouterij 20 Wageningen", "plantId": "306431"}], "service": "1", "quality": "0", "isOpenSmartFamily": 0, "totalData": {}, "success": true, "user": {"uid": "", "userLanguage": "ho", "inverterGroup": [], "timeZone": 1, "lng": "", "dataAcqList": [], "type": 0, "password": "7d394aa288984a80df3afda4c4565c6f", "isValiPhone": 0, "kind": 0, "mailNotice": true, "id": 476842, "lastLoginIp": "100.120.96.9", "phoneNum": "+31624622079", "approved": false, "area": "Europe", "smsNotice": false, "isAgent": 0, "token": "", "nickName": "", "parentUserId": 0, "customerCode": "", "counrty": "Netherlands", "isPhoneNumReg": 0, "createDate": "2020-05-14 20:52:26", "rightlevel": 1, "appType": "c", "serverUrl": "", "lat": "", "lastLoginTime": "2020-05-15 21:40:50", "roleId": 0, "enabled": true, "agentCode": "ANJW2", "inverterList": [], "isValiEmail": 0, "accountName": "vandermark", "email": "[email protected]", "company": "", "activeName": "Bart van der Mark", "codeIndex": 1, "appAlias": "vandermark", "isBigCustomer": 0, "noticeType": ""}, "msg": "", "app_code": "15"}}
2020-05-15 15:40:50.172 (Growatt Omvormer) Login Succesfull
2020-05-15 15:40:50.172 (Growatt Omvormer) Plant ID: 306431 was found
2020-05-15 15:40:50.172 (Growatt Omvormer) Analyzing Data (3):
2020-05-15 15:40:50.172 (Growatt Omvormer) ---> Headers found
2020-05-15 15:40:50.172 (Growatt Omvormer) ---> Process Cookie Started
2020-05-15 15:40:50.172 (Growatt Omvormer) ---> SessionID found: 138FEEDE65A48C95724290584B1357F6
2020-05-15 15:40:50.172 (Growatt Omvormer) ---> ServerID found: 1768bb2315ad6ad0a1e6c6b900c2acb6|1589550050|1589550050
2020-05-15 15:40:50.172 (Growatt Omvormer) Request Data with retrieved cookie!
2020-05-15 15:40:50.172 (Growatt Omvormer) Pushing 'WriteDirective' on to queue
2020-05-15 15:40:50.172 (Growatt Omvormer) Processing 'onDisconnectCallback' message
2020-05-15 15:40:50.172 (Growatt Omvormer) Calling message handler 'onDisconnect'.
2020-05-15 15:40:50.172 (Growatt Omvormer) onDisconnect called for connection to: server-api.growatt.com:80
2020-05-15 15:40:50.173 (Growatt Omvormer) Processing 'WriteDirective' message
2020-05-15 15:40:50.173 Error: (Growatt Omvormer) No transport, write directive to 'HTTP Test' ignored.
2020-05-15 15:40:59.989 (Growatt Omvormer) Pushing 'onHeartbeatCallback' on to queue
2020-05-15 15:41:00.038 (Growatt Omvormer) Processing 'onHeartbeatCallback' message
2020-05-15 15:41:00.038 (Growatt Omvormer) Calling message handler 'onHeartbeat'.
2020-05-15 15:41:00.039 (Growatt Omvormer) onHeartbeat called, run again in 5 heartbeats.
2020-05-15 15:41:09.990 (Growatt Omvormer) Pushing 'onHeartbeatCallback' on to queue
2020-05-15 15:41:10.005 (Growatt Omvormer) Processing 'onHeartbeatCallback' message
2020-05-15 15:41:10.005 (Growatt Omvormer) Calling message handler 'onHeartbeat'.
2020-05-15 15:41:10.005 (Growatt Omvormer) onHeartbeat called, run again in 4 heartbeats.
Can i do anything about it?
rick8245
Posts: 75
Joined: Wednesday 22 April 2020 15:59
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by rick8245 »

Same issue here.

Since yesterday fri 15 may at 13:40 I do not get any updates anymore.
In domoticz the Growatt Inverter is red.

I changed the Ip adres because I setup my raspbian for wifi while it first was wired.
I cannot find any ip address in the PHP or growatt py which I should adapt.

Everything works fine except Growatt-Inverter

Anybody the same issue ??
vandermark1977
Posts: 11
Joined: Sunday 11 December 2016 20:10
Target OS: -
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by vandermark1977 »

I have further investigated and still don't know what causes the problem. The strange thing is that about every hour one measurement comes through. See image below in Domoticz:

Image

On my 'Homey' I installed the 'zonnepanelen' app which can also connect to server.growatt.com with username and password. This app works fine and i get new data every 5 minutes.

@sincze , perhaps you can check the code of this Homey app? Connection to Growatt inverter with just username and password works fine right now.
URL for the Github of this app is: https://github.com/DiedB/Homey-SolarPanels

Growatt code: https://github.com/DiedB/Homey-SolarPan ... rs/growatt

Recently a error for Growatt regarding cookies was fixed:

Code: Select all

        const error = 'Could not login to Growatt server'
        const response = await this.request('POST', loginURL, body, error)
        if (response.body.back.success) {
            this.cookies = response.headers.getAll('Set-Cookie').map(directive => directive.split(';')[0]).join(';')
            this.plants = response.body.back.data
            this.cookies = response.headers.raw()['set-cookie'].map(directive => directive.split(';')[0]).join(';');
            this.plants = response.body.back.data;
        } else {
            throw new Error(error)
        }
Again the full log regarding the Growatt inverter (some personal details are now 'xx'):

Code: Select all

2020-05-16 15:25:12.873 (Growatt) 31 33 3a 32 35 3a 31 32 20 47 4d 54 0d 0a 43 6f 6e 74 65 6e 13:25:12.GMT..Conten
2020-05-16 15:25:12.873 (Growatt) 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f t-Type:.application/
2020-05-16 15:25:12.873 (Growatt) 6a 73 6f 6e 3b 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0d 0a json;charset=UTF-8..
2020-05-16 15:25:12.873 (Growatt) 53 65 74 2d 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 53 49 4f 4e Set-Cookie:.JSESSION
2020-05-16 15:25:12.873 (Growatt) 49 44 3d 34 43 33 36 41 46 31 30 38 38 30 39 45 45 44 39 42 ID=4C36AF108809EED9B
2020-05-16 15:25:12.873 (Growatt) 41 32 41 30 38 41 38 30 38 38 44 31 33 44 35 3b 20 50 61 74 A2A08A8088D13D5;.Pat
2020-05-16 15:25:12.873 (Growatt) 68 3d 2f 3b 20 48 74 74 70 4f 6e 6c 79 0d 0a 53 65 74 2d 43 h=/;.HttpOnly..Set-C
2020-05-16 15:25:12.873 (Growatt) 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d 65 38 36 64 ookie:.SERVERID=e86d
2020-05-16 15:25:12.873 (Growatt) 62 37 32 63 66 64 34 64 37 65 37 38 66 39 64 66 65 30 36 39 b72cfd4d7e78f9dfe069
2020-05-16 15:25:12.873 (Growatt) 61 66 35 38 39 32 32 36 7c 31 35 38 39 36 33 35 35 31 32 7c af589226|1589635512|
2020-05-16 15:25:12.873 (Growatt) 31 35 38 39 36 33 35 35 31 32 3b 50 61 74 68 3d 2f 0d 0a 58 1589635512;Path=/..X
2020-05-16 15:25:12.873 (Growatt) 2d 43 61 63 68 65 3a 20 4d 49 53 53 20 66 72 6f 6d 20 73 6f -Cache:.MISS.from.so
2020-05-16 15:25:12.873 (Growatt) 6c 2d 70 72 6f 64 2d 66 69 6c 74 65 72 2d 30 35 2d 64 72 6f l-prod-filter-05-dro
2020-05-16 15:25:12.873 (Growatt) 2e 73 6f 6c 63 6f 6e 2e 6e 6c 0d 0a 43 6f 6e 74 65 6e 74 2d .solcon.nl..Content-
2020-05-16 15:25:12.873 (Growatt) 4c 65 6e 67 74 68 3a 20 31 30 34 30 0d 0a 43 6f 6e 6e 65 63 Length:.1040..Connec
2020-05-16 15:25:12.873 (Growatt) 74 69 6f 6e 3a 20 43 6c 6f 73 65 0d 0a 0d 0a 7b 22 62 61 63 tion:.Close....{"bac
2020-05-16 15:25:12.873 (Growatt) 6b 22 3a 7b 22 69 73 4f 70 65 6e 44 65 76 69 63 65 4c 69 73 k":{"isOpenDeviceLis
2020-05-16 15:25:12.873 (Growatt) 74 22 3a 31 2c 22 69 73 4f 70 65 6e 44 65 76 69 63 65 50 61 t":1,"isOpenDevicePa
2020-05-16 15:25:12.873 (Growatt) 72 61 6d 73 22 3a 30 2c 22 64 61 74 61 22 3a 5b 7b 22 70 6c rams":0,"data":[{"pl
2020-05-16 15:25:12.873 (Growatt) 61 6e 74 4e 61 6d 65 22 3a 22 4d 6f 75 74 65 72 69 6a 20 32 antName":"xx
2020-05-16 15:25:12.873 (Growatt) 30 20 57 61 67 65 6e 69 6e 67 65 6e 22 2c 22 70 6c 61 6e 74 0.xx","plant
2020-05-16 15:25:12.873 (Growatt) 49 64 22 3a 22 33 30 36 34 33 31 22 7d 5d 2c 22 73 65 72 76 Id":"xx"}],"serv
2020-05-16 15:25:12.873 (Growatt) 69 63 65 22 3a 22 31 22 2c 22 71 75 61 6c 69 74 79 22 3a 22 ice":"1","quality":"
2020-05-16 15:25:12.873 (Growatt) 30 22 2c 22 69 73 4f 70 65 6e 53 6d 61 72 74 46 61 6d 69 6c 0","isOpenSmartFamil
2020-05-16 15:25:12.873 (Growatt) 79 22 3a 30 2c 22 74 6f 74 61 6c 44 61 74 61 22 3a 7b 7d 2c y":0,"totalData":{},
2020-05-16 15:25:12.873 (Growatt) 22 73 75 63 63 65 73 73 22 3a 74 72 75 65 2c 22 75 73 65 72 "success":true,"user
2020-05-16 15:25:12.873 (Growatt) 22 3a 7b 22 75 69 64 22 3a 22 22 2c 22 75 73 65 72 4c 61 6e ":{"uid":"","userLan
2020-05-16 15:25:12.873 (Growatt) 67 75 61 67 65 22 3a 22 68 6f 22 2c 22 69 6e 76 65 72 74 65 guage":"ho","inverte
2020-05-16 15:25:12.873 (Growatt) 72 47 72 6f 75 70 22 3a 5b 5d 2c 22 74 69 6d 65 5a 6f 6e 65 rGroup":[],"timeZone
2020-05-16 15:25:12.873 (Growatt) 22 3a 31 2c 22 6c 6e 67 22 3a 22 22 2c 22 64 61 74 61 41 63 ":1,"lng":"","dataAc
2020-05-16 15:25:12.873 (Growatt) 71 4c 69 73 74 22 3a 5b 5d 2c 22 74 79 70 65 22 3a 30 2c 22 qList":[],"type":0,"
2020-05-16 15:25:12.873 (Growatt) 70 61 73 73 77 6f 72 64 22 3a 22 37 64 33 39 34 61 61 32 38 password":"7d394aa28
2020-05-16 15:25:12.873 (Growatt) 38 39 38 34 61 38 30 64 66 33 61 66 64 61 34 63 34 35 36 35 8984a80df3afda4c4565
2020-05-16 15:25:12.873 (Growatt) 63 36 66 22 2c 22 69 73 56 61 6c 69 50 68 6f 6e 65 22 3a 30 c6f","isValiPhone":0
2020-05-16 15:25:12.873 (Growatt) 2c 22 6b 69 6e 64 22 3a 30 2c 22 6d 61 69 6c 4e 6f 74 69 63 ,"kind":0,"mailNotic
2020-05-16 15:25:12.873 (Growatt) 65 22 3a 74 72 75 65 2c 22 69 64 22 3a 34 37 36 38 34 32 2c e":true,"id":476842,
2020-05-16 15:25:12.873 (Growatt) 22 6c 61 73 74 4c 6f 67 69 6e 49 70 22 3a 22 31 30 30 2e 31 "lastLoginIp":"100.1
2020-05-16 15:25:12.873 (Growatt) 32 30 2e 39 36 2e 32 34 22 2c 22 70 68 6f 6e 65 4e 75 6d 22 20.96.24","phoneNum"
2020-05-16 15:25:12.873 (Growatt) 3a 22 2b 33 31 36 32 34 36 32 32 30 37 39 22 2c 22 61 70 70 :"xx","app
2020-05-16 15:25:12.873 (Growatt) 72 6f 76 65 64 22 3a 66 61 6c 73 65 2c 22 61 72 65 61 22 3a roved":false,"area":
2020-05-16 15:25:12.874 (Growatt) 22 45 75 72 6f 70 65 22 2c 22 73 6d 73 4e 6f 74 69 63 65 22 "Europe","smsNotice"
2020-05-16 15:25:12.874 (Growatt) 3a 66 61 6c 73 65 2c 22 69 73 41 67 65 6e 74 22 3a 30 2c 22 :false,"isAgent":0,"
2020-05-16 15:25:12.874 (Growatt) 74 6f 6b 65 6e 22 3a 22 22 2c 22 6e 69 63 6b 4e 61 6d 65 22 token":"","nickName"
2020-05-16 15:25:12.874 (Growatt) 3a 22 22 2c 22 70 61 72 65 6e 74 55 73 65 72 49 64 22 3a 30 :"","parentUserId":0
2020-05-16 15:25:12.874 (Growatt) 2c 22 63 75 73 74 6f 6d 65 72 43 6f 64 65 22 3a 22 22 2c 22 ,"customerCode":"","
2020-05-16 15:25:12.874 (Growatt) 63 6f 75 6e 72 74 79 22 3a 22 4e 65 74 68 65 72 6c 61 6e 64 counrty":"Netherland
2020-05-16 15:25:12.874 (Growatt) 73 22 2c 22 69 73 50 68 6f 6e 65 4e 75 6d 52 65 67 22 3a 30 s","isPhoneNumReg":0
2020-05-16 15:25:12.874 (Growatt) 2c 22 63 72 65 61 74 65 44 61 74 65 22 3a 22 32 30 32 30 2d ,"createDate":"2020-
2020-05-16 15:25:12.874 (Growatt) 30 35 2d 31 34 20 32 30 3a 35 32 3a 32 36 22 2c 22 72 69 67 05-14.20:52:26","rig
2020-05-16 15:25:12.874 (Growatt) 68 74 6c 65 76 65 6c 22 3a 31 2c 22 61 70 70 54 79 70 65 22 htlevel":1,"appType"
2020-05-16 15:25:12.874 (Growatt) 3a 22 63 22 2c 22 73 65 72 76 65 72 55 72 6c 22 3a 22 22 2c :"c","serverUrl":"",
2020-05-16 15:25:12.874 (Growatt) 22 6c 61 74 22 3a 22 22 2c 22 6c 61 73 74 4c 6f 67 69 6e 54 "lat":"","lastLoginT
2020-05-16 15:25:12.874 (Growatt) 69 6d 65 22 3a 22 32 30 32 30 2d 30 35 2d 31 36 20 32 31 3a ime":"2020-05-16.21:
2020-05-16 15:25:12.874 (Growatt) 32 35 3a 31 32 22 2c 22 72 6f 6c 65 49 64 22 3a 30 2c 22 65 25:12","roleId":0,"e
2020-05-16 15:25:12.874 (Growatt) 6e 61 62 6c 65 64 22 3a 74 72 75 65 2c 22 61 67 65 6e 74 43 nabled":true,"agentC
2020-05-16 15:25:12.874 (Growatt) 6f 64 65 22 3a 22 41 4e 4a 57 32 22 2c 22 69 6e 76 65 72 74 ode":"ANJW2","invert
2020-05-16 15:25:12.874 (Growatt) 65 72 4c 69 73 74 22 3a 5b 5d 2c 22 69 73 56 61 6c 69 45 6d erList":[],"isValiEm
2020-05-16 15:25:12.874 (Growatt) 61 69 6c 22 3a 30 2c 22 61 63 63 6f 75 6e 74 4e 61 6d 65 22 ail":0,"accountName"
2020-05-16 15:25:12.874 (Growatt) 3a 22 76 61 6e 64 65 72 6d 61 72 6b 22 2c 22 65 6d 61 69 6c :"xx","email
2020-05-16 15:25:12.874 (Growatt) 22 3a 22 62 61 72 74 2e 76 61 6e 64 65 72 6d 61 72 6b 40 67 ":"xx.xx@g
2020-05-16 15:25:12.874 (Growatt) 6d 61 69 6c 2e 63 6f 6d 22 2c 22 63 6f 6d 70 61 6e 79 22 3a mail.com","company":
2020-05-16 15:25:12.874 (Growatt) 22 22 2c 22 61 63 74 69 76 65 4e 61 6d 65 22 3a 22 42 61 72 "","activeName":"xx
2020-05-16 15:25:12.874 (Growatt) 74 20 76 61 6e 20 64 65 72 20 4d 61 72 6b 22 2c 22 63 6f 64 t.xx.xx","cod
2020-05-16 15:25:12.874 (Growatt) 65 49 6e 64 65 78 22 3a 31 2c 22 61 70 70 41 6c 69 61 73 22 eIndex":1,"appAlias"
2020-05-16 15:25:12.874 (Growatt) 3a 22 76 61 6e 64 65 72 6d 61 72 6b 22 2c 22 69 73 42 69 67 :"xx","isBig
2020-05-16 15:25:12.874 (Growatt) 43 75 73 74 6f 6d 65 72 22 3a 30 2c 22 6e 6f 74 69 63 65 54 Customer":0,"noticeT
2020-05-16 15:25:12.874 (Growatt) 79 70 65 22 3a 22 22 7d 2c 22 6d 73 67 22 3a 22 22 2c 22 61 ype":""},"msg":"","a
2020-05-16 15:25:12.874 (Growatt) 70 70 5f 63 6f 64 65 22 3a 22 31 35 22 7d 7d .. .. .. .. .. pp_code":"15"}}
2020-05-16 15:25:12.874 (Growatt) Pushing 'onMessageCallback' on to queue
2020-05-16 15:25:12.874 (Growatt) Processing 'DisconnectedEvent' message
2020-05-16 15:25:12.874 (Growatt) Disconnect event received for 'server-api.growatt.com:80'.
2020-05-16 15:25:12.874 (Growatt) Pushing 'onDisconnectCallback' on to queue
2020-05-16 15:25:12.874 (Growatt) Processing 'onMessageCallback' message
2020-05-16 15:25:12.874 (Growatt) Calling message handler 'onMessage'.
2020-05-16 15:25:12.874 (Growatt) HTTP Details (3):
2020-05-16 15:25:12.874 (Growatt) >'Status':'200'
2020-05-16 15:25:12.874 (Growatt) >'Headers':
2020-05-16 15:25:12.874 (Growatt) ---->'Date':'Sat, 16 May 2020 13:25:12 GMT'
2020-05-16 15:25:12.874 (Growatt) ---->'Content-Type':'application/json;charset=UTF-8'
2020-05-16 15:25:12.874 (Growatt) ---->'Set-Cookie':
2020-05-16 15:25:12.874 (Growatt) --------['JSESSIONID=4C36AF108809EED9BA2A08A8088D13D5; Path=/; HttpOnly']
2020-05-16 15:25:12.874 (Growatt) --------['SERVERID=e86db72cfd4d7e78f9dfe069af589226|1589635512|1589635512;Path=/']
2020-05-16 15:25:12.874 (Growatt) ---->'X-Cache':'MISS from sol-prod-filter-05-dro.solcon.nl'
2020-05-16 15:25:12.874 (Growatt) ---->'Content-Length':'1040'
2020-05-16 15:25:12.874 (Growatt) ---->'Connection':'Close'
2020-05-16 15:25:12.874 (Growatt) >'Data':'b'{"back":{"isOpenDeviceList":1,"isOpenDeviceParams":0,"data":[{"plantName":"xx xx","plantId":"306431"}],"service":"1","quality":"0","isOpenSmartFamily":0,"totalData":{},"success":true,"user":{"uid":"","userLanguage":"ho","inverterGroup":[],"timeZone":1,"lng":"","dataAcqList":[],"type":0,"password":"7d394aa288984a80df3afda4c4565c6f","isValiPhone":0,"kind":0,"mailNotice":true,"id":476842,"lastLoginIp":"100.120.96.24","phoneNum":"+31624622079","approved":false,"area":"Europe","smsNotice":false,"isAgent":0,"token":"","nickName":"","parentUserId":0,"customerCode":"","counrty":"Netherlands","isPhoneNumReg":0,"createDate":"2020-05-14 20:52:26","rightlevel":1,"appType":"c","serverUrl":"","lat":"","lastLoginTime":"2020-05-16 21:25:12","roleId":0,"enabled":true,"agentCode":"ANJW2","inverterList":[],"isValiEmail":0,"accountName":"xx","email":"[email protected]","company":"","activeName":"xx van der xx","codeIndex":1,"appAlias":"xx","isBigCustomer":0,"noticeType":""},"msg":"","app_code":"15"}}''
2020-05-16 15:25:12.875 (Growatt) Retrieved following json: {"back": {"isOpenDeviceList": 1, "isOpenDeviceParams": 0, "data": [{"plantName": "xx", "plantId": "306431"}], "service": "1", "quality": "0", "isOpenSmartFamily": 0, "totalData": {}, "success": true, "user": {"uid": "", "userLanguage": "ho", "inverterGroup": [], "timeZone": 1, "lng": "", "dataAcqList": [], "type": 0, "password": "7d394aa288984a80df3afda4c4565c6f", "isValiPhone": 0, "kind": 0, "mailNotice": true, "id": 476842, "lastLoginIp": "100.120.96.24", "phoneNum": "+31624622079", "approved": false, "area": "Europe", "smsNotice": false, "isAgent": 0, "token": "", "nickName": "", "parentUserId": 0, "customerCode": "", "counrty": "Netherlands", "isPhoneNumReg": 0, "createDate": "2020-05-14 20:52:26", "rightlevel": 1, "appType": "c", "serverUrl": "", "lat": "", "lastLoginTime": "2020-05-16 21:25:12", "roleId": 0, "enabled": true, "agentCode": "ANJW2", "inverterList": [], "isValiEmail": 0, "accountName": "xx", "email": "[email protected]", "company": "", "activeName": "xx van der xx", "codeIndex": 1, "appAlias": "xx", "isBigCustomer": 0, "noticeType": ""}, "msg": "", "app_code": "15"}}
2020-05-16 15:25:12.875 (Growatt) Login Succesfull
2020-05-16 15:25:12.875 (Growatt) Plant ID: 306431 was found
2020-05-16 15:25:12.875 (Growatt) Analyzing Data (3):
2020-05-16 15:25:12.875 (Growatt) ---> Headers found
2020-05-16 15:25:12.875 (Growatt) ---> Process Cookie Started
2020-05-16 15:25:12.875 (Growatt) ---> SessionID found: 4C36AF108809EED9BA2A08A8088D13D5
2020-05-16 15:25:12.875 (Growatt) ---> ServerID found: e86db72cfd4d7e78f9dfe069af589226|1589635512|1589635512
2020-05-16 15:25:12.875 (Growatt) Request Data with retrieved cookie!
2020-05-16 15:25:12.875 (Growatt) Pushing 'WriteDirective' on to queue
2020-05-16 15:25:12.875 (Growatt) Processing 'onDisconnectCallback' message
2020-05-16 15:25:12.875 (Growatt) Calling message handler 'onDisconnect'.
2020-05-16 15:25:12.875 (Growatt) onDisconnect called for connection to: server-api.growatt.com:80
2020-05-16 15:25:12.875 (Growatt) Processing 'WriteDirective' message
2020-05-16 15:25:12.875 Error: (Growatt) No transport, write directive to 'HTTP Test' ignored.
2020-05-16 15:25:22.583 (Growatt) Pushing 'onHeartbeatCallback' on to queue
2020-05-16 15:25:22.591 (Growatt) Processing 'onHeartbeatCallback' message
2020-05-16 15:25:22.591 (Growatt) Calling message handler 'onHeartbeat'.
2020-05-16 15:25:22.591 (Growatt) onHeartbeat called, run again in 5 heartbeats.
2020-05-16 15:25:32.585 (Growatt) Pushing 'onHeartbeatCallback' on to queue
2020-05-16 15:25:32.607 (Growatt) Processing 'onHeartbeatCallback' message
2020-05-16 15:25:32.607 (Growatt) Calling message handler 'onHeartbeat'.
vandermark1977
Posts: 11
Joined: Sunday 11 December 2016 20:10
Target OS: -
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by vandermark1977 »

I started using your Pass2php script: https://www.domoticz.com/forum/viewtopi ... =4&t=27656 and that works fine! I hope you can see what went wrong with the plugin in my case but for now i am covered.
mr4hughz
Posts: 1
Joined: Wednesday 20 May 2020 11:16
Target OS: Linux
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by mr4hughz »

sincze wrote: Tuesday 14 April 2020 21:05 Currently building on expanding the Current Plugin. So much interesting info to find.
Growatt.JPG
However still does not work as expected all the time.

Code: Select all

2020-04-14 19:51:35.345 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 19:51:35.345 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:51:35.345 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:58:35.815 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 19:58:35.815 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 19:58:35.816 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:03:35.402 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2020-04-14 20:03:35.402 Error: (Growatt-dev) ----> Line 426 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:03:35.402 Error: (Growatt-dev) ----> Line 338 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2020-04-14 20:04:35.469 Error: (Growatt-dev) No transport, write directive to 'Growatt Portal API' ignored.
can i download/install this one ? or is it not yet released ..
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

Please check GitHub and dev branch :)
You will find it there
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
gerard1
Posts: 17
Joined: Tuesday 25 December 2018 13:54
Target OS: Linux
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by gerard1 »

Growatt icon:

The issue that you have to delete Growatt icon continuous.
The Growatt plugin stopted last night, after the restart the problem was there again.
Again the same errors in the log file.

Gr. Gerard,
User avatar
sincze
Posts: 1299
Joined: Monday 02 June 2014 22:46
Target OS: Raspberry Pi / ODroid
Domoticz version: 2024.4
Location: Netherlands / Breda Area
Contact:

Re: Python Plugin: Growatt Inverter

Post by sincze »

Unfortunately I have no idea what is causing this.
Maybe somebody can explain it so we can modify it.
Pass2php
LAN: RFLink, P1, OTGW, MySensors
USB: RFXCom, ZWave, Sonoff 3
MQTT: ZIgbee2MQTT,
ZWAVE: Zwave-JS-UI
WIFI: Mi-light, Tasmota, Xiaomi Shelly
Solar: Omnik, PVOutput
Video: Kodi, Harmony HUB, Chromecast
Sensors: You name it I got 1.
nitpicker
Posts: 69
Joined: Tuesday 29 July 2014 10:05
Target OS: Raspberry Pi / ODroid
Domoticz version: 2022.2
Contact:

Re: Python Plugin: Growatt Inverter

Post by nitpicker »

Is it possible to read multiple Growatt inverters with this script?

I have 2 Growatt inverters, but this script only read one of the two.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest