Python Plugin: Growatt Inverter

Python and python framework

Moderator: leecollings

User avatar
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

@sincze,

Set the Domoticz debug to 126 (Basic+Messages) so you can see what you are sending and getting back.
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

Dnpwwo wrote: Thursday 22 August 2019 10:53 @sincze,

Set the Domoticz debug to 126 (Basic+Messages) so you can see what you are sending and getting back.
It seems it runs 1 time correctly. :lol:
The second run the variables of JSESSIONID and SERVERID are empty.

Code: Select all

2019-08-22 11:29:20.950 (Growatt) 50 4f 53 54 20 2f 6e 65 77 54 77 6f 50 6c 61 6e 74 41 50 49 POST./newTwoPlantAPI
2019-08-22 11:29:20.950 (Growatt) 2e 64 6f 3f 6f 70 3d 67 65 74 55 73 65 72 43 65 6e 74 65 72 .do?op=getUserCenter
2019-08-22 11:29:20.950 (Growatt) 45 6e 65 72 74 79 44 61 74 61 42 79 50 6c 61 6e 74 69 64 20 EnertyDataByPlantid.
2019-08-22 11:29:20.950 (Growatt) 48 54 54 50 2f 31 2e 31 0d 0a 43 6f 6f 6b 69 65 3a 20 4a 53 HTTP/1.1..Cookie:.JS
2019-08-22 11:29:20.950 (Growatt) 45 53 53 49 4f 4e 49 44 3d 0d 0a 43 6f 6f 6b 69 65 3a 20 53 ESSIONID=..Cookie:.S
2019-08-22 11:29:20.950 (Growatt) 45 52 56 45 52 49 44 3d 0d 0a 55 73 65 72 2d 41 67 65 6e 74 ERVERID=..User-Agent
2019-08-22 11:29:20.950 (Growatt) 3a 20 44 6f 6d 6f 74 69 63 7a 2f 31 2e 30 0d 0a 48 6f 73 74 :.Domoticz/1.0..Host
2019-08-22 11:29:20.950 (Growatt) 3a 20 73 65 72 76 65 72 2d 61 70 69 2e 67 72 6f 77 61 74 74 :.server-api.growatt
2019-08-22 11:29:20.951 (Growatt) 2e 63 6f 6d 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 6b 65 .com..Connection:.ke
2019-08-22 11:29:20.951 (Growatt) 65 70 2d 61 6c 69 76 65 0d 0a 43 6f 6e 74 65 6e 74 2d 54 79 ep-alive..Content-Ty
2019-08-22 11:29:20.951 (Growatt) 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 pe:.application/x-ww
2019-08-22 11:29:20.951 (Growatt) 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 3b 20 63 w-form-urlencoded;.c
2019-08-22 11:29:20.951 (Growatt) 68 61 72 73 65 74 3d 75 74 66 2d 38 0d 0a 41 63 63 65 70 74 harset=utf-8..Accept
2019-08-22 11:29:20.951 (Growatt) 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 0d 0a 43 6f 6e -Encoding:.gzip..Con
2019-08-22 11:29:20.951 (Growatt) 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 32 35 0d 0a 0d 0a 70 tent-Length:.25....p
2019-08-22 11:29:20.951 (Growatt) 6c 61 6e 74 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..75 61 lantId=******&langua
2019-08-22 11:29:20.951 (Growatt) 67 65 3d 31 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ge=1
My idea of the process would be:

The Plugin starts...
on_start -> on_connect (perform login) -> onmessage (retrieve the cookie) -> execute data retrieval. (it works 1 time indeed).

If the last action was 'data retrieval' and I do have the cookie, I could execute the data retrieval again?
Or should I wait out the heartbeat 5,4,3,2,1 and start over?
What is best?

Sorry for the questions, but I am trying to learn here ;-), still making progress.
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: 1300
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 »

@Dnpwwo: first data is received. I shuffled a little with order of the if statements in the onmessage function of the Plugin.

Code: Select all

2019-08-22 22:01:20.747 (Growatt3) Retrieved following json: {"monthValue": "282.2", "optimezerMap": {"isHaveOptimezer": 0}, "weatherMap": {"cond_txt": "Sunny", "msg": "", "cond_code": "100", "success": true, "tmp": "22"}, "eventMessBeanList": [], "powerValue": "0.0", "formulaCoalStr": "784.1kg", "plantNumber": 1, "treeValue": "108422.7", "totalStr": "1960.2kWh", "nominalPowerValue": "4000.0", "totalValue": "1960.2", "yearStr": "0kWh",...... "alarmValue": 0, "treeStr": "108422.7", "todayValue": "17.5"}
2019-08-22 22:01:20.747 (Growatt3) Currently producing: 0.0 Watt. Totall produced: 1960.2 kWh
Unfortunately.... the Raspberry Pi crashed. :evil: :twisted:
Luckily... I made a backup. :D

Reinstalling Pi :geek:
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
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

@sincze,

I'm not sure the server sends the cookies back in every response. Cookies have an expiry time and I believe the web browser (or plugin in your case) is supposed to hold on to them locally until they expire. Sounds like you need to create a local variable holding the cookie list and add it to you sends.

Hard to know without seeing the code
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

A big thnx to @Dnpwwo for his support, we now have the initial data.
So keep on trying willl eventually ge you there. (with the help of fellow forum members)
Growatt.JPG
Growatt.JPG (33.27 KiB) Viewed 3653 times
It would be nice if I could figure out how to do an inital request to retrieve the deviceSN without crashing the plugin. Whilst with that deviceSN I can request additional data like V / A :lol:

Code: Select all

#http://server-api.growatt.com/newTwoPlantAPI.do?op=getAllDeviceList&plantId=*******&content=
#http://server-api.growatt.com/newInverterAPI.do?op=getInverterDetailData_two&inverterId=********'
Let me clean up the initial release and publish that for additional features.
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: 1300
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 »

The initial release can be evaluated from here:
https://github.com/sincze/Domoticz-Grow ... ver-Plugin

I would still like to add more data that I can retrieve with PHP nicely, so it should be possible via the plugin as well. :lol:
But for now I think the first plugin that handles cookies. :lol:
Growatt-Image.png
Growatt-Image.png (23.83 KiB) Viewed 3640 times
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.
Tristan
Posts: 8
Joined: Sunday 30 June 2019 23:55
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: Growatt Inverter

Post by Tristan »

He! Would it be possible to make a dummy P1 meter from it?

