Welcome to my personal hell Bart.
I have dreamed of a smart heating system for years and I have made it most of the way there, with some problems along the way.
My problem is I live in a reasonably large very old house so I do not want to be heating all of it all the time (my heating bill was huge until I started saving money this way). I especially don't want to be heating bedrooms that are not being used or indeed, when I am working from home in my study, I don't want to be heating most of the rest of the house.
Most of the systems on the market seem to fall a long way short of what I want. Many focus on things I am not interested in such as controlling things from my phone. An "automated" system should be one that requires very little input from me on a day to day basis, otherwise it's just remote control, not automation.
For example there was a recent Alexa (I think) advert where the family gets back to the house and says "Alexa turn up the heating". Massive Fail! My house has thick walls and stone floors in parts. If it has been allowed to cool down substantially e.g. I've been away at Christmas, it takes several hours to heat back up. If the house is not already warm by the time you get back then your heating system is not doing its job.
The other way the commercially available systems fail is not having readily changeable profiles. If you're lucky enough to be able to control individual rooms then you have to go into every room and change temperatures or times using an app. I want to be able to say "I have guests this weekend" and the guest rooms, the dining room etc all change heating profiles to suit.
Don't get me onto systems like Nest that a) usually have one thermostat for the whole house. Fine for a small flat; no good for a large house. You are either heating all of it or none of it which is a massive waste of money and b) they also try to "analyse" your schedule, which means they are actually "guessing" when you need heat. My life is not that predictable.
Sadly the system I use is not made any more. I use EQ-3 Max! valves and thermostats. Fortunately they still work fine but I will need to plan for the day when one or more components eventually fails. I control them using Homegear through a CUL, which works very reliably (even through the thick walls). Then I control Homegear from Node-Red through MQTT
You can achieve the same setup today using Homematic valves and thermostats (not Homematic IP sadly) but I'm not sure how long Homematic will still be available because EQ-3 seems to be moving to their new Homematic IP system, which I don't think is compatible.
The advantage of these valves is they store their programs in the valves themselves so they are not reliant on an internet connection. Everything is local and under my direct control. You also don't need to do your complex day-to-day scheduling in Node-Red. Node-Red is just in charge of telling the valves what schedule to follow. I have created Node-Red flows that interpret a human-readable JSON schedule using JSONata with rooms, days, default temperatures and start and end times into the format that Homegear understands and then send it by MQTT. Status can equally be read over MQTT but I actually use openHAB for that because I am using openHAB anyway (although I use Node-Red for all my rules).
This way I can have diffferent programs for different rooms all ready set up and just send them when I want. For example my son moved back home for six months yesterday. His room (normally not used and not heated at all) is now on a schedule that heats it during the day (he will be working from home) and into the evening and then drops the temperature at night. Other rooms such as the living room never get used until lunchtime; the kitchen comes on for breakfast, lunch and then in the evening. They are allowed to cool down at other times. Bedrooms are not heated during the day. At the moment, out of the 14 spaces and 16 radiators in my house, only 6 spaces are currently being heated (including two hallways) and because those spaces are mostly up to temperature, a total of only 0.7 of a radiator is open so the boiler has switched itself off. If the total % of radiators open gets over 90% (e.g. one radiator opens fully or say three radiators get to 30%) then the boiler will fire. All triggered by Node-Red flows.
Stuff still to do includes
-
a better UI using the Node-Red UI builder to show current status, to quickly apply heating profiles to rooms and to trigger the override functions such as dropping the temperature for a couple of hours if I'm going out.
-
a UI that allows me to create and edit the profiles using a timeline widget rather than editing JSON files directly (which my wife is NOT going to do!)
-
use of defined temperatures and times such as "getting up time" so I can tell the system I will be getting up an hour earlier tomorrow and the bedroom, bathroom, kitchen will come on earlier as a result, and
-
more integration into the house automation so that activity detection will keep the heating on in the bedroom and other parts of the house if it detects we haven't gone to bed yet but then shut it off when when we do (you don't want the house to go cold if you're watching a late night film and you're up later than normal).
It's been a fun process and I've achieved most of what I want. In particular the house is just the right temperature when and where it needs to be and I'm not spending a fortune heating all of it.!