šŸ”„ Advanced Heating Control

Hello. I recently started using the excellent Blueprint. My situation is as follows. The air conditioning system is my primary heating source, and I use infrared ceiling heating as a secondary heating system. The air conditioning is efficient and the infrared heating provides comfort.

How can I control the air conditioning so that it is the main heating system (up to approx. 1° below the target temperature) and the infrared only comes on at the end to take over the rest? If the delta is greater again, the air conditioning should switch back on.

Does this type of control work with this Blueprint?

Many thanks in advance.

short question:
isi t neccessary to enable the ā€œLegacy Restoreā€ when using the external temperature sensor with the sonoffs? Since some days i had some probs with one of my automation with 2 sonoffs in it and a template sensor (as the mean of 2 temperature sensor) for the temperatur. The problem, started with updateing from 5.5.6 to 5.5.7, that the external sensor wasn’t set correctly to the sonoffs!
Deleting the trvs, setting them back to factory defaults, restarting HA didn’t work! Now i activated the ā€œLegacy Restoreā€ and the external temperature was set immediately! IT only this automation, all other automations with a normal temperature sensor and only one sonoff trv working without any problems (without the ā€œlegacy Restoreā€)!

Hi I just started using this blueprint and everything was going well until one of them didn’t trigger this morning. There was no clear suspect as to what the issue was but I tried removing parts and adding them back to see if I could get it to run.

It seems it was the prox sensor that was causing it to not run. I set it to warning and got the trace file. After removing the prox sensor it started working. This is strange as it was working yesterday and the prox sensor is showing that I am home. Can anyone shed any light on this or give some suggestions as to why this has caused this problem.

Trace File

I think the same is happening, when you use adjustments of your schedule. It will then change the respective temparture when Physical Sync is on. (At least my bath has now a super high temp, which should only been used for a pre-heat)

I actually bought one Sonoff TRVZB and was very amazed by the reasonable pricing and the build quality. However I think I am missing functionality. I’ve asked in another topic to not hijack this thread:

I’ve attached screenshots and a 1:1 comparison. I thought this may be interesting to other home automators.

If anyone has an opinion on what is a good TRV please answer in my post and thank you :slight_smile:

@panhans Whats this warning for? Whats select: None? Do i miss something?

AHC - Calibration - šŸ”„ Advanced Heating Control V5 calibration data set: {'climate.trv': [{'calibration_entity': 'number.trv_external_temperatur', 'value': 17.2, 'select': None, 'value_old': 17.3}]}

Hi. I’m really impressed with this automation. I’ve been using it for a number of years now (I think) and it’s been a godsend and allowed me to get away from Tado Auto Assist.

There was one thing this automation doesn’t do that I needed; I found a hacky workaround for this but I wonder if there’s a better way.

Simply, I want manual controls to take precedent over the automation but only for a fixed amount of time, until the target temp is achieved or the next schedule change (defined as an input_number controlled by Scheduler).

My workaround was a basic automation that watches for target temperature changes; if a change was detected, it’d look at when the input_number last changed and when AHC last ran. If either of those changed within, say, a minute it wouldn’t do anything. However, if neither of those changed/ran, it’d disable AHC for an hour, until the target was met or until the input_number changed, at which point it’d AHC back on and Run it.

I can see that the UI/Physical Temperature Change / Sync seems to do something similar, in that changing the temperature sticks, but I’d like to know how long it sticks for because when I manually ā€˜Run’ the automation it’ll revert back to the Fallback temperature.

If it sticks permanently, then please consider this a feature request:
Could you implement the logic I used on my own automation to prevent AHC from making any changes until either the Comfort/Eco temperature changes, the room reaches the target temperature or a user-specified amount of time passes?

If there’s a way I can add this myself in the Custom Settings section then that could work too. If not, I’ll go back to the way I had it set up before - it’s not a big deal.

Thanks again for such a helpful automation!

1 Like

Some of my BT TRVs are fairly often unavailable,sometimes not recovering from this condition.
I want to know the value AHC want to set, even if the TRV is unavailable, so i can consider this target temp for switching on/off my boiler.

Currently i want to change a number helper if one room is set to eco or comfort temp. There i need do know what temperature AHC want to set too. Are there no variables for this?

This sounds very unique to me. I would setup AHC for the AC and also set up the AHC Template sensor. based on this you can create a custom automation, that toggles your infrared heating.

No, this belongs to restore the temperatures of the thermostats after closing the window. The common way a scene of the thermostats will created. After closing the window the scene will be recovered. The legacy way doesn’t use the scene creation but only toggles the whole logic to reset the temperatures regarding the schedules ect. This has no impact to the external temperature or calibration logic.

Could you trigger the automation manually when the problem occurs. This trace log would be helpful.

I will revise this. The problem is regarding the home assistant docs a physical change happens if there is no context and user id set, but this is also the case on the most template triggers. I can’t be fixed in an automation. Only this workaround could help.

I think this is a normal debug log. Did you check your log level? Just set it to debug and not to warning.

In a basic configuration you can set the temperatue manually as long the schedule changes its state or the adjustments or something else kicks in.
Solving your issue is maybe adding a custom condition that allows calibration, windows opening/closing features ect. but blocking any changes from schedules and other entites.

If you setup a AHC template sensor you can read the latest target here.

- action: climate.set_temperature
  data:
    entity_id: climate.YOUR_THERMOSTAT
    temperature: "{{ state_attr('binary_sensor.YOUR_AHC_TEMPLATE_SENSOR','target_temperature') | float }}"
1 Like

thank you very much, this is really helpful.

Thank you very much for this blueprint, which I truly appreciate and have been using for over a year. The 5.4 update, especially the synchronization of external thermostats, made it even better and more complete by eliminating the need for additional synchronization automations and significantly simplifying the setup.

