@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
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.
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.
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
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
I've been recently thinking about using cheap 7" android tablets, you can get them for £30-£40 these days. Set them up to turn on via motion detection from a motion sensor and create bespoke NR/uibuilder/VueKS interfaces..... I'll tap the mains power from wall switches, so they can always be on. Seems like a great bespoke interface for the family, that shouldn't cost much - relative to the cost of zwave modules that is.
Yep, good choice for more complex things. But you might also want to think about even simpler button interfaces because sometimes you just want to hit a button without thinking. For those situations, like turning on/off lights, a web interface on a tablet is far too slow.
Consider being able to turn everything off when the last person goes to bed for example, that person may be tired and just wants to hit the sack not be woken up by having to use a tablet. A button is quick and easy.
I have an M5stack Core which has a small screen and 3 buttons. A TTGO with a small screen and an M5stack Atom (8x8 LED matrix). I have a selection of buttons for the Atom but I also have some TTP223B Touch sensors that I may use.
All are in various states of experimentation right now
I have a selection of 433MHz buttons (LightwaveRF and HomeEasy_EU) that have been in use for some years now and get used for controlling either individual lights or collections of them.
Please share your findings. Would love to see where you end up.
As for buttons, I've got more than you can point a stick at.... I wouldn't want to hazard a guess (and I've just eaten dinner so despite how tempted I am, I'm not going to go and count) but definitely more than 200 throughout the house
No shortage of buttons and they are used for all sorts of scenes.... I'm probably going the other way to you and thinking of cool simple interfaces in certain rooms to change heating and lighting schedules, blinds and other stuff.
I think tablets could work but make the touch buttons larger than you at first sight think is necessary. Making them for "fat fingers" is actually not bad, it will be much easier to operate correctly. You will see..
Yep, it is only us OCD geeks that want masses of information and tons of controls. Most people simply want to be able to see what they are doing and have a comfortable temperature. That really doesn't need much in the way of controls or display.
Oooh, I haven't seen those before. And there's also a V2 with touchscreen, making it even more aesthetically/decoratively pleasing. They could definitely be nice room control units if they're flexible enough in terms of programmability. Worth having a more detailed look at when I get some time