đŸ”„ Advanced Heating Control

Yes, I hope to solve this that week.

Thanks I will look into this tomorrow. From what I see that it looks fine. Could you check if you find a log entry of the error and a log entry of this blueprint next to it? Thank you for your help!

Awesome really appreciate it look forward to folding this into my setup. This will be my first blueprint to implement.

2024-01-02 21:07:00.239 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] Calibration:   
  offset_old: 1.3   
  offset_new: 1   
  step: 0.1  
  diff: 0.30000000000000004  
  delta: 0.5 full_rounding: "True"
2024-01-02 21:07:55.146 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_bad_og_local_temperature_calibration: -409364069.6 (range -5.0 - 5.0)
2024-01-02 21:07:55.813 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_bad_og_local_temperature_calibration: -409364069.6 (range -5.0 - 5.0)

And Here many more Errors:

2024-01-02 20:55:22.459 ERROR (MainThread) [homeassistant.components.automation.ahc_wohnzimmer] AHC Wohnzimmer: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.459 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] AHC BadUG: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.459 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] AHC Malea: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.459 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] AHC Lennox: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.460 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] AHC BadOG: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.460 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] AHC BĂŒro: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.460 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] AHC HWR v4 alpha10: Choose at step 4: default: If at step 1: If at step 1: Repeat at step 2: Error executing script. Error rendering template for variables at pos 3: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.460 ERROR (MainThread) [homeassistant.components.automation.ahc_kuche] AHC KĂŒche: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.460 ERROR (MainThread) [homeassistant.components.automation.ahc_schlafzimmer] AHC Schlafzimmer: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_flurug] AHC FlurUG: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_wohnzimmer] AHC Wohnzimmer: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] AHC BadUG: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] AHC Malea: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] AHC Lennox: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] AHC BadOG: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] AHC BĂŒro: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] AHC HWR v4 alpha10: Choose at step 4: default: If at step 1: If at step 1: Error executing script. Error rendering template for repeat at pos 2: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_kuche] AHC KĂŒche: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.461 ERROR (MainThread) [homeassistant.components.automation.ahc_schlafzimmer] AHC Schlafzimmer: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_flurug] AHC FlurUG: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_wohnzimmer] AHC Wohnzimmer: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] AHC BadUG: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] AHC Malea: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] AHC Lennox: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] AHC BadOG: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] AHC BĂŒro: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] AHC HWR v4 alpha10: Choose at step 4: default: If at step 1: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.462 ERROR (MainThread) [homeassistant.components.automation.ahc_kuche] AHC KĂŒche: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.463 ERROR (MainThread) [homeassistant.components.automation.ahc_schlafzimmer] AHC Schlafzimmer: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.464 ERROR (MainThread) [homeassistant.components.automation.ahc_flurug] AHC FlurUG: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.465 ERROR (MainThread) [homeassistant.components.automation.ahc_kuche] Error while executing automation automation.ahc_kuche: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.467 ERROR (MainThread) [homeassistant.components.automation.ahc_wohnzimmer] AHC Wohnzimmer: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.468 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] AHC BadUG: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.468 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] AHC Malea: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.468 ERROR (MainThread) [homeassistant.components.automation.ahc_flurug] Error while executing automation automation.ahc_flurug: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.471 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] AHC Lennox: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.471 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] AHC BadOG: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.471 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] AHC BĂŒro: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.472 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] AHC HWR v4 alpha10: Choose at step 4: default: Error executing script. Error rendering template for if at pos 1: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.472 ERROR (MainThread) [homeassistant.components.automation.ahc_wohnzimmer] Error while executing automation automation.ahc_wohnzimmer: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.472 ERROR (MainThread) [homeassistant.components.automation.ahc_schlafzimmer] AHC Schlafzimmer: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.474 ERROR (MainThread) [homeassistant.components.automation.ahc_schlafzimmer] Error while executing automation automation.ahc_schlafzimmer: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.474 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] AHC BadUG: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.474 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] AHC Malea: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.476 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] AHC Lennox: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.476 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] AHC BadOG: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.477 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] AHC BĂŒro: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.477 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] AHC HWR v4 alpha10: Error executing script. Error rendering template for choose at pos 4: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.477 ERROR (MainThread) [homeassistant.components.automation.ahc_badug] Error while executing automation automation.ahc_badug: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.477 ERROR (MainThread) [homeassistant.components.automation.ahc_malea] Error while executing automation automation.ahc_malea: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.480 ERROR (MainThread) [homeassistant.components.automation.ahc_lennox] Error while executing automation automation.ahc_lennox: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.480 ERROR (MainThread) [homeassistant.components.automation.ahc_badog] Error while executing automation automation.ahc_badog: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.480 ERROR (MainThread) [homeassistant.components.automation.ahc_buro] Error while executing automation automation.ahc_buro: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:22.480 ERROR (MainThread) [homeassistant.components.automation.ahc_hwr_v4_alpha10] Error while executing automation automation.ahc_hwr_v4_alpha10: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
2024-01-02 20:55:26.646 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_lennox_local_temperature_calibration: -417752678.0 (range -5.0 - 5.0)
2024-01-02 20:55:26.675 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_bad_og_local_temperature_calibration: -409364069.6 (range -5.0 - 5.0)
2024-01-02 20:55:26.711 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_bad_ug_local_temperature_calibration: -348966092.6 (range -5.0 - 5.0)

