Use cases for heating automation

Winter is coming (at least for people living in the northern hemisphere) and therefore I wanted to start a topic to collect all different kind of use cases around the topic of heating.

Even some use cases are obvious, they are maybe not obvious for everyone, therefore please feel free to add anything you have in mind.

Window open/closed automation
If a window is opened, the radiator will turned off.
If the window is closed again, the radiator will be turned on again and the setpoint is set according to the schedule (see below).

For doors (e.g. balcony, terrace) I have added a delay / timer that the radiator will only turn off if the door is open for e.g. more than 30 seconds, to avoid rapid changes (maybe saves some battery of the thermostat😉) if you only open/close the door shortly.

At the bathroom, when the window is closed, I set the setpoint to a low temperature and not according to the schedule (I only open the window after I’m done with the shower, therefore after closing the window no heating is required anymore).

Time based automation / scheduling
Using the iCalendar binding to schedule the setpoint by time.

Alternatively you can e.g. use the timeline picker solution

I’m not using scheduled rules, as then anyone in my household would need to have access to the OH admin view and could change all things, items, pages, rules etc

Presence based automation
There are many ways to detect presence, I’m using the TR-064 binding in combination with AVM FritzBox, but there is also the Network binding as a generic fallback solution.

If someone is at home, than the heating is set as per the schedule (see above), if we are leaving home, the schedule is ignored & heating setpoint will be reduced (with a timer/delay of 30 min eg if you just leave for 5 minutes and visit your neighbors or similar)

If we are returning back to home, then the setpoints are recovered and set according the current schedule again.

Work from home switch
If you work from home on fixed days, you can use scheduling to heat your home office accordingly.
If you work from home irregular or always changing days, the dowelling is maybe helpful:

I am using a switch that I can turn on, if I’m working from home the next day.

Every morning, if the WFH - switch is ON, I will heat my office room and automatically turn off the switch again. By this I can flexible decide if the office room should be heated at the next morning or not.
In addition I have a daily schedule that will turn off heating /reduce setpoint every day in the afternoon after work, so that I don’t need to manually turn off the heating again.

Please feel free to add anything else, maybe we get a collection of great ideas


I’ve a somewhat unique use case which is concerned with cooling more than heating.

