Hello everyone,
I’m looking for some help getting a stable Modbus TCP connection between my Growatt inverters and Homey Pro 2024.
System setup
- 46 × 420 Wp solar panels
- 3 × Growatt MIN inverters:
- MIN 3600TL-XH
- MIN 4200TL-XH
- MIN 4600TL-XH
- All inverters connected through an Elfin EW11 RS485-to-WiFi gateway
- Unique Modbus IDs configured for each inverter
- Homey Pro 2024
- Using the Modbus TCP/IP app by Ronny Winkler
What works
After rebooting the EW11, everything works perfectly:
- Reading registers
- Writing registers
- Controlling active power via Register 3 (0-100%)
The problem
After running for some time (typically within an hour), communication becomes unstable and I start receiving the following error “Connection to modbus server closed” on write and read commands
What I have already tried
- Verified unique Modbus slave IDs
- Checked EW11 configuration against the Growatt Modbus protocol
- Placed a dedicated Wi-Fi access point very close to the EW11 to rule out Wi-Fi signal issues
- Reduced the polling frequency, increased polling frequency (to keep the modbus live)
Questions
- Has anyone experienced similar issues with Growatt + EW11 + Modbus TCP?
- Could missing RS485 termination resistors be the cause? I don’t have the start and end resistors in place of 120 ohm. Connection between the EW11 and 3 growatts is less then 2 meters.
- Are there specific EW11 settings (packing time, timeout, TCP settings, heartbeat, etc.) known to improve stability?
- Is there a recommended polling interval when communicating with multiple Growatt MIN XH inverters?
Goal
My goal is to dynamically control inverter output based on hourly electricity prices:
- Export when prices are positive
- Run approximately zero-on-the-meter around €0/kWh
- stop production when the effective export price becomes sufficiently negative
Any suggestions or experience with a similar setup would be greatly appreciated.
Thanks!
EW11 settings
Protocol: Tcp server
Socket settings:
Local port: 502
Buffer size:512
Keep alive: 60s
Timeout: 30s
Protocol settings max accept: 3
Security: disable
Route: Uart
Serial port settings:
Baud rate 9600
Data bit 8
Stop bit 1
Parity None
Buffer settings
Buffer size:512
Gap time:50
Flow control settings:
Flow control: disable
Cli settings
Cli: Serial string
Serial string: +++
Waiting time: 300
Protocol settings:
Protocol: Modbus
Advanced settings in homey Modbus TCP app:
IP address 192.168.1.246
Port:502
ID 1,2 or 3 (depending on which inverter)
Modbus options:
Use write multiple registers function for sing register: no
Prevent writing unchanged data: no