Also from the picture the today value looks a little bit high... almost the same as my total value for the last 100 days...

https://www.domoticz.com/forum/viewtopi ... tt#p222439
User avatar
sincze
Posts: 1300
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 »

Tristan wrote: Sunday 25 August 2019 11:07 Also from the picture the today value looks a little bit high... almost the same as my total value for the last 100 days...
This is total production since installation. so Is will be corrected tomorrow automatically.
Domoticz works with incremental counters only. If you don't use the total production... the graph of the device will go wrong.
Tristan wrote: Sunday 25 August 2019 11:07 He! Would it be possible to make a dummy P1 meter from it?
https://www.domoticz.com/forum/viewtopi ... tt#p222439
Interesting project let me continue in that thread,
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: 1300
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 am unable to extract the device sn using the plugin, it just crashes and freezes the raspberry..

RAW:

Code: Select all

GET http://server-api.growatt.com/newTwoPlantAPI.do?op=getAllDeviceList&plantId=******&content= HTTP/1.1
Cookie: JSESSIONID=******; SERVERID=******|******|******
User-Agent: Domoticz/1.0
Host: server-api.growatt.com
Connection: Keep-Alive
Accept-Encoding: gzip
Plugin:

Code: Select all

    def apiRequestHeaders_serialnumber(self):
        return {
            'Verb': 'GET',
            'URL': "/newTwoPlantAPI.do?op=getAllDeviceList&plantId=******&content=''",
            'Headers' : { 'Connection': 'keep-alive',
                          'Content-Type': 'text/html;charset=UTF-8',                                                   
                          'Host': 'server-api.growatt.com',
                          'User-Agent': 'Domoticz/1.0',
                          'Accept-Encoding': 'gzip',
                          'Cookie': ['JSESSIONID='+self.sessionId, 'SERVERID='+self.serverId]
                        },
        }
....

But if I add a variable to the plugin where you can fill in the SN... I can extract a lot of additional data.
Just a few figures.
Growatt-Serial.JPG
Growatt-Serial.JPG (64.46 KiB) Viewed 3631 times
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
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

@sincze,

Can you post the crash log that Domoticz should have dumped when this happens?

HTTP responses haven't caused issue historically so I'd like to know more
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

log that Domoticz mmm
Domoticz and raspberry freeze for 30sec
System freezes.

Is also mentions something has to do with memory
.Fork() command
After 30 sec and sometimes even ssh reconnect I can continue.
Quickly do a Domoticz restart with the offending function removed from the plugin. As that still shows the latest http response .

But let me see what the crashlog says indeed.
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: 1300
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 »

Nothing in domoticz crash log.

Function:
Spoiler: show

Code: Select all

    def apiRequestHeaders_serialnumber(self):
        return {
            'Verb': 'GET',
            #'URL': "/newTwoPlantAPI.do?op=getAllDeviceList&plantId="+str(self.plantId)+"&content",
            'URL': "/newTwoPlantAPI.do?op=getAllDeviceList&plantId=******&content=",
            'Headers' : { 'Connection': 'keep-alive',
                          'Host': 'server-api.growatt.com',
                          'User-Agent': 'Domoticz/1.0',
                          'Accept-Encoding': 'gzip',
                          'Cookie': ['JSESSIONID='+self.sessionId, 'SERVERID='+self.serverId]
                        }
        }
       
I started domoticz from the command line so it generated the following:
Spoiler: show

Code: Select all

2019-08-26 18:22:20.247  (Growatt-dev) Pushing 'onConnectCallback' on to queue
2019-08-26 18:22:20.269  (Growatt-dev) Processing 'onConnectCallback' message
2019-08-26 18:22:20.269  (Growatt-dev) Calling message handler 'onConnect'.
2019-08-26 18:22:20.270  (Growatt-dev) Pushing 'WriteDirective' on to queue
2019-08-26 18:22:20.270  (Growatt-dev) Processing 'WriteDirective' message
2019-08-26 18:22:20.271  (Growatt-dev) Sending 308 bytes of data
2019-08-26 18:22:20.271  (Growatt-dev)     47 45 54 20 2f 6e 65 77 54 77 6f 50 6c 61 6e 74 41 50 49 2e     GET./newTwoPlantAPI.
2019-08-26 18:22:20.272  (Growatt-dev)     64 6f 3f 6f 70 3d 67 65 74 41 6c 6c 44 65 76 69 63 65 4c 69     do?op=getAllDeviceLi
2019-08-26 18:22:20.272  (Growatt-dev)     .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     st&plantId=******&co
2019-08-26 18:22:20.272  (Growatt-dev)     6e 74 65 6e 74 3d 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73     ntent=.HTTP/1.1..Hos
2019-08-26 18:22:20.273  (Growatt-dev)     74 3a 20 73 65 72 76 65 72 2d 61 70 69 2e 67 72 6f 77 61 74     t:.server-api.growat
2019-08-26 18:22:20.273  (Growatt-dev)     74 2e 63 6f 6d 0d 0a 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 53     t.com..Cookie:.JSESS
2019-08-26 18:22:20.274  (Growatt-dev)     49 4f 4e 49 44 3d 46 42 30 32 35 32 31 30 34 45 31 32 43 37     IONID=**************
2019-08-26 18:22:20.274  (Growatt-dev)     41 42 32 35 41 32 39 31 33 41 42 41 44 30 39 45 38 34 0d 0a     AB25A2913ABAD09E84..
2019-08-26 18:22:20.275  (Growatt-dev)     43 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d 30 32 62     Cookie:.SERVERID=02b
2019-08-26 18:22:20.275  (Growatt-dev)     .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     ********************
2019-08-26 18:22:20.275  (Growatt-dev)     .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     ********************
2019-08-26 18:22:20.276  (Growatt-dev)     .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..     ***********..User-Ag
2019-08-26 18:22:20.276  (Growatt-dev)     65 6e 74 3a 20 44 6f 6d 6f 74 69 63 7a 2f 31 2e 30 0d 0a 43     ent:.Domoticz/1.0..C
2019-08-26 18:22:20.277  (Growatt-dev)     6f 6e 6e 65 63 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76     onnection:.keep-aliv
2019-08-26 18:22:20.277  (Growatt-dev)     65 0d 0a 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20     e..Accept-Encoding:.
2019-08-26 18:22:20.278  (Growatt-dev)     67 7a 69 70 0d 0a 0d 0a .. .. .. .. .. .. .. .. .. .. .. ..     gzip....
2019-08-26 18:22:20.338  (Growatt-dev) Pushing 'ReadEvent' on to queue
2019-08-26 18:22:20.338  (Growatt-dev) Pushing 'ReadEvent' on to queue
2019-08-26 18:22:20.338  (Growatt-dev) Pushing 'ReadEvent' on to queue
2019-08-26 18:22:20.378  (Growatt-dev) Processing 'ReadEvent' message
2019-08-26 18:22:20.378  (Growatt-dev) Received 1460 bytes of data
2019-08-26 18:22:20.379  (Growatt-dev)     48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d 0a 44 61 74     HTTP/1.1.200.OK..Dat
2019-08-26 18:22:20.379  (Growatt-dev)     65 3a 20 4d 6f 6e 2c 20 32 36 20 41 75 67 20 32 30 31 39 20     e:.Mon,.26.Aug.2019.
2019-08-26 18:22:20.379  (Growatt-dev)     31 36 3a 32 32 3a 32 30 20 47 4d 54 0d 0a 43 6f 6e 74 65 6e     16:22:20.GMT..Conten
2019-08-26 18:22:20.379  (Growatt-dev)     74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d 6c 3b 63 68     t-Type:.text/html;ch
2019-08-26 18:22:20.379  (Growatt-dev)     61 72 73 65 74 3d 55 54 46 2d 38 0d 0a 43 6f 6e 74 65 6e 74     arset=UTF-8..Content
2019-08-26 18:22:20.379  (Growatt-dev)     2d 4c 65 6e 67 74 68 3a 20 35 33 34 0d 0a 43 6f 6e 6e 65 63     -Length:.534..Connec
2019-08-26 18:22:20.379  (Growatt-dev)     74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 0d 0a 41 63     tion:.keep-alive..Ac
2019-08-26 18:22:20.379  (Growatt-dev)     63 65 70 74 2d 43 68 61 72 73 65 74 3a 20 62 69 67 35 2c 20     cept-Charset:.big5,.
2019-08-26 18:22:20.379  (Growatt-dev)     62 69 67 35 2d 68 6b 73 63 73 2c 20 65 75 63 2d 6a 70 2c 20     big5-hkscs,.euc-jp,.
2019-08-26 18:22:20.380  (Growatt-dev)     65 75 63 2d 6b 72 2c 20 67 62 31 38 30 33 30 2c 20 67 62 32     euc-kr,.gb18030,.gb2
2019-08-26 18:22:20.380  (Growatt-dev)     33 31 32 2c 20 67 62 6b 2c 20 69 62 6d 2d 74 68 61 69 2c 20     312,.gbk,.ibm-thai,.
2019-08-26 18:22:20.380  (Growatt-dev)     69 62 6d 30 30 38 35 38 2c 20 69 62 6d 30 31 31 34 30 2c 20     ibm00858,.ibm01140,.
2019-08-26 18:22:20.380  (Growatt-dev)     69 62 6d 30 31 31 34 31 2c 20 69 62 6d 30 31 31 34 32 2c 20     ibm01141,.ibm01142,.
2019-08-26 18:22:20.380  (Growatt-dev)     69 62 6d 30 31 31 34 33 2c 20 69 62 6d 30 31 31 34 34 2c 20     ibm01143,.ibm01144,.
2019-08-26 18:22:20.380  (Growatt-dev)     69 62 6d 30 31 31 34 35 2c 20 69 62 6d 30 31 31 34 36 2c 20     ibm01145,.ibm01146,.
2019-08-26 18:22:20.380  (Growatt-dev)     69 62 6d 30 31 31 34 37 2c 20 69 62 6d 30 31 31 34 38 2c 20     ibm01147,.ibm01148,.
2019-08-26 18:22:20.381  (Growatt-dev)     69 62 6d 30 31 31 34 39 2c 20 69 62 6d 30 33 37 2c 20 69 62     ibm01149,.ibm037,.ib
2019-08-26 18:22:20.381  (Growatt-dev)     6d 31 30 32 36 2c 20 69 62 6d 31 30 34 37 2c 20 69 62 6d 32     m1026,.ibm1047,.ibm2
2019-08-26 18:22:20.381  (Growatt-dev)     37 33 2c 20 69 62 6d 32 37 37 2c 20 69 62 6d 32 37 38 2c 20     73,.ibm277,.ibm278,.
2019-08-26 18:22:20.381  (Growatt-dev)     69 62 6d 32 38 30 2c 20 69 62 6d 32 38 34 2c 20 69 62 6d 32     ibm280,.ibm284,.ibm2
2019-08-26 18:22:20.381  (Growatt-dev)     38 35 2c 20 69 62 6d 32 39 30 2c 20 69 62 6d 32 39 37 2c 20     85,.ibm290,.ibm297,.
2019-08-26 18:22:20.381  (Growatt-dev)     69 62 6d 34 32 30 2c 20 69 62 6d 34 32 34 2c 20 69 62 6d 34     ibm420,.ibm424,.ibm4
2019-08-26 18:22:20.381  (Growatt-dev)     33 37 2c 20 69 62 6d 35 30 30 2c 20 69 62 6d 37 37 35 2c 20     37,.ibm500,.ibm775,.
2019-08-26 18:22:20.382  (Growatt-dev)     69 62 6d 38 35 30 2c 20 69 62 6d 38 35 32 2c 20 69 62 6d 38     ibm850,.ibm852,.ibm8
2019-08-26 18:22:20.382  (Growatt-dev)     35 35 2c 20 69 62 6d 38 35 37 2c 20 69 62 6d 38 36 30 2c 20     55,.ibm857,.ibm860,.
2019-08-26 18:22:20.382  (Growatt-dev)     69 62 6d 38 36 31 2c 20 69 62 6d 38 36 32 2c 20 69 62 6d 38     ibm861,.ibm862,.ibm8
2019-08-26 18:22:20.382  (Growatt-dev)     36 33 2c 20 69 62 6d 38 36 34 2c 20 69 62 6d 38 36 35 2c 20     63,.ibm864,.ibm865,.
2019-08-26 18:22:20.382  (Growatt-dev)     69 62 6d 38 36 36 2c 20 69 62 6d 38 36 38 2c 20 69 62 6d 38     ibm866,.ibm868,.ibm8
2019-08-26 18:22:20.382  (Growatt-dev)     36 39 2c 20 69 62 6d 38 37 30 2c 20 69 62 6d 38 37 31 2c 20     69,.ibm870,.ibm871,.
2019-08-26 18:22:20.382  (Growatt-dev)     69 62 6d 39 31 38 2c 20 69 73 6f 2d 32 30 32 32 2d 63 6e 2c     ibm918,.iso-2022-cn,
2019-08-26 18:22:20.382  (Growatt-dev)     20 69 73 6f 2d 32 30 32 32 2d 6a 70 2c 20 69 73 6f 2d 32 30     .iso-2022-jp,.iso-20
2019-08-26 18:22:20.383  (Growatt-dev)     32 32 2d 6a 70 2d 32 2c 20 69 73 6f 2d 32 30 32 32 2d 6b 72     22-jp-2,.iso-2022-kr
2019-08-26 18:22:20.383  (Growatt-dev)     2c 20 69 73 6f 2d 38 38 35 39 2d 31 2c 20 69 73 6f 2d 38 38     ,.iso-8859-1,.iso-88
2019-08-26 18:22:20.383  (Growatt-dev)     35 39 2d 31 33 2c 20 69 73 6f 2d 38 38 35 39 2d 31 35 2c 20     59-13,.iso-8859-15,.
2019-08-26 18:22:20.383  (Growatt-dev)     69 73 6f 2d 38 38 35 39 2d 32 2c 20 69 73 6f 2d 38 38 35 39     iso-8859-2,.iso-8859
2019-08-26 18:22:20.383  (Growatt-dev)     2d 33 2c 20 69 73 6f 2d 38 38 35 39 2d 34 2c 20 69 73 6f 2d     -3,.iso-8859-4,.iso-
2019-08-26 18:22:20.383  (Growatt-dev)     38 38 35 39 2d 35 2c 20 69 73 6f 2d 38 38 35 39 2d 36 2c 20     8859-5,.iso-8859-6,.
2019-08-26 18:22:20.383  (Growatt-dev)     69 73 6f 2d 38 38 35 39 2d 37 2c 20 69 73 6f 2d 38 38 35 39     iso-8859-7,.iso-8859
2019-08-26 18:22:20.384  (Growatt-dev)     2d 38 2c 20 69 73 6f 2d 38 38 35 39 2d 39 2c 20 6a 69 73 5f     -8,.iso-8859-9,.jis_
2019-08-26 18:22:20.384  (Growatt-dev)     78 30 32 30 31 2c 20 6a 69 73 5f 78 30 32 31 32 2d 31 39 39     x0201,.jis_x0212-199
2019-08-26 18:22:20.384  (Growatt-dev)     30 2c 20 6b 6f 69 38 2d 72 2c 20 6b 6f 69 38 2d 75 2c 20 73     0,.koi8-r,.koi8-u,.s
2019-08-26 18:22:20.384  (Growatt-dev)     68 69 66 74 5f 6a 69 73 2c 20 74 69 73 2d 36 32 30 2c 20 75     hift_jis,.tis-620,.u
2019-08-26 18:22:20.384  (Growatt-dev)     73 2d 61 73 63 69 69 2c 20 75 74 66 2d 31 36 2c 20 75 74 66     s-ascii,.utf-16,.utf
2019-08-26 18:22:20.384  (Growatt-dev)     2d 31 36 62 65 2c 20 75 74 66 2d 31 36 6c 65 2c 20 75 74 66     -16be,.utf-16le,.utf
2019-08-26 18:22:20.384  (Growatt-dev)     2d 33 32 2c 20 75 74 66 2d 33 32 62 65 2c 20 75 74 66 2d 33     -32,.utf-32be,.utf-3
2019-08-26 18:22:20.384  (Growatt-dev)     32 6c 65 2c 20 75 74 66 2d 38 2c 20 77 69 6e 64 6f 77 73 2d     2le,.utf-8,.windows-
2019-08-26 18:22:20.385  (Growatt-dev)     31 32 35 30 2c 20 77 69 6e 64 6f 77 73 2d 31 32 35 31 2c 20     1250,.windows-1251,.
2019-08-26 18:22:20.385  (Growatt-dev)     77 69 6e 64 6f 77 73 2d 31 32 35 32 2c 20 77 69 6e 64 6f 77     windows-1252,.window
2019-08-26 18:22:20.385  (Growatt-dev)     73 2d 31 32 35 33 2c 20 77 69 6e 64 6f 77 73 2d 31 32 35 34     s-1253,.windows-1254
2019-08-26 18:22:20.385  (Growatt-dev)     2c 20 77 69 6e 64 6f 77 73 2d 31 32 35 35 2c 20 77 69 6e 64     ,.windows-1255,.wind
2019-08-26 18:22:20.385  (Growatt-dev)     6f 77 73 2d 31 32 35 36 2c 20 77 69 6e 64 6f 77 73 2d 31 32     ows-1256,.windows-12
2019-08-26 18:22:20.385  (Growatt-dev)     35 37 2c 20 77 69 6e 64 6f 77 73 2d 31 32 35 38 2c 20 77 69     57,.windows-1258,.wi
2019-08-26 18:22:20.385  (Growatt-dev)     6e 64 6f 77 73 2d 33 31 6a 2c 20 78 2d 62 69 67 35 2d 68 6b     ndows-31j,.x-big5-hk
2019-08-26 18:22:20.385  (Growatt-dev)     73 63 73 2d 32 30 30 31 2c 20 78 2d 62 69 67 35 2d 73 6f 6c     scs-2001,.x-big5-sol
2019-08-26 18:22:20.385  (Growatt-dev)     61 72 69 73 2c 20 78 2d 65 75 63 2d 6a 70 2d 6c 69 6e 75 78     aris,.x-euc-jp-linux
2019-08-26 18:22:20.385  (Growatt-dev)     2c 20 78 2d 65 75 63 2d 74 77 2c 20 78 2d 65 75 63 6a 70 2d     ,.x-euc-tw,.x-eucjp-
2019-08-26 18:22:20.386  (Growatt-dev)     6f 70 65 6e 2c 20 78 2d 69 62 6d 31 30 30 36 2c 20 78 2d 69     open,.x-ibm1006,.x-i
2019-08-26 18:22:20.386  (Growatt-dev)     62 6d 31 30 32 35 2c 20 78 2d 69 62 6d 31 30 34 36 2c 20 78     bm1025,.x-ibm1046,.x
2019-08-26 18:22:20.386  (Growatt-dev)     2d 69 62 6d 31 30 39 37 2c 20 78 2d 69 62 6d 31 30 39 38 2c     -ibm1097,.x-ibm1098,
2019-08-26 18:22:20.386  (Growatt-dev)     20 78 2d 69 62 6d 31 31 31 32 2c 20 78 2d 69 62 6d 31 31 32     .x-ibm1112,.x-ibm112
2019-08-26 18:22:20.386  (Growatt-dev)     32 2c 20 78 2d 69 62 6d 31 31 32 33 2c 20 78 2d 69 62 6d 31     2,.x-ibm1123,.x-ibm1
2019-08-26 18:22:20.386  (Growatt-dev)     31 32 34 2c 20 78 2d 69 62 6d 31 33 36 34 2c 20 78 2d 69 62     124,.x-ibm1364,.x-ib
2019-08-26 18:22:20.386  (Growatt-dev)     6d 31 33 38 31 2c 20 78 2d 69 62 6d 31 33 38 33 2c 20 78 2d     m1381,.x-ibm1383,.x-
2019-08-26 18:22:20.386  (Growatt-dev)     69 62 6d 33 30 30 2c 20 78 2d 69 62 6d 33 33 37 32 32 2c 20     ibm300,.x-ibm33722,.
2019-08-26 18:22:20.386  (Growatt-dev)     78 2d 69 62 6d 37 33 37 2c 20 78 2d 69 62 6d 38 33 33 2c 20     x-ibm737,.x-ibm833,.
2019-08-26 18:22:20.386  (Growatt-dev)     78 2d 69 62 6d 38 33 34 2c 20 78 2d 69 62 6d 38 35 36 2c 20     x-ibm834,.x-ibm856,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 38 37 34 2c 20 78 2d 69 62 6d 38 37 35 2c 20     x-ibm874,.x-ibm875,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 39 32 31 2c 20 78 2d 69 62 6d 39 32 32 2c 20     x-ibm921,.x-ibm922,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 39 33 30 2c 20 78 2d 69 62 6d 39 33 33 2c 20     x-ibm930,.x-ibm933,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 39 33 35 2c 20 78 2d 69 62 6d 39 33 37 2c 20     x-ibm935,.x-ibm937,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 39 33 39 2c 20 78 2d 69 62 6d 39 34 32 2c 20     x-ibm939,.x-ibm942,.
2019-08-26 18:22:20.387  (Growatt-dev)     78 2d 69 62 6d 39 34 32 63 2c 20 78 2d 69 62 6d 39 34 33 2c     x-ibm942c,.x-ibm943,
2019-08-26 18:22:20.387  (Growatt-dev)     20 78 2d 69 62 6d 39 34 33 63 2c 20 78 2d 69 62 6d 39 34 38     .x-ibm943c,.x-ibm948
Killed
pi@raspberrypi:~/domoticz $
With a serial as a parameter field I am able to retrieve additional data, would be nice If I could extract the SN with the function.
Growatt-Serial2.JPG
Growatt-Serial2.JPG (61.84 KiB) Viewed 3599 times
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: 1300
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 »

