Modbus sensor seemingly keeps changing register

I’ve recently purchased a modbus RS485-to-TCP interface from Aliexpress, to control my Systemair SAVE VSR300 ventilation unit from Home Assistant. And after a bit of fiddling I got it up and running, and was able to read back values manually using QModMaster.

But after adding some modbus sensors to Home Assistant, it seems that the values aren’t what I would expect, as if the register is wrong. I add a modbus sensor for the outside air temperature register, and I get what seems to be the regulated indoor air temperature.

image

The same goes for other modbus sensors I’ve added:

- platform: modbus
  scan_interval: 5
  registers:
    - name: Temperature setpoint, supply air
      hub: systemair_vsr300
      unit_of_measurement: °C
      slave: 1
      register: 2054
      register_type: input
      data_type: int
      scale: 0.1
    
    - name: Usermode, active
      hub: systemair_vsr300
      slave: 1
      register: 1161
      register_type: input
      data_type: int
    
    - name: Temperature, outdoor air
      hub: systemair_vsr300
      unit_of_measurement: °C
      slave: 1
      register: 12102
      register_type: input
      data_type: int
      scale: 0.1
    
    - name: Temperature, supply air
      hub: systemair_vsr300
      unit_of_measurement: °C
      slave: 1
      register: 12103
      register_type: input
      data_type: int
      scale: 0.1

I’ve been in touch with Systemair, and I know that this is the correct modbus register overview.

The strange thing is that if I connect to the modbus interface with QModMaster and start reading out values, I get the expected value (or I sometime get Invalid data or Timeout). But I never get the value of what seems to be a different register. But I also see that if I start reading values with QModMaster, Home Assistant seems to start showing the correct value also.

image

Anybody that has an idea of what’s going on here?

Have you solved this issue? I’ve faced the same problem!