Do you have a regular thermostat, or separate thermostat valves on each radiator in your home? Then this guide is for you.
In this tutorial, Iโll show you how to automatically control your heatingโeither through a thermostat or individual radiator valvesโusing Home Assistant, a fully local, privacy-focused smart home platform. With this setup, your heating follows a custom schedule that adapts to whether someone is home or away. No subscriptions, no cloud dependency, no vendor lock-in.
โญโญโญ NOTE: โญโญโญ
This article is the script for a YouTube video. I wrote it before recording the video. You can help me continue doing this by checking out the video, commenting on it, giving it a thumbs up, andย subscribing to my YouTube channel. This will ensure that the video is offered more frequently to new visitors, allowing them to stay informed about the latest Home Assistant tutorials and smart home-related product reviews.
I appreciate your support!
Ed
Recently, we saw how fragile cloud-based heating systems can be. For example, Tado briefly put individual radiator valve control behind a paywall. They eventually reversed that decision after user pushback, but it highlighted an important point: you donโt want to rely on a cloud service to heat your home.
Thatโs why I moved my entire heating automation to Home Assistant โ and in this article, Iโll show you exactly how I did it.
Step 1: Create the Necessary Helpers
Letโs begin in Home Assistant by setting up a few helpers. Go to Settings โ Devices & Services โ Helpers.
I filtered my helpers by the label climate, which makes things easier to manage.
Youโll need the following:
1. The โAwayโ Temperature Helper
This is a simple Number helper.
I set mine to 16ยฐC โ the temperature that all valves should use when nobody is home.
2. Your Climate Schedule Helpers
I created three separate schedule helpers:
- Main Climate Schedule โ the general heating schedule used for most rooms
- Bathroom Climate Schedule โ a specific schedule for the bathroom
- Low Climate Schedule โ a manual fallback schedule, basically set to a constant temperature of 15ยฐC
Each Schedule Helper allows you to define time blocks and assign variables to them.
For example:
- On Sunday, from 00:00 to 08:00, my
tempvariable is set to 15ยฐC - From 08:00 to 00:00,
tempbecomes 19ยฐC
During weekdays, I use something like:
- 08:00โ18:00 โ 18ยฐC
- 18:00โ00:00 โ 19ยฐC
In the bathroom schedule, I use higher temperatures briefly in the morning and evening, and lower temperatures during the day and at night.
These helpers let you create room-specific heating patterns.
Step 2: Build the Heating Automations
Next, head over to Settings โ Automations & Scenes. I filtered these by the โclimateโ label as well.
Letโs walk through the most important automations.
Automation: Set Main Climate Temperature
This automation performs three key tasks:
Trigger
- It activates whenever the Main Climate Schedule changes state or attributes.
- It checks if someone is at home by monitoring the value of
zone.home.
If the number is above zero โ someone is home.
Action
It updates all radiator valves that should follow the main schedule.
Examples include:
- Living room radiator valves
- Convector heaters (left/right)
- Window radiators
- Scullery
- Toilet
โฆand more.
Each valve gets a temperature value based on the current temp variable inside the schedule helper.
So if itโs 4 a.m., it will set the valves to 15ยฐC.
If itโs 2 p.m., it will set them to 18ยฐC.
Automation: Bathroom Climate Temperature
This works exactly the same way, but it targets only the bathroom radiator valve and pulls the value from the Bathroom Climate Schedule.
Step 3: Switch Between โHomeโ and โAwayโ Modes
We also need an automation that reacts when everyone leavesโor returns home.
I created an automation called โSwitch Climate on Presenceโ.
Triggers
It has two trigger IDs:
- home โ triggered when the number of people in
zone.homegoes above 0 - away โ triggered when the value becomes 0
Actions
If someone comes home:
- All radiator valves switch back to their corresponding schedule temperature.
If everyone leaves:
All valves switch to the Away Temperature.
In YAML, the logic looks like this:
- Target: all entity IDs
- Set temperature to the
input_number.climate_temperature_away(which is 16ยฐC in my case)
Why 16ยฐC?
Because this automation also includes my air conditioners, and their minimum temperature is 16ยฐC.
Your Heating Is Now Fully Automated โ Locally
With these helpers and automations in place, your entire heating system runs automatically through Home Assistant:
- Completely offline
- Fully customizable
- No subscriptions
- No cloud dependency
- Works with thermostats or radiator valves
Support the Channel
If you enjoy this kind of tutorial and want to support my work:
- Join my Patreon
- Make a donation through Ko-fi
- Or become a paid channel member
Your support helps me continue making tutorials like this.
Donโt forget to leave a comment, subscribe, and give the video a thumbs-up โ I really appreciate it.
See you in the next tutorial!
#HomeAssistant #HomeAssistantTutorial #SmartHeating #HeatingAutomation #ThermostatAutomation #RadiatorValves #SmartHome #SmartHomeAutomation #LocalControl #NoCloudNeeded #TadoAlternative #HomeAssistantClimate #HomeAssistantSchedules #PresenceDetection #EnergySaving #HomeAutomation #DIYSmartHome #SmartHomeGuide #ClimateControl #RadiatorAutomation