Any suggestions?

With the enhanced features I currently experience the following issue, after x hours the cookie needs to be renewed:

Code: Select all

2019-08-29 14:43:59.230 (Growatt-dev) Received 305 bytes of data
2019-08-29 14:43:59.230 (Growatt-dev) 48 54 54 50 2f 31 2e 31 20 33 30 32 20 46 6f 75 6e 64 0d 0a HTTP/1.1.302.Found..
2019-08-29 14:43:59.230 (Growatt-dev) 44 61 74 65 3a 20 54 68 75 2c 20 32 39 20 41 75 67 20 32 30 Date:.Thu,.29.Aug.20
2019-08-29 14:43:59.230 (Growatt-dev) 31 39 20 31 32 3a 34 33 3a 35 39 20 47 4d 54 0d 0a 43 6f 6e 19.12:43:59.GMT..Con
2019-08-29 14:43:59.230 (Growatt-dev) 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 30 0d 0a 43 6f 6e 6e tent-Length:.0..Conn
2019-08-29 14:43:59.230 (Growatt-dev) 65 63 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 0d 0a ection:.keep-alive..
2019-08-29 14:43:59.230 (Growatt-dev) 53 65 74 2d 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 53 49 4f 4e Set-Cookie:.JSESSION
2019-08-29 14:43:59.230 (Growatt-dev) 49 44 3d 45 45 38 39 33 42 41 45 30 33 34 43 37 38 45 44 45 ID=EE893BAE0********
2019-08-29 14:43:59.230 (Growatt-dev) 35 31 35 36 37 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /.... ********62AC6A3;.Pat
2019-08-29 14:43:59.230 (Growatt-dev) 68 3d 2f 3b 20 48 74 74 70 4f 6e 6c 79 0d 0a 4c 6f 63 61 74 h=/;.HttpOnly..Locat
2019-08-29 14:43:59.230 (Growatt-dev) 69 6f 6e 3a 20 2f 65 72 72 6f 72 2e 64 6f 3f 65 72 72 6f 72 ion:./error.do?error
2019-08-29 14:43:59.230 (Growatt-dev) 4d 65 73 73 3d 65 72 72 6f 72 4e 6f 4c 6f 67 69 6e 0d 0a 53 Mess=errorNoLogin..S
2019-08-29 14:43:59.230 (Growatt-dev) 65 74 2d 43 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d et-Cookie:.SERVERID=
2019-08-29 14:43:59.231 (Growatt-dev) 30 32 62 66 36 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /.... ********3706********
2019-08-29 14:43:59.231 (Growatt-dev) 66 34 32 63 33 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /.... ********9d65|1******
2019-08-29 14:43:59.231 (Growatt-dev) 36 33 39 7c 31 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /.... ********082639;Path=
2019-08-29 14:43:59.231 (Growatt-dev) 2f 0d 0a 0d 0a .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /....
2019-08-29 14:43:59.231 (Growatt-dev) HTTP Details (2):
2019-08-29 14:43:59.231 (Growatt-dev) >'Headers':
2019-08-29 14:43:59.231 (Growatt-dev) ---->'Content-Length':'0'
2019-08-29 14:43:59.231 (Growatt-dev) ---->'Location':'/error.do?errorMess=errorNoLogin'
2019-08-29 14:43:59.231 (Growatt-dev) ---->'Connection':'keep-alive'
2019-08-29 14:43:59.231 (Growatt-dev) ---->'Set-Cookie':
2019-08-29 14:43:59.232 (Growatt-dev) --------['JSESSIONID=********************************************; Path=/; HttpOnly']
2019-08-29 14:43:59.232 (Growatt-dev) --------['SERVERID=*********************************************|********|********;Path=/']
2019-08-29 14:43:59.232 (Growatt-dev) ---->'Date':'Thu, 29 Aug 2019 12:43:59 GMT'
2019-08-29 14:43:59.232 (Growatt-dev) >'Status':'302'
2019-08-29 14:43:59.232 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-08-29 14:43:59.232 Error: (Growatt-dev) ----> Line 443 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-08-29 14:43:59.232 Error: (Growatt-dev) ----> Line 234 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-08-29 14:44:08.999 (Growatt-dev) onHeartbeat called, Connection is alive.
2019-08-29 14:44:19.017 (Growatt-dev) onHeartbeat called, Connection is alive.
2019-08-29 14:44:28.984 (Growatt-dev) onHeartbeat called, Connection is alive.
2019-08-29 14:44:39.002 (Growatt-dev) onHeartbeat called, Connection is alive.
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
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

