goodwe icon indicating copy to clipboard operation
goodwe copied to clipboard

Problems with GW15k-ET-20

Open EnvironCMO opened this issue 2 months ago • 1 comments

Has anyone had problems with this inverter, too?

I added the identifier to the code:

MPPT3_MODELS = ('MSU', 'MST', 'PSC', 'MSC', '25KET', '29K9ET', '25KMT', '15KEU')

But it shows that the inverter is neither supported nor recognisable.

I tested several other things:

UDP Test Port 8899 (Device Frame): {'ok': False, 'host': '192.168.178.54', 'port': 8899, 'error': 'timeout'}

UDP Broadcast Test Port 48899: {'ok': False, 'port': 48899, 'error': 'timeout'},

Async Test (8899): {'ok': False, 'port': 8899, 'error': 'timeout'}.

Async Test (8899): {'ok': False, 'host': '192.168.178.54', 'port': 8899, 'error': 'timeout' INFO: ConnectionRefused = Port closed or UDP service disabled.

When I force direct communication over port 502, I receive the data: Registers 35100–35119: 35100 6410 35101 267 35102 6928 35103 5874 35104 102 35105 0 35106 5991 35107 4873 35108 102 35109 0 35110 4960 35111 0 35112 0 35113 0 35114 0 35115 65535 35116 65535 35117 65535 35118 65535 35119 514

Does anyone know what the problem is or how to fix it?

EnvironCMO avatar Oct 16 '25 12:10 EnvironCMO

Feedback from GoodWe Support:

The reason that detection via UDP is not possible is that UDP detection is no longer supported with the new WiFi/LAN 2.0 Cyber Security. All dongles without a Cyber Security chip support UDP detection.

EnvironCMO avatar Oct 20 '25 06:10 EnvironCMO

@EnvironCMO is there a solution for this? Like buying GoodWe WiFi/Lan Kit 2.0?

TheLordBaski avatar Nov 14 '25 14:11 TheLordBaski

@TheLordBaski you can use TCP directly instead of UDP.

EnvironCMO avatar Nov 17 '25 06:11 EnvironCMO

I tried this:

# Connect using the protocol
        inverter = await goodwe.connect(
            ip_address, 
            comm_addr=0xf7,
            family="ET",
            port=port,
        )

but still can't connect to it.

TheLordBaski avatar Nov 18 '25 14:11 TheLordBaski

Try:

inverter = await goodwe.connect(inverter_ip, port=502, timeout=5, force_tcp=True)

EnvironCMO avatar Nov 18 '25 15:11 EnvironCMO

Increasing timeout doesn't work, I no force_tcp argument in the connect. But internally, I check, it's using TCP when the port is 502.

Also tried goodwe.search_inverters() but getting

Traceback (most recent call last):
  File "C:\Users\jakub\test.py", line 88, in <module>
    main()
  File "C:\Users\jakub\test.py", line 84, in main
    asyncio.run(detect_inverter(args.ip, args.family))
  File "C:\Users\jakub\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Users\jakub\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
    return future.result()
  File "C:\Users\jakub\test.py", line 28, in detect_inverter
    inverters = await goodwe.search_inverters()
  File "C:\Users\jakub\AppData\Local\Programs\Python\Python310\lib\site-packages\goodwe\__init__.py", line 127, in search_inverters
    result = await command.execute(UdpInverterProtocol("255.255.255.255", 48899, 1, 0))
  File "C:\Users\jakub\AppData\Local\Programs\Python\Python310\lib\site-packages\goodwe\protocol.py", line 457, in execute
    result = response_future.result()
goodwe.exceptions.MaxRetriesException

TheLordBaski avatar Nov 18 '25 15:11 TheLordBaski