I’m trying to connect a Huawei SUN2000 to Home Assistant locally over Modbus TCP via SDongle, but setup always fails
at the initial inverter read.
Setup:
- Inverter: Huawei SUN2000-6KTL-M
- Communication device: SDongleA-HV2150154700
- Dongle IP: 192.168.1.41
- Modbus TCP is enabled on the Huawei side
- Connection type: Network
- Main tested port: 502
- Fallback tested port: 6607
- Tested slave IDs: 1 and 0
- Home Assistant version: 2026.2.2
- Integration tested:
- Huawei Solar 1.6.0
- beta 2.0.0b2
What is confirmed:
- 192.168.1.41 is reachable
- 502/tcp is open
- 6607/tcp was previously closed/refused
- HACS / Home Assistant side is working correctly
- The integration loads correctly and appears as a valid config flow handler
- No duplicate custom component copies remain
What happens:
- The integration never creates a config entry
- Setup fails during the very first device identification read
- On stable I got read_error
- On beta 2.0.0b2 I now get unknown, but logs are more specific
Relevant logs from beta:
- Connection failed when trying to read registers model_name
- Connection error while reading registers [‘model_name’]
- tmodbus.exceptions.ModbusConnectionError: Transport is not connected
- Received an ModbusConnectionError error. Closing the connection to force a reconnect.
Earlier stable logs also showed:
-
Failed to read register 30000 after 6 tries
-
Modbus client is not connected to the inverter
-
192.168.1.41:502, slave 1
-
192.168.1.41:502, slave 0
-
beta and stable
-
all with elevate permissions = off
All of them fail before the inverter model can be read.
At this point it looks less like a Home Assistant installation issue and more like a Modbus TCP / SDongle / firmware /
active-session problem on the Huawei side.
Question:
Has anyone seen this exact behavior with SUN2000 + SDongle, where TCP is reachable but the connection drops already on
model_name / register 30000 reads? If yes, was the root cause:
- another active Modbus client / Device Commissioning session
- SDongle firmware
- inverter firmware
- port / slave-id specifics
- or something else?