mletenay / home-assistant-goodwe-inverter

Experimental version of Home Assistant integration for Goodwe solar inverters
https://discord.gg/TaXyWXT
MIT License
149 stars 43 forks source link

GoodWe GW6000-ES-20 - Post Firmware Upgrade Issue #178

Closed ryanck123 closed 1 year ago

ryanck123 commented 1 year ago

Hi

My installer had to upgrade my firmware, and after having the system work correctly for about a week, it stopped. I'm currently on inverter firmware version V5 and ARM version V2 according to GoodWe support and PV Master app. Below is a snapshot of the error in the log:

_

Logger: goodwe.es Source: /usr/local/lib/python3.10/site-packages/goodwe/es.py:199 First occurred: 09:31:04 (6 occurrences) Last logged: 10:37:58

Error decoding firmware version . Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/goodwe/es.py", line 193, in read_device_info self.dsp1_version = int(self.firmware[0:2]) ValueError: invalid literal for int() with base 10: '\x00\x02'

_

Subsequent messages are failed to connect after retries, and no valid responses have been received.

The stock integration doesn't work, and I also tried reconfiguring WiFi and in a different HA instance.

Regards

mletenay commented 1 year ago

I'll look into it, but if you could increase log level to DEBUG and attach here the response strings, it would help and allow me to write unit tests.

ryanck123 commented 1 year ago

home-assistant_goodwe_2023-03-28T09-26-24.118Z.log Thank you very much.

Based on some back and forth with GoodWe, it seems the model is still new and likely has a couple of issues. For some reason, I still get PV Master to work. Rolling back firmware isnt an option as I had an issue with the unit tripping on the old firmware if the grid is lost. I'm also going to use this tool later today to test connectivity. https://powerforum.co.za/files/file/60-goodwe_es-live-udp-data-by-cef-ver/.

Will update as soon as I have managed to find something.

mletenay commented 1 year ago

Your inverter seems to be "2nd generation" of "ES" inverters and it is quite possible it no longer talks the old "ES" protocol, but the newer "ET" protocol. Could you try to explicitly specify family "ET" when adding integration to HA ? (And attach the logs again ...)

ryanck123 commented 1 year ago

Yes, you are correct that it is the gen2 ES inverter (https://en.goodwe.com/es-g2), but unfortunately, I am not able to connect when specifying "ET" or even "none". image

I wasn't aware that there were multiple protocols on these, so I ran through the list of available models and could get "ES" and "EM" to get past the configuration screen. I've attached the logs for the period I was testing the different options. home-assistant_hacs_2023-03-29T07-53-16.710Z.log

mletenay commented 1 year ago

It's difficult to debug it from HA. Are you able to checkout the library sources from https://github.com/marcelblijleven/goodwe and run python script tests/inverter_check.py ?

ryanck123 commented 1 year ago

invertercheck-none.txt invertercheck-es.txt

Here are the two output files, 1 running the test set to "None" and 1 set to "ES". Again ES and EM give responses, however, the rest don't. I have asked Goodwe on my firmware to reload it, in case that is the issue, since the firmware version query gives these special characters.

I can only assume that they have made significant changes in the latest firmware, given it worked before and PVMaster still works.

mletenay commented 1 year ago

So it seems to talk the "ET" protocol, just they started to encode firmware versions differently. I have committed a fix and protocol auto-detection. Please checkout/pull the latest code and try again ...

ryanck123 commented 1 year ago

See the latest checks run. invertercheck-et.txt invertercheck-es.txt invertercheck-none.txt

Still looks the same, unfortunately. If you can talk me through it, I can run modbus poll or a similar tool to poll the inverter and share those logs too. I tried RTU over UDP/IP on port 8899 and slave address 247 with no success, with similar requests as per this document, but not succeeding. 4349-1GoodweModbusPROTOCOLHybrid-ENV1-3EMseries.pdf

mletenay commented 1 year ago

You must have tested the old, not updated code. The decoding now look like this - https://github.com/marcelblijleven/goodwe/blob/6895225c1a7780ff960140bd2690ecf9a2f127bb/goodwe/et.py#L347 and not as in the exception.

ryanck123 commented 1 year ago

I reran it now, confirming I have also upgraded the goodwe library in python and still get the same response as this morning. ES.txt ET.txt

Im not sure what Im doing wrong.

mletenay commented 1 year ago

Hmm, it's probaly using the released version of library installed in python's pip. Try to run the script directly from tests directory, then the sys.path.insert(0, '../../goodwe') on line 7 should ensure you're executing the local sources.

ryanck123 commented 1 year ago

Ok think I managed to get this right, see attached logs for both. inverter_check_es.txt

inverter_check_et.txt

mletenay commented 1 year ago

That looks good. Now uncomment the lines 42-45 and see if you get the sensor data.

ryanck123 commented 1 year ago

I have checked and can see both the real data and the settings, to confirm a more static value and I'm getting good data.

mletenay commented 1 year ago

Great. I have uploaded the changes, so if you (re) install the beta/master version of the integration in HACS, it should be working in HA properly now. When you confirm it, I'll release a new version v0.9.9.10.

ryanck123 commented 1 year ago

I can confirm it works, I noticed the update and implemented it now. Thank you very much for making this work again for me.