First a little background. In my part of the U.S., the most common type of heating and AC is central air. That means there is one heater, one AC, one thermostat, and a big fan that distributes the heated/cooled air throughout the house. In my particular case, I’m in a three level house (two stories with a finished basement.

When we moved into the house, there was no AC, just the heater.

The unique use case takes advantage of the fact that the basement is usually at least 10 °F cooler than the main floor which in turn is at least 5° F cooler than the top floor. So I set up some rules that monitor the temps on all three floors. If the outside temp is greater than a setpoint, the main floor or top floor is above another setpoint, and the basement or main floor is at least 5 °F cooler than the main floor and top floors turn on the HVAC fan.

That brings that cool air from the basement up to the upper floors and cools those floors down significantly.

However, I no longer do this because we had an AC installed and when they installed it they took my HestiaPi thermostat :sob: (I wasn’t there and my wife didn’t know I wanted to keep it) and replaced it with a Honeywell something or other for which there isn’t a binding in OH to support.

But I’d like to resurrect this capability because even with the AC, those temperature differentials remain. It’s just now instead the top floor is reasonably comfortable and the basement is down right cold. I think it would save a lot of energy if I could only turn on the AC when just running the fan is not working.

Of course, we can get a whole house fan that pulls the air from the basement through the house and solve the problem the same way, which is probably what I’ll end up doing given time constraints.

1 Like


This is a good level of restraint, in my opinion. A lot of people try to account for a wide variety of scenarios, but humans are extremely unpredictable. It’s better to allow for that flexibility and automate only the behaviours that are highly reliable.

I am not reliable enough for presence detection, so I instead use Google Assistant voice commands. While this may seem less automated, I prefer to see it as me being part of the automation (with 100% accuracy). I also like that I get an immediate confirmation that openHAB has turned everything off, rather than wondering if it worked properly after I’ve left.

I need to get window/door sensors, but I’ve been waiting on Matter to launch. I don’t want to get into Zigbee at this point, and Z-Wave sensors are too expensive.

For anyone debating the benefit of window/door sensors, there’s huge value to being able to quickly confirm that your windows/doors are all fully closed, so that you’re not wasting energy trying to heat/cool the entire world. It’s like trying to fill a water bucket that leaks through the bottom.

Once I can get some inexpensive Matter sensors, I’ll put them on every window/door I have.

I have intrusion alarm system with sensors on all doors and windows and several air-conditioners integrated in OpenHAB and I have some similar logic when door/window is opened.
Additionally, I change the setpoints based on the alarm arm status.
When we go to sleep the alarm is stay armed and we arm the alarm away when we are out of home. If the alarm is disarmed, then someone is at home, so that cancels the need for some kind of network based presence detection (although I use presence detection for some other stuff). Each alarm state triggers different “Home mode” and adjusts the setpoints accordingly. I have also Holiday mode that can be activated via UI with its own setpoints.
I am very satisfied with the results.

1 Like

I have zoned my heating into 3 areas, 2 of which are ground floor then 1st floor.
Additionally in the converted loft velux window opens based on temp up there.
Zone activated by BT presence or manually
Temp setpoint adjusted according to presence with heating activation dependent on lowest temp of active zones.
Use radiator valves to control temp in zones.

In addition to some of the mentioned rules I implemented some other rules that would need to undergo some testing since they didn’t really came into play yet:

Don’t heat when the outside temperature is above the setpoint
Don’t heat when the outside temperature is at least two degrees above room temperature (even when this is below the setpoint)
Don’t heat when the 3 hour forecast predicts a higher outside temperature than the setpoint.

To be honest I am somewhat sceptical if there are really a lot of occasions when one of these rules will take effect. I will see soon as it is now getting colder.

I also thought about a rule to stop heating when the sun is shining into the room. I have built myself a sun sensor to detect sunshine based on temperature difference that I only use to automatically close blinds. However this could also be used for this use case but would require to take sun azimuth and elevation into account as well. I didn’t have the motivation yet to figure out whether this would work.

1 Like

I’ve implemented basically everything you described. With these additions:

  1. I can switch between automatic mode when all the rules apply and a “manual” mode where all the automatics are switched off.
  2. One exception is the bathroom: Even in “manual” mode there is a rule in place that checks the room temperature in the morning against a threshold and enables heating for a certain time if necessary. This exception allows for a sooner switch to manual mode in spring and later switch to automatic mode in autumn.

I have a floor heating which needs quite some reaction time. Since the house is very well insulated I usually do not need “spontaneous” changes of the temperature. The automation below is thus created 25% because of usefullness and 75% because of my own pleasure. :smiley:

In cojunction with window sensors I do the following to avoid that the heating turns on while letting fresh air into the house:

  • Window gets opened
    ** Heating was on? Heating stays on. No need to switch it off because in autumn/winter the windows should not be longer opened than 5-10 minutes and the floor heating does not react that fast.
    ** Heating is off? The setpoint temperature is set to 16 °C to avoid the thermostate to switch on the heating while the windows are opened
    *** The windows gets closed: A 15 minute timer is now started. Once the timer is over, the set point temperature is set to the original user defined value.
    ** If at the evening the blinds of the window to be opened are closed, they get opened to let more fresh air circulate and get the humidity out. Once the window is closed the blinds go to the former position again. → This one has a very high WAF. :smiley:

Other use cases:

  • At night or when nobody is in the house for more than a day (this is a switch I click manually when I leave the house) I set all room temperatures to 18 °C
  • In case gas prices are not high :wink: Every morning/evening I set the room temperature of all bath rooms and the dining room to 24 °C to enjoy a warm floor when walking bare foot. Pure luxury, nothing I want to waste my money on currently, so this is switched off. → Although it has the highest WAF.

I have rules like this, but a little simpler. They worked fine in the winter, because the conditions are fairly predictable (meaning it’s almost always colder outside than inside). However, the spring/summer didn’t work as well, because of the wider temperature range.

An automation that I have setup that I don’t see mentioned yet is variable start heating: based on the temperature within the house (and some other factors such as presence), start heating earlier in the morning so that by the time you get out of bed the house is warm enough.

This is based on simple temp vs time data to work out rough degree/minute increase in temp when the heating is on. With this figure, openHAB checks every minute or so in the early morning, and if the amount of time between now and the wake up time is less than the amount of time it would take to heat the house up to temperature, then turn on the heating.

This works fine if the house is being lived in, and the temperature variations aren’t huge.

1 Like

Where I live there’s not much need for heating, but I do have reverse-cycle heat pump split systems in most rooms and a big solar PV array on the roof, and if I have spare PV generation (after Hot Water Tank and House Battery recharge) I turn some of the splits on for some free heating or cooling depending on the season (provided the doors and windows are closed).

The best thermal comfort automation is probably the cellular blinds opening or closing to absorb or reject solar heat.

The second best is probably the push notifications to prompt anyone who is home to open or close the doors/windows at appropriate times based on internal/external temperatures and time of day.

I have illumination sensors outside and can detect direct sunlight pretty good. In combination with azimut and elevation, I open the blinds and let the sun help to heat the room. If the temperature passes 2 degree above nominal temperature, I close the blinds again. Of course, this is only for the colder season :wink:

I live in a block of 4 houses and have achieved the lowest amount of gas used. I started with complex algos, including parameters as sun direction, light intensitivy, temperatur, time. We have floor-heating-system.

The best case was, to heat the UG, EG, OG for 1 hour between 6am and 7am and to heat EG,OG for another hour at 12pm.

Not only was this very transparent and cheap, I love the simplicity here as well :smiley:

Thanks for the post and some really good idea already:
@DrRSatzteil: I like your rules of inner/outer temp dependencies a lot

I personally have one more rule - since I live in Germany and have kids in school.

I import from into my setup and change the mode of the kids and living room thermostats normal/holiday based on this.

Additionally I have a rule for presense simulation that set all thermostats to a lower temperature.