Did Domoticz die or was it killed? I'm surprised about the work 'Killed' in the log output.

Its really strange for a webserver to return every character set it supports. Are you sure the GET request is correct? The server is returning an Accept-Charset request HTTP header in the response (it should return a Content-Type) followed by a whole list of character set names.

Try adding something like this into the request headers:

Code: Select all

Accept-Charset: utf-8, iso-8859-1;q=0.5
Its not surprising that the cookie is no good after a while because I assume its a security token and it expires. Do you get a different HTTP response returned like a 401 perhaps?
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

Dnpwwo wrote: Friday 30 August 2019 9:32 Did Domoticz die or was it killed? I'm surprised about the work 'Killed' in the log output.
I issued the famous ./domoticz..... and just waited the result was ' killed' :shock:

Domoticz the tabs are responding in the web interface.... However No logs nothing no action...
Spoiler: show

Code: Select all

pi@raspberrypi:/var/log $ sudo /etc/init.d/domoticz.sh status
● domoticz.service - LSB: Home Automation System
   Loaded: loaded (/etc/init.d/domoticz.sh; generated; vendor preset: enabled)
   Active: active (exited) since Fri 2019-08-30 18:42:43 CEST; 5min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 8447 ExecStop=/etc/init.d/domoticz.sh stop (code=exited, status=0/SUCCESS)
  Process: 8458 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS)

