Efficient floor heating control with Nest, Home Assistant, and a wood stove

I have a question about controlling my underfloor heating system. I hope there are some people here with experience in this area who might have some creative ideas.

On the ground floor, I have water-based underfloor heating powered by a gas boiler. The boiler is controlled by a Nest thermostat, which is connected to Home Assistant.

In the same room, I also have a wood stove that I often use in the evenings.

The problem is that when the stove is on, the Nest thermostat stops calling for heat, so the floor cools down quite a bit overnight. In the morning, it then takes quite a while for the floor to warm up again.

What I’d like is for the boiler to also heat the floor based on the floor temperature, so that it doesn’t drop below 18°C — regardless of whether the stove was used or not.

I haven’t found a thermostat with a floor sensor that can handle this properly. Maybe someone here has some recommendations?

I do have a floor temperature sensor that’s connected to Home Assistant.

So, I was thinking of creating an automation that increases the Nest thermostat’s setpoint when the floor temperature drops below 18°C, and lowers it again once the floor reaches 19°C.

But I’m unsure how to design this efficiently — I don’t want to suddenly raise the thermostat by, say, 8°C, because that would make the boiler fire at full power and waste gas. Ideally, I’d like a gradual warm-up that uses as little gas as possible.

How would you approach this? For example, could I calculate the current room temperature (which can be 22–23°C when the stove is on) and just set the Nest to one degree higher than that?

Any tips or ideas would be greatly appreciated!

Would this be a good automation setup (generated by chatgpt…)? Or can it be improved?

alias: Vloerverwarming temperatuur bewaken
description: Houdt de vloertemperatuur boven 18°C met geleidelijke Nest-aanpassing
trigger:
  - platform: numeric_state
    entity_id: sensor.smart_implant_vloerverwarming
    below: 18
    for:
      minutes: 5
  - platform: numeric_state
    entity_id: sensor.smart_implant_vloerverwarming
    above: 19
    for:
      minutes: 5
condition: []
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.smart_implant_vloerverwarming
            below: 18
        sequence:
          - variables:
              current_room_temp: "{{ state_attr('climate.nest_thermostaat', 'current_temperature') | float }}"
              target_temp: "{{ (current_room_temp + 1) | round(1) }}"
          - service: climate.set_temperature
            target:
              entity_id: climate.nest_thermostaat
            data:
              temperature: "{{ target_temp }}"
      - conditions:
          - condition: numeric_state
            entity_id: sensor.smart_implant_vloerverwarming
            above: 19
        sequence:
          - service: climate.set_temperature
            target:
              entity_id: climate.nest_thermostaat
            data:
              temperature: 19
mode: single