Full Log:

1 Like

Could you also upload a trace log of your automation when it failed? It looks like you faced two issues: when setting offset and when setting temperature which is kinda weird.

Could you try latest v4? I add another value check for the new offset. Maybe this fix one issue.

//EDIT:

I studied you log again. Here is a part of it:

2024-01-02 20:58:00.487 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] Calibration:   
  offset_old: 0.0   
  offset_new: 0   
  step: 0.1  
  diff: 0.0  
  delta: 0.5 full_rounding: "True"
2024-01-02 20:58:00.501 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] >>>  
  - active_scheduler: None  
  - mode: off  
  - temperature: 17.0  
  - set_comfort: True  
  - is_frost_protection: False  
  - is_person_based: False  
  - is_anybody_home: False  
  - is_presence_sensor_defined: True  
  - is_presence_scheduler_defined False  
  - state_presence_sensor: True  
  - state_presence_scheduler: False  
  - is_presence_on: True  
  - is_scheduled_heating: False  
  - state_scheduler: False  
  - is_scheduled_heating_on: False  
  - valves_off_mode: ['climate.thermostat_buero']  
  - valves_without_off_mode: []  
  - valves_tado: []  
  - input_frost_protection_duration: {'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0}
2024-01-02 20:59:02.832 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] >>>  
  - active_scheduler: None  
  - mode: heat  
  - temperature: 18.0  
  - set_comfort: True  
  - is_frost_protection: False  
  - is_person_based: False  
  - is_anybody_home: False  
  - is_presence_sensor_defined: True  
  - is_presence_scheduler_defined False  
  - state_presence_sensor: True  
  - state_presence_scheduler: False  
  - is_presence_on: True  
  - is_scheduled_heating: False  
  - state_scheduler: False  
  - is_scheduled_heating_on: False  
  - valves_off_mode: ['climate.thermostat_kueche']  
  - valves_without_off_mode: []  
  - valves_tado: []  
  - input_frost_protection_duration: {'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0}
2024-01-02 20:59:02.835 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] - generic calibration enabled: False  
  - current_valve_temp: 19.9  
  - sensor_temp: 19.83  
  - step: 0.5  
  - min_temp_r: 5.0  
  - max_temp_r: 30.0  
  - new_temperature: 18.0  
  - temp_without_offset: 18.0
2024-01-02 20:59:12.073 ERROR (MainThread) [homeassistant.components.mqtt.number] Invalid value for number.thermostat_lennox_local_temperature_calibration: -417752678.0 (range -5.0 - 5.0)
2024-01-02 20:59:17.081 DEBUG (MainThread) [blueprints.panhans.heatingcontrol] >>>  
  - active_scheduler: None  
  - mode: heat  
  - temperature: 17.0  
  - set_comfort: True  
  - is_frost_protection: False  
  - is_person_based: False  
  - is_anybody_home: False  
  - is_presence_sensor_defined: True  
  - is_presence_scheduler_defined False  
  - state_presence_sensor: True  
  - state_presence_scheduler: False  
  - is_presence_on: True  
  - is_scheduled_heating: False  
  - state_scheduler: False  
  - is_scheduled_heating_on: False  
  - valves_off_mode: ['climate.thermostat_lennox']  
  - valves_without_off_mode: []  
  - valves_tado: []  
  - input_frost_protection_duration: {'days': 0, 'hours': 0, 'minutes': 0, 'seconds': 0}

