Heating management blueprints (Edited)

EDIT: I remove source from this post, because it’s no more accurate. Please check the Github repo instead.

EDIT2: Changed Import links because of errors.

These blueprints are used to manage central heating system. It uses Climate valve, door/windows sensors and T° sensors.

Please don’t be too rude with me :slight_smile: , these are my first blueprints, and my first steps using HomeAssistant !

You can find more details on the Github repo, but here is some infos about how it works:

Principle

  1. Each room is autonomous, and have helpers for their properties
  2. Each room should have a climate valve, and a T° sensor
  3. A global blueprint is in charge of collecting rooms needs to decide to start heater/climate
  4. A global boolean (winter_mode) is in charge to determine if it’s … winter :slight_smile:

How it works

Based on triggers, each room will compute the T° setpoint, and if necessary activate a helper
saying it needs heating.

The rooms are also able to determine if they’re linked to inside, outside, both or none. Depending on link,
room climate valve can be set to off, or whole heating system can be stopped.

Room Link Action taken
Inside Nothing special (Valve reset to unlocked and started)
Outside Valve is closed and stopped
Both Flag setup for shutdown global heater (Valve reset to unlocked and started)
None Nothing special (Valve reset to unlocked and started)

Another automation will decide to start or stop the heating system if rooms need it or no.

On non-winter mode, all climate valves will be set to “off” and also “child lock” mode, to preserve battery.

How to setup

  1. First, you need to create global and room helpers. RO indicates automation don’t touch value, RW indicates value can be
    set by automations.

Room related helpers:

  • Comfort T° (RO) : Climate valve T° range values. This indicates the leaving T°
  • Eco T° (RO) : Climate valve T° range values. This indicates the economic T°
  • Setpoint T° (RW) : Climate valve T° range values. Automation can decide the value based on Planning
  • Manual T° (RW) : Boolean indicating that Setpoint is manually determined. Set when climate valve is manually modified
  • Heat (RW) : Boolean indicating that the room need heating
  • Debouncer (RW) : Boolean avoiding race conditions on starting/setup climate valve
  • Used (RO) : Boolean indicating the room (mostly bedrooms) are subject to automations. If not, T° is always set to Eco
  • Planning (RO) : Planification for switching between Confort (on) and Eco (off) T°
  • Linked (RW) : List (Inside, Outside, Both, None) indicating how room is connected to the house or the outside

Global helpers

  • Winter mode (RO) : Boolean indicating if we are in Winter (or heating season) or not
  • Room link timer (RW) : Timer used to avoid reacting too quick on a room link status change
  • Always Open (RO) : Binary sensor that can be used in room link decision
  • Always Closed (RO) : Binary sensor that can be used in room link decision
  • Heating automation pause (RW) : Timer used to avoid boot side effects.

2. Then, you have to create some global automations not covered by these blueprints:

  1. You need to instantiate heater_switch_mode.yaml, heater_setpoint_compute.yaml, heater_room_link.yaml and heater_request_compute.yaml for each
    room you want to activate automation.

  2. Then heater_one_need.yaml, heater_start_stop.yaml and heater_boot_management.yaml should also be created to globally manage heating system.

Blueprints:

Heater system management global script

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint is the global on/off heating system. It collects every heater requests from rooms, and decide if home heater should be started or not. It also check
for rooms links to determine if heating system should be shutdown.

Heater request compute

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint compute the boolean (switch) helper of the room, based on Climate valve setpoint, and room T°. If heating is requested, it aslo fake the local_temperature_calibration to ensure valve is correctly opened. In my case, T° sensor is far from Climate, and close to my preffered location in the room.

Heater setpoint compute

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint compute the correct setpoint based on the room schedule and the potential manual setting, to determine and send it to the Climate valve.

Heater switch mode

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint take into account a manual change on the Climate valve, or the Auto setting to modify setpoint.

Heater room link management

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint use the doors/windows status to determine if a room is linked to Inside/Outside/Both/None. When linked Outside, it stop and lock climate valve. It also setup a link helper to decide if we have to shutdown heating system or not.

Heater Winter mode management

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint is the winter mode heating management system. It turn off and lock every climate valve to preserve battery during non-heating period.

Heater boot management

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

