Home Assistant Modbus ‘No Response’ but QModMaster Works

You wired up a Modbus device — say, an Aqotec controller behind a Waveshare RS485-to-Ethernet gateway — and QModMaster reads its registers without a hitch. Then Home Assistant logs No response received from the remote unit or Unable to decode response, and nothing updates. This exact “QModMaster works, HA doesn’t” situation comes up regularly in the Home Assistant community. The good news: QModMaster just proved your hardware chain is fine. The fault is almost certainly in the HA configuration — and there is a systematic way to find it.

The bisection rule: if QModMaster reads, the wire is fine

A successful QModMaster read proves, in one shot, that the serial parameters (baud rate, parity, stop bits) or the TCP host and port, the gateway’s operating mode, the wiring, the slave address, and the device itself all work — with exactly the settings you typed in. So stop re-crimping cables and swapping adapters. From here on, the only remaining suspect is how the Home Assistant modbus integration is configured. Keep the working QModMaster session open next to your HA config; you will compare the two value by value.

Step 1 — Write down the four values that worked in QModMaster

  • Connection mode: RTU on a serial port, or TCP to the gateway’s IP and port (e.g. 192.168.1.100:8899 for a transparent bridge, :502 for a Modbus-TCP gateway).
  • Unit identifier / slave address: the slave ID the read succeeded with.
  • Function code and start address: e.g. Read Input Registers (FC04) starting at address 0, or Read Holding Registers (FC03).
  • Register count and display format: how many registers you read, and whether the value was 16-bit, 32-bit float, etc.

Step 2 — Match each value to an HA config key

These five mismatches cause nearly every “QModMaster works, HA doesn’t” case:

  • Wrong slave / unit ID → “No response received from the remote unit”. The HA slave: key must equal the Unit Identifier that worked in QModMaster. If a TCP gateway serves several slaves, every sensor entry needs its own slave: — one shared value silently breaks the rest.
  • Wrong count → “Unable to decode response”. HA’s count: must equal the number of registers the device actually returns. If QModMaster read 10 registers, the sensor needs count: 10; a 32-bit float needs count: 2.
  • Wrong data_type → decode errors or garbage values. Match data_type: (int16, uint16, int32, uint32, float32, string…) to the device manual. If floats come back as astronomical numbers, check the byte order too — see our float byte-order fix guide.
  • Holding vs. input mix-up. QModMaster’s “Read Holding Registers” (FC03) maps to HA input_type: holding; “Read Input Registers” (FC04) maps to input_type: input. Reading the wrong table produces exception responses the decoder cannot handle.
  • Polling too fast. Some devices drop off the bus if polled aggressively. Start with scan_interval: 30 and only speed up once the device proves it tolerates it.

Minimal working HA modbus config to compare against

Use this as a reference skeleton, then replace every value with what worked in your QModMaster session and your device’s manual:

modbus:
  - name: hub1
    type: rtuovertcp   # tcp, rtuovertcp, or serial — must match QModMaster's mode
    host: 192.168.1.100
    port: 8899
    sensors:
      - name: "Voltage"
        slave: 1              # = the Unit Identifier that worked in QModMaster
        address: 0
        input_type: input     # input = FC04, holding = FC03
        data_type: float32
        count: 2
        scan_interval: 30
        unit_of_measurement: "V"

Key names follow the Home Assistant modbus integration documentation; always double-check them against the HA version you run, since integration options evolve.

If it still fails after the config matches

  • Open Settings → System → Logs in HA and read the exact frame-level error — it usually names the register or the slave that failed.
  • Some gateways need a small delay between requests, and some devices need a longer response timeout than HA’s default.
  • Capture both directions: compare a Wireshark capture of QModMaster’s request frame against HA’s request frame. The first byte that differs is your bug.

And if you haven’t done the probe-first workflow yet, start here: test your Modbus link with QModMaster before writing the Home Assistant config — five minutes with the GUI saves hours of YAML guessing.

Related Guides

Similar Posts