Let’s summarize this:

  • 2024-01-02 20:58:00 → Offset Calibration (value = 0)
  • 2024-01-02 20:58:00 → default call (temp 17)
  • 2024-01-02 20:59:02 → default call (temp 18)
  • 2024-01-02 20:59:12 → mqtt error - calibration entity
  • 2024-01-02 20:59:17 → default call (temp 17)

Another part:

  • 21:00:35 → temp set
  • 21:00:39 → calibration entity value error

One more:

  • 21:07:00 → calibration gets called
  • 21:07:55 → calibration entity value error

Two things: Firstly, you can see in the log that there are several calls that are not followed by an error and the error occurs after a default temperature set and/or calibration call. But when calling the default service for setting temperature, calibration is never touched.
Secondly, the MQTT error occurs randomly, i.e. not at a specific interval. That irritates me a little. So a trace log after the error has occurred would be an advantage.

//EDIT2:

Could you disable your climate automations and set the calibration value manually in dev tools and check if an error gets logged?

service: number.set_value
target:
  entity_id:
    - number.YOUR_OFFSET_CALIBRATION_ENTITY
data:
  value: "1"

No, your zone controller is your wireless bridge, effectively, it’s what turns your boiler on and off when heat is required.

In the Tado app, you can assign either an individual SRV or a group of SRVs (ie a room) to a zone controller so they can call for heat. If you have an individual SRV assigned to a zone controller and you find that it is constantly calling for heat (eg it’s in a cold room that you’re not often in), you can remove it from the zone controller so the valve will still open, but it’ll only get heat when other SRVs call for heat.



It’s the selection of a zone controller that can only be done through the Tado app, as far as I’m aware. So if an SRV or room is not assigned to a zone controller, it doesn’t matter what you do in Home Assistant, that SRV or room can never call for heat.

Hello @panhans
I have raised the automations of the HWR room to the Blueprint v4 alpha 12.

So far I can’t find any errors in the log.

I changed the number.xxxxx entity several times in the developer tools and made sure that this change was also saved in the Home Assistant. No errors in the log here either!

That seemed strange to me too. Then I noticed that in the last few hours, according to the log, the errors only occurred in 3 out of 10 rooms (Bad Og Bad Ug and Lennox)

I then looked at the values ​​in the Zigbee2mqtt. Only in the rooms is the Local temperature calibration value in the nonsensical range of e.g. -412345.3

Now I set the values ​​directly here to 0 and let the climate automatic run again. The result surprises me very much, because the calibration now seems to work, it is now at -1 in the Homeassistant and in the Zigbee2mqtt
I have run the automatic system several times and so far no errors in the log. I don’t know why, but it seems as if the errors in the log only occurred because there was an absurd value in the Zigbee2Mqtt. I can’t understand how he got there. I’m now waiting for errors in the log and if any still appear, I’ll send you a trace log.

// Edit:
All Climate Automations updated to v4 alpha12

1 Like

Thanks for your feedback. I also can’t imagine how this blueprint can set such values. Every calculated value will be checked if it’s in range of the entity in this case -5 till 5. If it’s higher or lower the max or min will be set. Maybe there was a firmware update or z2m update which sets such default values and without changing them manually it hangs in a loop. :person_shrugging:

OK. Thank you so much for your work!

1 Like

Please forgive my ignorance; I’ve searched throughout this topic and cannot find an answer. I work shifts and wake up at different times each day. For this reason, a scheduler doesn’t work so well for me in the morning. I was thinking of using my phone’s charging status to boost the heating when I unplug it in the morning. Is this possible? Can you think of a way to do this in conjunction with your blueprint?

1 Like

Hi, nothing to forgive!

Do you use some presence detection now with this blueprint? If you use companion app this should be no problem. But I don’t know if the charging sensor returns true if phone is fully charged and plugged in. That’s something needs to be evaluated.

If it’s like this you have to revert the state of your phone charging sensor and setup some things:

  1. Navigate to helper section of home assistant
  2. create a new helper → template sensor → template for binary sensor
  3. revert the state of charging sensor

  1. setup a scheduler for presence with the raw time window that includes all your shifts
  2. setup blueprint :
    a. with you as person
    b. template sensor as presence sensor
    c. scheduler as presence scheduler

Just check your options for the afternoon and evening. Maybe you will go with scheduled heating here? Otherwise the template sensor must be extended.

hiya - i’ve been using AHC for a few days now trying to solve a problem with my thermostat. although i’m sure its possible i can’t quite see how.

