Sungrow Binding

Network connection is abnormal. Please check network.

@ericbodden did you find out more / resolve this issue ? I am finding it gets into this state if I have a few websockets running. Pretty flimsy.

Same here - Network connection is abnormal. Please check network. - After a few (many) tries I can access and then it stays stable during using the WebIF - but when I try to acces the url the next time it starts from the beginning giving me the error.
As I have a very new Sungrow system (installed just a week ago) I guess the firmware was updatetd shortly during installation of the system (but not sure - will check the next time I have access…)
Actual the WiNet-S is connected via WiFI, ModbusTCP is working without issues, data is being collected.
Update: FW: M_WiNet-S_V01_V01_A

Hi,
I just installed the binding and configured everything. In general, it works. Every few seconds I recieve this error:

2024-06-19 16:38:58.127 [ERROR] [grow.internal.SungrowInverterHandler] - Failed to get modbus data
org.openhab.core.io.transport.modbus.exception.ModbusConnectionException: Error connecting to endpoint ModbusIPSlaveEndpoint [address=192.168.178.XXX, port=502]
        at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.lambda$5(ModbusManagerImpl.java:482) ~[?:?]
        at org.openhab.core.io.transport.modbus.internal.SimpleStopWatch.timeRunnable(SimpleStopWatch.java:152) ~[?:?]
        at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.getConnection(ModbusManagerImpl.java:481) ~[?:?]
        at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl.executeOperation(ModbusManagerImpl.java:561) ~[?:?]
        at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.lambda$1(ModbusManagerImpl.java:810) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:840) [?:?]

The thing also becomes offline during that time.

Hi @Rainer15,
I also tried running the inverter in my guest network, but wasn’t able to make it work since my openHAB instance could not see it there. How did you solve this?

Hello. The only thing that worked for me was to connect the inverter to our LAN via the built-in LAN port (which directly speaks MODBUS), not through the communication module. I still use the communication module to inspect the inverter through the Sungrow app but this I now connect through WIFI. (I guess one could also use a second LAN cable instead.)

Yep, Sungrows are mean in that while they respond to Modbus/TCP on the WiFi adapter’s IP address, that adapter does not have access to the system registers.
That might have changed with recent revisions, but you’re aware now. Only ever go with Ethernet if possible.

I am using the WiFi adapter as my electrician installed it, but I guess adding the cable will be my next step.

Update: Same happens with cable connected.

I also noticed that there is some configuration for max tries, which seems to not be used in this Sungrow binding. Any chance that this will be added?

ensure you really use the Ethernet address. Disable/enable system state after plugging in eth.

I did, unfortunately it didn’t help at all.

(post deleted by author)

I also noticed that when the connection drops, 0 values are reported to openHAB. Maybe the binding can be adjusted so that if no connection to the inverter can be made, no updates are sent to openHAB. Currently I am using proxy items to filter these values out, but I feel like this could be solved in the binding directly.