Python Plugin: GoodWe solar inverter via SEMS API

Python and python framework

Moderator: leecollings

Post Reply
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

So IK checked out the WiFi option. Turns out you need to have your firmware to a minimum level. Meaning, it can't be backward compatible so that would be a new plugin. Or an option in the current plugin (upside: you keep your historic data) but would complicate the plugin.

At this moment I'm focusing on another plugin so I'm not going to pursue the Wifi for now. Perhaps later.
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
whoami
Posts: 73
Joined: Tuesday 31 March 2020 22:31
Target OS: -
Domoticz version:
Location: Dutch
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by whoami »

I get for months the following errors in domoticz:
What can I do about this?
2021-06-24 06:18:46.137 Error: (Zonnepanelen) ----> Line 163 in '/usr/local/domoticz/var/plugins/domoticz-GoodWeSEMS-master/plugin.py'
2021-06-26 21:00:53.794 Error: (Zonnepanelen): Async Secure Read Exception: 9, Bad file descriptor
2021-06-26 21:00:53.796 Error: (Zonnepanelen) 'onMessage' failed 'ValueError'.
2021-06-26 21:00:53.796 Error: (Zonnepanelen) ----> Line 353 in '/usr/local/domoticz/var/plugins/domoticz-GoodWeSEMS-master/plugin.py'
2021-06-26 21:00:53.796 Error: (Zonnepanelen) ----> Line 163 in '/usr/local/domoticz/var/plugins/domoticz-GoodWeSEMS-master/plugin.py'
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

Hi,

This error occurs once in a while (I haven't seen it for quite some time though). It looks like the response from the webserver is not formatted correctly. It is nothing to worry about, the values correct themselves in the next update. And I cannot do anything about it as it is a problem on the server side......


Regards Jan-Jaap
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
Wiljums
Posts: 28
Joined: Sunday 11 February 2018 21:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by Wiljums »

Since updating to Domoticz 2021.1 I have the strange issue that some of the device values do not reach InfluxDB, others still do.
Values that do reach InfluxDB: temperature, input 1 and 2 current power, inverter output power (usage)

Values that do not reach InfluxDB: inverter input 1 and 2 voltage, inverter output power (instant)

The domoticz log does say that the values are sent through influxLink.
I tried to delete the hardware and add it again. Also restored the database to before the update. No luck.

Does anyone know how to fix this?
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

Hi,

This (normally) not any issue with the plugin, as the plugin writes data into the Domoticz database according to specifications. Apparently something changed between Domoticz and Influx, so I suggest to check the related topics of influx.
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
User avatar
waltervl
Posts: 5149
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by waltervl »

Wiljums wrote: Sunday 15 August 2021 16:34 Since updating to Domoticz 2021.1 I have the strange issue that some of the device values do not reach InfluxDB, others still do.
Did you update to stable (build 13191) or to a beta 2021.1 (build > 13191)?
As there are things changing with regards to the Python Plugin framework in beta.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Wiljums
Posts: 28
Joined: Sunday 11 February 2018 21:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by Wiljums »

waltervl wrote: Monday 16 August 2021 13:10
Wiljums wrote: Sunday 15 August 2021 16:34 Since updating to Domoticz 2021.1 I have the strange issue that some of the device values do not reach InfluxDB, others still do.
Did you update to stable (build 13191) or to a beta 2021.1 (build > 13191)?
As there are things changing with regards to the Python Plugin framework in beta.
I'm now on build 13360. But I think because of the issues, I tried the beta channel.

I've added the GoodWe hardware to my second Pi with Domoticz (stable 2021.1). Same result. The specific measures are not stored in InfluxDB.
User avatar
waltervl
Posts: 5149
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by waltervl »

Wiljums wrote: Monday 16 August 2021 13:51 I've added the GoodWe hardware to my second Pi with Domoticz (stable 2021.1). Same result. The specific measures are not stored in InfluxDB.
Can you try in your second Pi with stable to update one device with Domoticz http API call https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

If these updates are sent to influxDB then there is something wrong with the plugin or more likely with the Plugin Framework.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
vinjon
Posts: 7
Joined: Tuesday 24 March 2020 9:19
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by vinjon »

Since this morning I got this error

2021-08-17 09:40:53.753 Error: (GoodWe PV) 'onMessage' failed 'KeyError'.
2021-08-17 09:40:53.754 Error: (GoodWe PV) ----> Line 353 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onMessage
2021-08-17 09:40:53.754 Error: (GoodWe PV) ----> Line 149 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onMessage

Installed the plugin on another PI, same result.
Inverter readings in Sems portal app are OK
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

Hi Vinjon,

I'm not seeing these errors here. Do they occur at every attempt to pol the Goodwe server (so every 5 minutes at the default update rate)?

Which server server do you connect to (I'm on 'Europe')?

If the problem persists, can you switch on debug log level and send me the complete logging so I can see what part of the return message is not working as expected?
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
vinjon
Posts: 7
Joined: Tuesday 24 March 2020 9:19
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by vinjon »

JanJaap wrote: Tuesday 17 August 2021 10:39 Hi Vinjon,

I'm not seeing these errors here. Do they occur at every attempt to pol the Goodwe server (so every 5 minutes at the default update rate)?

Which server server do you connect to (I'm on 'Europe')?

If the problem persists, can you switch on debug log level and send me the complete logging so I can see what part of the return message is not working as expected?
Error occurs only when I restart domoticz or disable/enable the hardware. Looks like no attempt to connect is made.

Loglevel is already on debug, this is all I get in the error log

I connect to Europe (but global gives the same result)
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

OK, that provides some more info. And I can reproduce it. I'll try to fix this.

The plugin works such that it retrieves data on the stations from the web portal if not loaded locally. The API seems to have changed there...
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
SolarShed
Posts: 2
Joined: Wednesday 18 August 2021 8:47
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by SolarShed »

vinjon wrote: Tuesday 17 August 2021 11:06
JanJaap wrote: Tuesday 17 August 2021 10:39 Hi Vinjon,

I'm not seeing these errors here. Do they occur at every attempt to pol the Goodwe server (so every 5 minutes at the default update rate)?

Which server server do you connect to (I'm on 'Europe')?

If the problem persists, can you switch on debug log level and send me the complete logging so I can see what part of the return message is not working as expected?
Error occurs only when I restart domoticz or disable/enable the hardware. Looks like no attempt to connect is made.

Loglevel is already on debug, this is all I get in the error log

I connect to Europe (but global gives the same result)
Same issue here, data retrieval from the sems portal stopped on 17-08. Same errors in the log.

2021-08-18 08:43:00.301 Error: Inverter: (Inverter) 'onMessage' failed 'KeyError'.
2021-08-18 08:43:00.301 Error: Inverter: (Inverter) ----> Line 353 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onMessage
2021-08-18 08:43:00.301 Error: Inverter: (Inverter) ----> Line 149 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onMessage
User avatar
waltervl
Posts: 5149
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by waltervl »

JanJaap wrote: Tuesday 17 August 2021 11:09 The plugin works such that it retrieves data on the stations from the web portal if not loaded locally. The API seems to have changed there...
I have no errors until now, everything works fine. Although I do not understand what this local loading would mean.
My Sems server is Europe.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

It is an odd situation indeed since I haven't seen an update to the goodwe app on my phone, which would be expected when they change the API.

The local storage remark was incorrect that applies to another plugin I maintain. In this plugin I just go through all API calls at every update, which may be redundant. I'll see if I can improve that later.....
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
loeknl
Posts: 6
Joined: Saturday 04 July 2020 16:16
Target OS: Raspberry Pi / ODroid
Domoticz version: 2021.1
Location: Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by loeknl »

I have the same issues since 17-8. From the Domoticz errorlog:

Code: Select all

021-08-19 22:00:14.228 Error: Zonnepanelen: (Zonnepanelen) 'onConnect' failed 'KeyError'.
2021-08-19 22:00:14.228 Error: Zonnepanelen: (Zonnepanelen) ----> Line 304 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onConnect
2021-08-19 22:00:14.228 Error: Zonnepanelen: (Zonnepanelen) ----> Line 176 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onConnect
2021-08-19 22:00:14.228 Error: Zonnepanelen: (Zonnepanelen) ----> Line 158 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function startDeviceUpdate
2021-08-19 22:00:14.228 Error: Zonnepanelen: (Zonnepanelen) ----> Line 146 in '/home/pi/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function stationDataRequest
Any suggestions to solve this?
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

Yes, working on it. Seems that there is a couiple of things going on:
- I put some requests that are now not valid anymore
- I was querying for a list of stations but that endpoint seems not to work any more (was not used by others)

I'm close to a solution but need a bit more refactoring...
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

OK, It's working for me now, hope this fixes it for all you guys out there. i will publish a newer, cleaned up version after my holiday, since it is now doing quite some steps redundantly but don't want to break it now that it finally works again 8-)

Please pull latest version from github.com/JanJaapKo/domoticz-GoodWeSEMS
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
vinjon
Posts: 7
Joined: Tuesday 24 March 2020 9:19
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by vinjon »

Got this errors now:

2021-08-20 07:50:15.014 Error: (GoodWe PV) 'onHeartbeat' failed 'TypeError':'string indices must be integers'.
2021-08-20 07:50:15.014 Error: (GoodWe PV) ----> Line 455 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onHeartbeat
2021-08-20 07:50:15.014 Error: (GoodWe PV) ----> Line 393 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function onHeartbeat
2021-08-20 07:50:15.014 Error: (GoodWe PV) ----> Line 132 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/plugin.py', function startDeviceUpdateV2
2021-08-20 07:50:15.014 Error: (GoodWe PV) ----> Line 293 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/GoodWe.py', function createStationV2
2021-08-20 07:50:15.014 Error: (GoodWe PV) ----> Line 209 in '/home/user/domoticz/plugins/domoticz-GoodWeSEMS/GoodWe.py', function __init__
JanJaap
Posts: 191
Joined: Thursday 12 October 2017 20:46
Target OS: Raspberry Pi / ODroid
Domoticz version: Dev
Location: the Netherlands
Contact:

Re: Python Plugin: GoodWe solar inverter via SEMS API

Post by JanJaap »

ok, did not check in detail but in the newest version you have to supply the station id (as I can't query for that anymore) which I presume you did not do. So I fixed that now by making this an explicit error. Plus I fixed the issue with token being expired (which I forgot last night). Please give it another try.
RPi 3, Domoticz dev version, Aeon ZWave stick (with a whole bunch of slaves), Zigbee using Zigbee2MQTT, Nest thermo, P1 smart meter on RPi Zero
Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 1 guest