Aug 30 18:42:43 raspberrypi systemd[1]: Starting LSB: Home Automation System...
Aug 30 18:42:43 raspberrypi domoticz.sh[8458]: 2019-08-30 18:42:43.477  Status: Domoticz V4.11230 (c)2012-2019 GizMoCuz
Aug 30 18:42:43 raspberrypi domoticz.sh[8458]: 2019-08-30 18:42:43.477  Status: Build Hash: 99b3ecd3b, Date: 2019-08-28 08:25:35
Aug 30 18:42:43 raspberrypi domoticz.sh[8458]: 2019-08-30 18:42:43.478  Status: Startup Path: /home/pi/domoticz/
Aug 30 18:42:43 raspberrypi domoticz.sh[8458]: domoticz: Domoticz is starting up....
Aug 30 18:42:43 raspberrypi domoticz[8465]: Domoticz running...
Aug 30 18:42:43 raspberrypi systemd[1]: Started LSB: Home Automation System.
Dnpwwo wrote: Friday 30 August 2019 9:32 Its really strange for a webserver to return every character set it supports. Are you sure the GET request is correct? The server is returning an Accept-Charset request HTTP header in the response (it should return a Content-Type) followed by a whole list of character set names.
Original request (using fiddler)
Spoiler: show

Code: Select all

GET http://server-api.growatt.com/newTwoPlantAPI.do?op=getAllDeviceList&plantId=*******&content= HTTP/1.1
Cookie: JSESSIONID=*********; SERVERID=********|*********|*********
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; ONEPLUS A6003 Build/PKQ1.180716.001)
Host: server-api.growatt.com
Connection: Keep-Alive
Accept-Encoding: gzip
RAW Response:
Spoiler: show

Code: Select all

HTTP/1.1 200 OK
Date: Sun, 25 Aug 2019 16:02:31 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 540
Connection: keep-alive
Accept-Charset: big5, big5-hkscs, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp
Set-Cookie: SERVERID=*********|*********|*********;Path=/

{"plantMoneyText":"19.6/€","optimizerType":0,"ammeterType":"0","storagePgrid":"0","todayEnergy":"16.3","storageTodayPpv":"0","invTodayPpv":"483.7","totalEnergy":"2010.6","nominalPower":4000,"todayDischarge":"0","Co2Reduction":"0","storagePuser":"0","useEnergy":"0","totalMoneyText":"2412.72","nominal_Power":4000,"deviceList":[{"lost":false,"invType":"0","eToday":"16.3","location":"","deviceAilas":"******","deviceType":"inverter","datalogSn":"******","deviceSn":"*******","power":"483.7","deviceStatus":2,"energy":"2010.6"}]}
Dnpwwo wrote: Friday 30 August 2019 9:32 Its not surprising that the cookie is no good after a while because I assume its a security token and it expires. Do you get a different HTTP response returned like a 401 perhaps?
Cookie validation,.. I guess the return is the 302?
Spoiler: show

Code: Select all