This blueprint is in charge to lock switch automation during the HA boot process. I noticed that climate valves are sending some messages, and trigger the switch automation, resulting on a wrong setup of the room.

First question: can you explain what you mean with the links?

Hi @Patrick4 , sorry for my late reply. (and also my really late ping with your pseudo)

By “Link” I mean “How a room is currently connected to”. For example, imagine a bedroom with a door and a window. If door is closed and window opened, then the room is linked (connected) to Outside.

This allow blueprints to decide if the Valve should be turned off, or the whole heating system should be stopped.

I hope it replies to your question.

1 Like

Hi,
thanks for sharing your blueprint / heating management. Why are switching the system only on/off and not use incease/decrease heating demand?

I rather don’t need an on/off for start the heater but an increase of the temp. “thermostat_hc1_selected_room_temperature”.
My idea is to have an heating demand like described on page 10-11 here: https://github.com/tp1de/ioBroker.ems-esp/blob/5fade71fbb3aecc9f8d2d24c33040112aa4cfb9b/doc/ems-esp-es.pdf
The described program is running for the last 2 years quite smoothly - unfortunatelly on io-broker - and if possible shoud be moved to HA.

Hi @Monster_D,

Turning on/off the central heating system instead of selecting a T° is a choice based on … my heating system :wink: … It only accept on or off so I don’t have (and don’t need) something else.

Feel free to adapt to your heating system, or better, propose a PR on my scripts to take into account a manageable central heating system.

Hope this help

Sound like a great approach :+1:

You might like to compare it with Heating X2: Schedule Thermostats with Calendars, which includes the facility to turn off heating if a door or window is open, or if the room is left unoccupied for a while.

Heating X2 features:

  • Schedule by calendar: set the temperature of each room with a local calendar and as many heating events as you like
  • Multiple thermostats: One or more thermostats per room: multiple thermostats are synchronised together. Works with smart TRVs, any smart thermostat, or Generic Thermostat
  • Manual override: a change on the thermostat, dashboard or by voice assistant remains in effect for a defined period (default 2 hours)
  • Door or window open: heating turns off heating in the room if any door or window is left open for a defined period (default 3 minutes) – optional list of zero or more closure sensors.
  • Occupancy: heating turns off heating if a room is left unoccupied for a defined period (default 1 hour) – optional list of zero or more motion or human presence sensors.
  • Warmup period: occupancy is ignored for a defined period at the start of a calendar event (default 2 hours)
  • Away mode: set all rooms to a temperature specified per room (default 5C) when there is no one at home
  • Background temperature: used when there is no calendar event (default 5C but specified separately from the frost and away temperatures)
  • Zone control: can switch one or multiple heating zone valves, or a boiler that needs a heat demand switch, based on heat demand from a group of thermostats
  • Notifications: if thermostats do not respond to a new setting, go offline, or come back online
  • Robust: Graceful degradation when a thermostat or a sensor is offline
  • Battery-efficient: conserves TRV battery life by only transmitting real changes
  • Code generator: uses mail merge (!) to automatically generate YAML code for helpers, timers, template sensors, groups, automations, and dashboard cards from a single EXEL spreadsheet that lists zones, rooms and thermostats

Hi @AndySymons,

Thanks for your link and for your remarks (and ads description of your bluerints :stuck_out_tongue: ).

My blueprints already includes openings, taking care of outside vs inside openings, and shutoff one room or the entire heating system depending on the room “link”.

Occupancy is already managed, but only with a manual boolean.

Yrs, I was comparing because we had many of the same ideas. :blush:

What do you mean by ‘manual boolean’ for occupancy? If you use detectors, they are also boolean, so you should be able to connect them?
Having said that, I have found it difficult in practice to get reliable presence detection — I tried several motion and human presence devices. Has anyone else succeeded?

Yrs, I was comparing because we had many of the same ideas. :blush:

:wink:

What do you mean by ‘manual boolean’ for occupancy?

I use a human actionable indicator, a HA input_boolean. Not related to any sensor. My usage is to leave a room out of management when nobody use it. Mainly for bedrooms, that are only maintained at Eco T°.

1 Like

This links do not work

Thanks @vajdum

Fixed with new links, I hope it will work now :wink: