Hi all,
I’m looking for some guidance integrating a Norsup inverter pool pump into Home Assistant via Modbus, and I’m at the point where I’d appreciate a second set of eyes from anyone familiar with DAB E.Swim–based pumps or Modbus RTU gateways.
Hardware / Topology
- Pump: Norsup inverter pool pump
(OEM / rebadged DAB E.Swim–based controller) - Comms: RS-485 (Modbus RTU)
- Gateway: Waveshare RS485 → Ethernet
- HA install: Home Assistant Core (VM), YAML-based Modbus config
Home Assistant
|
| Modbus TCP
v
Waveshare RS485 ↔ ETH (192.168.1.223)
|
| RS-485
v
Norsup / DAB E.Swim pump
Pump behaviour
- Pump display shows ADR57 (confirmed on the controller)
- Timer slots all disabled
- Display shows T0 flashing
- Front panel button combos cannot change control mode
- Pump does not respond to Modbus writes (RPM etc.)
From documentation and behaviour, this appears to be local-priority mode until BUS / external control is accepted.
Gateway status
- Waveshare web UI reachable
- Initially TX/RX counters were
0 / 0 - After fixing HA config, TX and RX counters now increase
- So Modbus TCP traffic is being forwarded to RS-485
- Something on the bus is responding (or at least frames are moving)
modbus:
-
name: pool_pump_u57
type: tcp
host: 192.168.1.223
port: 502
timeout: 5
unit_id: 57sensors:
- name: Pool Pump Alive Test
address: 0
input_type: holding
data_type: uint16
scan_interval: 15
numbers:
- name: Pool Pump Target RPM
address: 0
input_type: holding
data_type: uint16
min_value: 800
max_value: 3000
step: 100
- name: Pool Pump Alive Test
Current HA log output
I now consistently see messages like:
Pymodbus: pool_pump_u57: Error: device: 57 address: 0 →
Modbus Error: [Input/Output] No response received after 3 retries
So:
- Correct unit_id is being used
- Requests are being sent
- No valid reply from the pump for that register
What I believe is true so far
- RS-485 wiring is correct (TX/RX activity confirmed)
- Waveshare gateway is working and forwarding traffic
- Pump address is definitely 57
- This is not a Home Assistant initialisation issue anymore
- Likely causes now:
- BUS / external control not enabled on the pump
- Wrong register map / wrong function (read vs write-only)
- RPM register is not HR0, or is scaled differently
- Pump only accepts commands once explicitly put into BUS mode
What I’m looking for help with
- Has anyone successfully controlled a DAB E.Swim (or OEM Norsup) pump via Modbus?
- Does BUS / external mode require a physical DIP switch or installer tool, or does it auto-engage when valid Modbus traffic is detected?
- Is there a known Modbus register map for E.Swim-based pumps (RPM, run/stop, status)?
- Are RPM values typically:
- absolute (e.g.
1500) - or scaled (e.g.
150 = 1500 RPM)?
I’m happy to test different registers / data types — just want to avoid random guessing if someone already knows the correct approach.
Thanks in advance — and happy to post updates once cracked in case it helps others.