my thermostat over estimates the temperature by 2C, its also in the warmest room of the house. so i tried to create a proxy thermostat using a temperature sensor in a colder room combine with a input boolean to make a generic thermostat. i then added that as a trv along with my actual thermostat thinking the actual thermostat would be set to heat until the colder room reaches the comfort temp. logically, on reflection, that doesnt work as the actual thermostat is already at the comfort temp and therefore not heating, while the generic thermos have been set to heat with a target temp but no actual heater to get them there.

how can i achieve what i am trying to do? schedule and presence detection working well :+1:

I think the current text-based “Comfort Heating Plan” is good - but it should be reevaluated almost constantly (or whenever the automation is reloaded or reactivated), not just at the listed trigger times.

If it did this, i can just create two instances of the automation for each thermostat, one for “working days” and one for “days off”, and select between them through an “automation toggle”. On that note - is it possible to make it so that the “automation toggle” doesnt set the thermostat to “off” when the automation itself turns off? Sometimes the “off” happens after the other automation has just activated and we end up in a “race condition”.

One other suggestion - an “eco mode” - a toggle is activated or something), reduce the set points by x degrees. Often in summer, I need the heating in the morning but I don’t want it so high that the house overheats. I would create an automation to switch on when the external temperature exceeds some threshold, and turn off after it’s dropped below threshold for a little while.

oh my god, I totally put my post in the wrong forum. How penny. Please forget everything I wrote :slight_smile:

For now I sink into the ground and wait until my red ears stop glowing


Suggestion for special windows.
In Europe and especially in Germany, so-called “tilt-turn” windows are used. They have a “tilt” ventilation position and an open “turn” position like a door.
The difference would then have to be determined with 2 sensors.
Furthermore, a multi function would certainly be useful for more than one roller shutter.

Thanks for your feedback. The easiest way is to use the calibration feature. If you’re lucky your valve supports native calibration if not - no problem - you can use generic calibration.
In both cases you need an additional temperature sensor somewhere in your room. If you use generic calibration the difference will be added to the target temperature so your valves will never show the “real” target temperature.

Yes, it gets some more love after proximity is implemented. I plan to add here some more tweaks / modifiers.

If you work like this I would suggest to turn off the whole automation (Service: automation.turn_off) and not by using winter mode. But I think with a revised heating plan you got more options to set everything up more granular. Something like this will be possible:

- time: 17:00 #only if workday scheduler is active
  temp: 20
  scheduler: work #filter by scheduler
  calibration: off # turn calibration off
- time: 17:00
  temp: 22
  scheduler: holiday

In current test version you can setup an external outdoor sensor or a weather entity and also a temperature threshold for enabling/disabling heating. I think with the (coming) extended comfort heating plan feature you can easily set another comfort temperature depending on the (summer) scheduler but I also plan the possibility to select not just only time but also a date range.
Manipulating the comfort temperature by another automation is also a robust solution.

Moin, a german developer here. :smiley:
I wonder what difference it should make for the automation if a window is tilted or open.
On the other hand, it would be difficult to combine the sensors for open and tilted, as multiple selection is permitted here. The better option would be to realize a third state tilted via a template sensor.

Now I wonder if you post in the correct thread. :smiley:

1 Like

I tried that and it seems to still turn the valve “off” when you disable the automation - but perhaps that was just my sloppy coding :slight_smile:

I was wondering whether the solution is simpler - a new entity type called “value scheduler” which is basically a week grid where you set specific number/value (text etc.) for a given day and time and then you can simply reference that external entity for the temperature and schedule combined?

Thank you for your comprehensive response! I truly appreciate the effort you’ve invested in crafting this blueprint and supporting the community. I haven’t experimented with the presence sensor yet, but I’ll certainly give it a go. Many thanks! :pray:

1 Like

I always hoping for such a solution. Entities are prescribed by the system. So a scheduler which can persist some values would be nice but not possible with the default tools of home assistant.
Another approach is to use calendars for this as mentioned int the initial post. I will also check the new todo list features in the next release. Maybe there is a comfortable way to use this instead of this object text field.

//EDIT: since the blueprint got complex it might be a good idea to look at custom integrations?!

1 Like

@panhans make it sence to integrate a “away mode” (to the existing minimal and comfort) in a scheduler time? for example im on gym and dont like to falling down the temp?

i also started looking in to it - i think it would be a custom helper, but after about 30 minutes of reading the docs i realised what a rabbit hole this could turn in to