Heating panel from scratch

I've been reading the forum but can't find anyone that has built a complete heating panel from scratch in NR.

I'm going to move all my home heating from my Fibaro HC2 to Node RED and TBH I already have a plan on how to do it that will work fine.

I recently built a panel to control my instant hot water which in a sense is a simple heating panel, and it works fine.

I'm just interested to see if anyone else has done it before to see if I can pick up any nice ideas.

I get this is a very broad question and I'll keep reading through the forum. It would be great in the meantime to hear back from anyone that's done it already.

Maybe of interest, we have an ongoing discussion regarding control of a gas heating system here:

It rather depends on what you mean by that I think.

@Colin, here's the background.... I created this Node-RED panel using the dashboard nodes as an interface to the heating panel running from my Fibaro HC2. Within it I have added extra functionality that Fibaro does not offer out of the box e.g. schedule profiles (the section at the bottom), ability to control all zones at once for manual overrides etc

The panel works well, although I want to move it to uibuilder/VueJS as that's what I'm building on from now on. It's more flexible than the dashboard nodes and much more fun to develop with, however that does not mean I do not love the dashboard nodes, without them I would not be here writing this message. I am sure I would have given up with Node-RED if they were not there as diving straight into uibuilder was too much for me at first.

I have since then created a hot water flow with a VueJS interface using uibuilder:

You can read about it here, and see my code on github.

Now that I have the instant hot water flow working ie we have hot showers in the morning and instant hot water in the kitchen (at a MUCH more energy efficient setting than my plumber setup I might add),
I want to move onto moving away from using Fibaro's HC2 heating panel to entirely using Node-RED to run my heating. In fact, the engine for the hot water flow, which is about 200 lines of code, so quite small, is really a basic heating panel, so I know I can build the real mccoy (the real thing) now.

I'm thinking of the something like the following feature set for the heating panel:

Schedules/Manual Overrides/Holiday Mode

  • multiple pre-configured schedules covering all zones in the house
  • ability to manually override individual zones or all zones (plus maybe groups of zones)
  • a holiday/vacation mode which can be set at the individual zone or across all zones

Zone Schedules & Heating Profiles

  • preset ~6 different temp levels per room e.g. from OFF to BOOST
  • a nice interface to mix and match temp levels in a room to a heating profile
  • multiple pre-configured profiles for the entire house - a profile being a configuration of temp levels for every zone in the house


  • one or two (as required) nice interfaces to control all of the above + a modified version of the panel that I have pasted an image of above i.e. the main user interface

More Heating Control Functionality

  • a summer / winter override i.e. summer = all off, winter = heating on to user selected heating profile
  • an automated profile selection function to take outside temp forecasts and determine the best profile to use e.g. if it gets hot > 16C on a given day, turn all the heating off, if there is a cold snap =, boost the heating
  • room independent heating overrides based on the sun being out e.g. temp >10C + sun is shining today = turn heating off.... the reason for this last one is that I notice my kitchen (for example) gets too hot on cold days when it is sunny all day - admittedly that does not happen often in London :slight_smile:

The above is a bit of a brain dump, I probably missed stuff off the list, but if you see it in the panel I pasted above, then it will be in the new solution.

Before I started I just wanted to see if anyone had done it before, otherwise as with every one of my projects I'll just get on with it and build something.

My aim for now is to build something that works off a large touchscreen panel, so you can see the whole house at once on one screen.

I'm not so sure if I need a mobile interface as if the above works, you shouldn't really have to change the temp in a room often... and I might just use Alexa/Google Home for short term (lazy) overrides, but if I do need a mobile interface I'll create something basic for manual overrides later, it shouldn't be too hard.


Very impressive!!!

1 Like

Some thoughts from a personal point of view:

  • from ui point of view, I think having a full-fledged "engineering" ui is great when you use it yourself. But for all the other "normal" users, I would automate most of everything, keep what they can change & control at a minimum. I mean if you monitor room temperatures and regulate according to set points, manual overrides should hardly be needed or did I miss something?
  • depending on your tank size and it's capability & isolation, it might be worth to consider WHEN you heat the water. I have no idea how it is in your location but where I live, it is much, much more expensive heating up with electricity during weekdays 7am-7pm. Therefore, if I would have a similar solution, I would try to have a large well isolated tank and have at least one schedule heating up to maximum during the night so that it is finished just before 7am

No, you didn't miss anything. The idea will be to tweak the heating levels until they work and then leave them i.e. set and forget.
Then the only overrides will be things like when guest are staying or when going away from the home for extended periods, but during the tuning process I do not want to go into config files to muck about. I want it all exposed in an interactive interface.

Not a problem where I live. We heat with gas and it doesn't matter when you do it, the cost is always the same, however you did pickup on an interesting point. In my hotwater panel I do not have a separate schedule for the boiler/cylinder. I plan to add one soon, just to heat the water up first thing in the morning.

As for engineering-like interfaces, no one in my house is playing around with the hotwater except for me and TBH the interface isn't that tricky. The only thing my dad (for instance) would ever press is the override button for the zone he wants, so even though there is a lot going on in the screen it's pretty light touch to use once you get past the detail and it satisfies my requirement, which is one interface to control everything.

:+1: Wonderful, then everything will be great! What I meant and assume is just a thought, once you have tuned everything into the comfort levels you want, no one, not even you, should feel the need to touch anything if the system is perfectly tuned. But you are right, sometimes some people feel the need, so temporary raising the temperature could very well be a demand. In our house we have also a water heating system but it is with a heatpump. It's perfectly tuned and keeps the temperature very stable. But sometimes it is nice to increase the comfort so then we make a fire in our tiled stove

And if you would ever feel the need, if people are touching too much, you can always create a reduced ui

Best regards, Walter

That looks beautiful... wow!!

Yes,you are right on all fronts. Hence my thinking out loud about either using Alexa/Google to do overrides vs a mobile app. Despite all the effort to get heating right sometimes we just feel cold / not well and want it up for a few hours or vice-versa.

So the question, why build an whole house interface, mainly so I can keep an eye on it. When something goes wrong, I want it readily exposed. When I want to change something, I want to do it from a nice interface ... i've lived with my system being "hidden" away for too long.

The reality is I also have too many modules to manage easily, so the more I can see the better. My requirements probably won't apply to many other people.

This is the same as my thinking. I will be building a tabbed interface (easy to do with Vue/bootstrap) that, by default, presents something very simple but still allows me to go and look at all of the gory details if I need/want to. Even you will probably want something simple as your entry point.

One of my aims is to eventually also build some really simple ESP32 based devices that allow local control for the family.

Of course, since the Wiser app is reasonable, such interfaces have not been high on my To Do list :smiley: