Modbus structure ">f" lost after decimal value

Any ideas why modbus value 0x70 0x43 0x60 0xdf parsed with struct >f rounded to integer?

Here is my config:

  - platform: modbus
    ...
    registers:
        register_type: input
        data_type: custom
        structure: ">1f"

Received value:

RECV: ... 0x70 0x43 0x60 0xdf ...

That in IEEE-754 format supposed to be 0x4370df60. I converted it here IEEE-754 Floating Point Converter to 240.872558594. The sensor value contains only integer part of the number.

What could be wrong?

Did you try this?

  - platform: modbus
    ...
    registers:
        register_type: input
        data_type: float

No, because I dont use single register requests at all. For this device I have 56 values in a single request. Multiplied by amount of devices and frequency of requests in the RS485 network I would say this type of requests are not for me.

Does single request uses alternative value parser?

Oh, that was “precision: 4”. If affects all values received in request when data type set to custom and struct used to parse the result.
I think documentation should mention this dependency explicitly - in section that describes custom data_type for modbus.