With version 5.5, however, a new trigger was introduced without an option to disable it:
thermostats with external calibration get keep alives every 10 minutes automatically.

I would be interested in understanding the reasoning behind this change. From my perspective, the mandatory nature of this trigger feels inefficient, as I was previously able to manage this more precisely and efficiently through the thermostat configuration itself. For this reason, I have reverted to version 5.4 for now.

I would really appreciate it if the keep-alive trigger could be made optional in future versions.

Best regards

As far as I know nearly every thermostat that consumes the real temperature instead of an offset resets its data until there won’t happen an update for 20-30 min. This keep alive update gets only triggered if the thermostats are calibrated this way. If offset calibration is chosen this isn’t the case.
Let me know the type of your thermostat and the calibration method you’d choose or it supports.

Hi, sorry for my late response… but to use external_temperature_input is correct?

With disabling window detection you mean the setting directly in the Z2M for a thermostat and not in the blueprint?

Just had a very odd thing happen. I was on v5.5.5, but have now updated to the latest .7, so this may have been fixed.

I edited a completely unrelated automation to do with my media players. When I saved that, it triggered the automation.reload, which then caused most of my 15 AHC scripts to run, and set the temperature to 25 degrees. I have no idea why. The Eco and Comfort temperatures were not changed, they’re all still the usual value. I do have a ā€œset all rads to maxā€ entity, but that wasn’t changed. Any idea what caused 10 of the 15 scripts to change my temps to max, but not all of them?

This has happened before, and I was at a loss to what actually caused it that time as well. I have looked through the config entries, and can’t see anything that would explain it, and apart from different temperature entities, all 15 are the exact same config so that doesn’t explain why only 10 did it. I have tried since and can’t get them to replicate this either.

Any suggestions? other than don’t reload the automations? :joy:

Oh, and I looked at traces, but by the time I noticed the change, it had disappeared from there as it only has the most recent 5 runs. I’ve increased that to 20 now, so next time I’ll try to catch it earlier

after i updated AHC to V 5.5.7, my TRV’s didn’t get closed when the window was opened.

mqtt commands after window is opened:

.
.
nothing

when the window gets closed:

zigbee2mqtt/TRV0008/set/system_mode heat
zigbee2mqtt/TRV0008/set/current_heating_setpoint 21.0
zigbee2mqtt/TRV0008/set/preset manual
zigbee2mqtt/TRV0008 {"battery":42,"boost_heating":"OFF","boost_heating_countdown":0,"boost_heating_countdown_time_set":300,"child_lock":"UNLOCK","current_heating_setpoint":21,"eco_mode":null,"eco_temperature":25,"last_seen":"2026-02-03T13:28:50+01:00","linkquality":80,"local_temperature":21,"local_temperature_calibration":-2,"max_temperature":32,"min_temperature":0,"position":0,"preset":"manual","programming_mode":"07:00/18°C  16:00/21°C  19:30/22°C  23:30/17°C  09:00/20°C  16:00/21°C  19:30/22°C  23:30/17°C  07:00/18°C  16:00/21°C  19:30/22°C  23:30/18°C","running_state":"idle","system_mode":"heat","valve_state":"CLOSED","window":"CLOSED","window_detection":"OFF"}

trace can be provided but it’s to big to post it here. :frowning:

Thanks for this awesome update. In the last time we have the problem more and more, that we may want to control the heating manually (overwrite the temperature for 1-2h). It would be convenient to use the UI/therefore voice assistant or the thermostat on the radiator directly. But whenever a change is made a few minutes later AHC kicks in and resets the temperature to (most likely) eco. AHC runs quite frequently as we use presence detection (do not heat unoccupied rooms), someone at home detection (do not heat during vacation etc), and heating schedules.

Is there a way to tell AHC I changed the temperature, do not touch it for at least X hours. (I tried various hacks with party mode and scripts and timers but they are not convenient to use and the wife approval factor is quite low.)

best regards

1 Like

short question:
Is it possible to enter a ā€œnumber_inputā€ for setting the eco/comfort temp in the ā€œHeating Schedule Adjustmentsā€, or maybe something like an Offset to the normal eco/comfort-value?

Yes, correct for both

1 Like

I did as you said and unfortunately I still get a looooot of these error messages:

[6.2.2026, 11:54:58] z2m: Publish 'set' 'sensor' to 'Thermostat_Bad' failed: 'Error: ZCL command 0x54ef441000b67910/1 manuSpecificLumi.write({"65522":{"value":[170,113,49,68,18,94,2,65,46,105,133,199,88,61,4,84,239,68,16,0,182,121,16,0,21,141,0,1,157,27,152,0,1,0,85,19,10,2,0,0,100,4,206,194,182,200,0,0,0,0,0,1,61,100,101],"type":65}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4447,"writeUndiv":false}) failed (Delivery failed for '51549'.)'
[6.2.2026, 11:54:58] z2m: Publish 'set' 'external_temperature_input' to 'Thermostat_Bad' failed: 'Error: ZCL command 0x54ef441000b67910/1 manuSpecificLumi.write({"65522":{"value":[170,113,19,68,18,124,5,65,16,0,21,141,0,1,157,27,152,0,1,0,85,68,250,0,0],"type":65}}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"manufacturerCode":4447,"writeUndiv":false}) failed (Delivery failed for '51549'.)'

Any idea whst is wrong? Happens to all my thermostats

I currently need to reconfigure my Home Assistant from scratch, because updates were broken. I was on version 4.x of the blueprint before and with the latest version the temperature calibration is not working anymore. The calibration number entitiy is called thermostat_badezimmer_lokaler_temperatur_offset, but neither ā€œoffsetā€ nor ā€œcalibrationā€ work as keyword. This used to work out of the box before.