2019-08-30 18:12:57.528 (Growatt-dev) onHeartbeat called, run again in 5 heartbeats.
2019-08-30 18:13:07.547 (Growatt-dev) onHeartbeat called, run again in 4 heartbeats.
2019-08-30 18:13:17.515 (Growatt-dev) onHeartbeat called, run again in 3 heartbeats.
2019-08-30 18:13:27.533 (Growatt-dev) onHeartbeat called, run again in 2 heartbeats.
2019-08-30 18:13:37.552 (Growatt-dev) onHeartbeat called, run again in 1 heartbeats.
2019-08-30 18:13:47.520 (Growatt-dev) HTTP Details (3):
2019-08-30 18:13:47.520 (Growatt-dev) >'Verb':'GET'
2019-08-30 18:13:47.520 (Growatt-dev) >'Headers':
2019-08-30 18:13:47.520 (Growatt-dev) ---->'Connection':'keep-alive'
2019-08-30 18:13:47.520 (Growatt-dev) ---->'Cookie':
2019-08-30 18:13:47.520 (Growatt-dev) --------['JSESSIONID=**.***.**.****.***.**.**']
2019-08-30 18:13:47.520 (Growatt-dev) --------['SERVERID=0e**.***.**.****.***.**.**|**.***.**.**|**.***.**.**']
2019-08-30 18:13:47.520 (Growatt-dev) ---->'Accept-Encoding':'gzip'
2019-08-30 18:13:47.520 (Growatt-dev) ---->'User-Agent':'Domoticz/1.0'
2019-08-30 18:13:47.520 (Growatt-dev) ---->'Host':'server-api.growatt.com'
2019-08-30 18:13:47.520 (Growatt-dev) >'URL':'/newInverterAPI.do?op=getInverterDetailData_two&inverterId=**.***.**.**'
2019-08-30 18:13:47.521 (Growatt-dev) Sending 315 bytes of data
2019-08-30 18:13:47.521 (Growatt-dev) 47 45 54 20 2f 6e 65 77 49 6e 76 65 72 74 65 72 41 50 49 2e GET./newInverterAPI.
2019-08-30 18:13:47.521 (Growatt-dev) 64 6f 3f 6f 70 3d 67 65 74 49 6e 76 65 72 74 65 72 44 65 74 do?op=getInverterDet
2019-08-30 18:13:47.521 (Growatt-dev) 61 69 6c 44 61 74 61 5f 74 77 6f 26 69 6e 76 65 72 74 65 72 ailData_two&inverter
2019-08-30 18:13:47.521 (Growatt-dev) 49 64 3d 53 .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..    Id=**.***.**.**.HTTP/1
2019-08-30 18:13:47.521 (Growatt-dev) 2e 31 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 6b 65 65 70 .1..Connection:.keep
2019-08-30 18:13:47.521 (Growatt-dev) 2d 61 6c 69 76 65 0d 0a 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 -alive..Cookie:.JSES
2019-08-30 18:13:47.521 (Growatt-dev) 53 49 4f 4e 49 44 3d 34 45 45 35 37 35 45 37 36 33 45 31 37 SIONID=**.***.**.**
2019-08-30 18:13:47.521 (Growatt-dev) 37 37 32 30 46 46 46 35 44 46 43 33 35 44 32 46 44 43 39 0d **.***.**.**.
2019-08-30 18:13:47.521 (Growatt-dev) 0a 43 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d 30 65 .Cookie:.SERVERID=0e
2019-08-30 18:13:47.521 (Growatt-dev) 36 63 37 32 31 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. **.***.**.**
2019-08-30 18:13:47.521 (Growatt-dev) 34 34 34 66 62 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. **.***.**.**|156710522
2019-08-30 18:13:47.522 (Growatt-dev) 36 7c 31 35 36 37 .. .. .. .. .. .. .. .. .. .. .. .. .. .. 6|**.***.**.**..Accept
2019-08-30 18:13:47.522 (Growatt-dev) 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 0d 0a 55 73 65 -Encoding:.gzip..Use
2019-08-30 18:13:47.522 (Growatt-dev) 72 2d 41 67 65 6e 74 3a 20 44 6f 6d 6f 74 69 63 7a 2f 31 2e r-Agent:.Domoticz/1.
2019-08-30 18:13:47.522 (Growatt-dev) 30 0d 0a 48 6f 73 74 3a 20 73 65 72 76 65 72 2d 61 70 69 2e 0..Host:.server-api.
2019-08-30 18:13:47.522 (Growatt-dev) 67 72 6f 77 61 74 74 2e 63 6f 6d 0d 0a 0d 0a .. .. .. .. .. growatt.com....
2019-08-30 18:13:47.572 (Growatt-dev) Received 305 bytes of data
2019-08-30 18:13:47.572 (Growatt-dev) 48 54 54 50 2f 31 2e 31 20 33 30 32 20 46 6f 75 6e 64 0d 0a HTTP/1.1.302.Found..
2019-08-30 18:13:47.572 (Growatt-dev) 44 61 74 65 3a 20 46 72 69 2c 20 33 30 20 41 75 67 20 32 30 Date:.Fri,.30.Aug.20
2019-08-30 18:13:47.572 (Growatt-dev) 31 39 20 31 36 3a 31 33 3a 34 37 20 47 4d 54 0d 0a 43 6f 6e 19.16:13:47.GMT..Con
2019-08-30 18:13:47.572 (Growatt-dev) 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 30 0d 0a 43 6f 6e 6e tent-Length:.0..Conn
2019-08-30 18:13:47.573 (Growatt-dev) 65 63 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 0d 0a ection:.keep-alive..
2019-08-30 18:13:47.573 (Growatt-dev) 53 65 74 2d 43 6f 6f 6b 69 65 3a 20 4a 53 45 53 53 49 4f 4e Set-Cookie:.JSESSION
2019-08-30 18:13:47.573 (Growatt-dev) 49 44 3d 42 39 39 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ID=**.***.**.**
2019-08-30 18:13:47.573 (Growatt-dev) 41 30 33 46 34 37 30 43 41 34 44 38 39 45 41 3b 20 50 61 74 A03F470CA4D89EA;.Pat
2019-08-30 18:13:47.573 (Growatt-dev) 68 3d 2f 3b 20 48 74 74 70 4f 6e 6c 79 0d 0a 4c 6f 63 61 74 h=/;.HttpOnly..Locat
2019-08-30 18:13:47.573 (Growatt-dev) 69 6f 6e 3a 20 2f 65 72 72 6f 72 2e 64 6f 3f 65 72 72 6f 72 ion:./error.do?error
2019-08-30 18:13:47.573 (Growatt-dev) 4d 65 73 73 3d 65 72 72 6f 72 4e 6f 4c 6f 67 69 6e 0d 0a 53 Mess=errorNoLogin..S
2019-08-30 18:13:47.573 (Growatt-dev) 65 74 2d 43 6f 6f 6b 69 65 3a 20 53 45 52 56 45 52 49 44 3d et-Cookie:.SERVERID=
2019-08-30 18:13:47.573 (Growatt-dev) 30 65 36 63 37 32 31 36 34 34 38 66 31 32 33 66 61 33 30 30 **.***.**.**
2019-08-30 18:13:47.573 (Growatt-dev) 37 37 34 34 34 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 77**.***.**.**|1567181
2019-08-30 18:13:47.573 (Growatt-dev) 36 32 37 7c 31 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 627|**.***.**.**;Path=
2019-08-30 18:13:47.573 (Growatt-dev) 2f 0d 0a 0d 0a .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. /....
2019-08-30 18:13:47.574 (Growatt-dev) HTTP Details (2):
2019-08-30 18:13:47.574 (Growatt-dev) >'Headers':
2019-08-30 18:13:47.574 (Growatt-dev) ---->'Connection':'keep-alive'
2019-08-30 18:13:47.574 (Growatt-dev) ---->'Set-Cookie':
2019-08-30 18:13:47.574 (Growatt-dev) --------['JSESSIONID=**.***.**.**A03F470CA4D89EA; Path=/; HttpOnly']
2019-08-30 18:13:47.574 (Growatt-dev) --------['SERVERID=0e**.***.**.****.***.**.**|**.***.**.**|**.***.**.**;Path=/']
2019-08-30 18:13:47.574 (Growatt-dev) ---->'Location':'/error.do?errorMess=errorNoLogin'
2019-08-30 18:13:47.574 (Growatt-dev) ---->'Date':'Fri, 30 Aug 2019 16:13:47 GMT'
2019-08-30 18:13:47.574 (Growatt-dev) ---->'Content-Length':'0'
2019-08-30 18:13:47.574 (Growatt-dev) >'Status':'302'
Dnpwwo wrote: Friday 30 August 2019 9:32

