Generic Thermostat - multiple heaters for same room, active heaters selected based on outside temp

I have 3 heaters in one room, 2 baseboards and one dyson air purifier that can also heat.

I would like to be able to add all 3 heat sources to the generic thermostat

heater1: switch.dining_heater
heater2: switch.living_room_dyson
heater3: switch.lounge_heater

and then have only heater1 kick in when outside temp is 5’ or less below set temp, heater 1 and 2 if outside temp is 10 ’ or less below set temp, and 1, 2 and 3 if outside temp is more than 10’ below set temp

Until this FR is implemented (although I doubt it ever will) let me know if you want a way to achieve your goal now (using Generic Thermostat and a Template Switch).

would appreciate that workaround :slight_smile:

Create a Template Switch named switch.heaters like the following example. Be sure to change climate.your_thermostat and sensor.your_outdoor_temperature to the actual entities you are using.

switch:
  - platform: template
    switches:
      heaters:
        value_template: >
          {{ expand('switch.dining_heater', switch.living_room_dyson', switch.lounge_heater')
            | selectattr('state', 'eq', 'on') | list | count > 0 }}
        turn_on:
          service: switch.turn_on
          target:
            entity_id: >
              {% set diff = (state_attr('climate.your_thermostat', 'temperature') - states('sensor.your_outdoor_temperature') | float(0)) | abs %}
              {{ [{'t': diff >= 0, 's': 'switch.dining_heater'},
                  {'t': diff > 5,  's': 'switch.living_room_dyson'},
                  {'t': diff > 10, 's': 'switch.lounge_heater'}]
                | selectattr('t', 'eq', true) | map(attribute='s') | list }}
        turn_off:
          service: switch.turn_off
          target:
            entity_id: >
              {{ expand('switch.dining_heater', switch.living_room_dyson', switch.lounge_heater')
                | selectattr('state', 'eq', 'on') | map(attribute='entity_id') | list }}

Configure your Generic Thermostat to use switch.heaters.

    heater: switch.heaters