Different scales for current and target temp in climates (MODBUS)

I have encountered this problem: the climate device is reading the current temperature and targeting the temperature. But there are devices that have different scale of these temperatures.
I am ready to make a Pull Request, at my work I have already fixed it in a simple way. For PR of course I want to do qualitatively. And I see that the scale is performed in the entity.py file common for all kinds of devices. What is the best way to make custom scales for ccrent_temp_scale, target_temp_scale in slimates. I could add just two new config words and execute scale in climate.py. But then it would be necessary to disallow the use of regular scale. But CLIMATE_SCHEMA extends BASE_STRUCT_SCHEMA, which has regular scale.

So I would like to be able to write a configuration like this.

    climates:
      - name: "Кондиціонер ІТР 115 каб."
        slave: 20
        address: 4
        input_type: holding
        current_temp_scale: 0.1 # New
        target_temp_scale: 1    # New
        max_temp: 30
        min_temp: 16
        precision: 1
        temperature_unit: C

But it introduces some inconsistency with using regular scale, and I take it such a naive change would not be accepted.
Or am I deluded and could do something in style:

    vol.Exclusive("std_group", "scale_group", vol.Schema({
        vol.Optional(CONF_SCALE): cv.string,
    })),
    vol.Exclusive("current_target_group", "scale_group", vol.Schema({
        vol.Optional(CONF_CURRENT_SCALE): cv.string,
        vol.Optional(CONF_TARGET_SCALE): cv.string,
    })),

Hi Illia,

have you had a look at: home-assistant/custom_components/modbus_new at main · dmatscheko/home-assistant · GitHub ? This seems to target exactly that issue. I am also in need of a separate scale for target_temp. I am now trying to download this as a custom component since HACS will not let me download from the repository (wrong version).
Kind regards,
Be

hello! Any luck with finding a solution?

I have a similar case - I have a HVAC device that use different scale to store temperature data current temp register and target_temp_register.
I am trying to create a Modbus climate configuration but haven’t found a way to define different scale.

hi Be,
Right, looks target_temp_scale attribute is what I am looking for. Unfortunately it is not supported in modbus built-in integration in HA.

I am trying to create a Pull Request for this feature in built-in integration in HA: Added separate scale for current temp for climates by illia-piskurov · Pull Request #135848 · home-assistant/core · GitHub

1 Like

I see the discussion in Add separate scale and offset for current temperature for modbus climates by illia-piskurov · Pull Request #150985 · home-assistant/core · GitHub but I don’t understand the reason. Is this only a discussion about code design or is the use case problem not clearly?

I’m using a Heat Pump (Dimplex SIW 8TES) and after HA Core 2025.8.2 the custom component for modus with the parameter “target_temp_scale” stop works.

Now are current and target temperature incorrect.

I’m wondering why not more other user have this problem.

New PR: Add separate scale and offset for current temperature for modbus climates by illia-piskurov · Pull Request #150985 · home-assistant/core · GitHub. Code design issues (

I have now encountered the same error. I also have a Dimplex LA 12S-TU heat pump. Different scales for the actual and target values.