Code: Select all

Accept-Charset: utf-8, iso-8859-1;q=0.5
Did not work unfortunately same issue.

Domoticz crash log is dated 22-08-2019...
Spoiler: show

Code: Select all

Thread 1 (Thread 0x76357950 (LWP 20995)):
#0  0x76df151c in __waitpid (pid=21007, stat_loc=0x7ee04060, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00116bc0 in dumpstack_gdb(bool) ()
#2  0x001171ac in signal_handler(int, siginfo_t*, void*) ()
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#5  0x76bff824 in __GI_abort () at abort.c:89
#6  0x008e69e4 in __gnu_cxx::__verbose_terminate_handler() ()
#7  0x008470d4 in __cxxabiv1::__terminate(void (*)()) ()
#8  0x00847148 in std::terminate() ()
#9  0x00035604 in main ()

Main thread:
#0  0x76df151c in __waitpid (pid=21007, stat_loc=0x7ee04060, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00116bc0 in dumpstack_gdb(bool) ()
#2  0x001171ac in signal_handler(int, siginfo_t*, void*) ()
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#5  0x76bff824 in __GI_abort () at abort.c:89
#6  0x008e69e4 in __gnu_cxx::__verbose_terminate_handler() ()
#7  0x008470d4 in __cxxabiv1::__terminate(void (*)()) ()
#8  0x00847148 in std::terminate() ()
#9  0x00035604 in main ()
Maybe sort of stack overflow??
https://github.com/vert-x3/vertx-web/issues/623
https://github.com/spring-projects/spri ... sues/11974
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: 1300
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 »

@Dnpwwo. More debug data needed??
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
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

@sincze,

Sadly the crash log appears unrelated :( so not much help. With no smoking gun its hard to find the issue.

I'm looking at one thing but if that doesn't pan out you may need to PM me an IP and port that let's me hit the inverter to provoke the crash.
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

Dnpwwo wrote: Monday 02 September 2019 11:44 @sincze,

Sadly the crash log appears unrelated :( so not much help. With no smoking gun its hard to find the issue.

I'm looking at one thing but if that doesn't pan out you may need to PM me an IP and port that let's me hit the inverter to provoke the crash.
I'm looking at one thing :) and ??
Did you find something?? Hopefully hopefully.
Ofcourse any help will be welcome :)
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
Dnpwwo
Posts: 819
Joined: Sunday 23 March 2014 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Melbourne, Australia
Contact:

Re: Python Plugin: Growatt Inverter

Post by Dnpwwo »

@sincze,

No luck sadly, the thing I was looking at appears okay.

I'm happy to debug this if you PM me an address and port to hit the inverter directly (and tyhe latest plugin source). Otherwise not sure how to fix it.
The reasonable man adapts himself to the world; the unreasonable one persists to adapt the world to himself. Therefore all progress depends on the unreasonable man. George Bernard Shaw
User avatar
sincze
Posts: 1300
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 »

Really appreciated,

Just copy paste the plugin source??? in PM
Or should I store it somewhere in Github.

Fun part is.. at this moment the plugin runs... after x hours... not anymore due to the 302 (not logged in).
I also see the following, but then out of the blue it starts working again.
beats me.
Spoiler: show

Code: Select all

2019-09-10 11:28:50.687 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:28:50.687 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:28:50.687 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:29:50.193 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:29:50.193 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:29:50.193 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:30:50.188 Error: (Growatt-dev) No transport, write directive to 'Growatt Portal API' ignored.
2019-09-10 11:31:50.357 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:31:50.357 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:31:50.357 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:32:50.332 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:32:50.332 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:32:50.332 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:33:50.324 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:33:50.324 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:33:50.324 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:34:50.316 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:34:50.316 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:34:50.316 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:35:51.082 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:35:51.082 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:35:51.082 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:36:50.544 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:36:50.544 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:36:50.545 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:38:50.662 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:38:50.662 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:38:50.662 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:39:50.596 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:39:50.596 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:39:50.596 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:41:51.152 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:41:51.152 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:41:51.152 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:42:50.639 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:42:50.639 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:42:50.639 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:44:50.723 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:44:50.723 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:44:50.724 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:45:50.676 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:45:50.676 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:45:50.676 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:47:50.782 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:47:50.782 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:47:50.782 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:48:50.730 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:48:50.730 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:48:50.730 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:50:51.253 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:50:51.253 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:50:51.253 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:51:50.768 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:51:50.768 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:51:50.768 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:53:50.833 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:53:50.834 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:53:50.834 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:54:50.772 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:54:50.772 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:54:50.772 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:56:50.947 Error: (Growatt-dev) 'onMessage' failed 'KeyError'.
2019-09-10 11:56:50.947 Error: (Growatt-dev) ----> Line 420 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 11:56:50.947 Error: (Growatt-dev) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Growatt-dev/plugin.py', function onMessage
2019-09-10 12:01:50.837 Error: (Growatt-dev) No transport, write directive to 'Growatt Portal API' ignored.
2019-09-10 12:01:50.838 Error: (Growatt-dev) Probably no login possible!.
2019-09-10 12:01:50.838 Error: CConnection_disconnect, disconnection request from 'Growatt-dev' ignored. Transport does not exist.

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.
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests