Better control for heating

My central heating control using temperature data measured with a Si7021 probe plugged into a Sonoff TH unit, which is then averaged over ten readings using a smooth node in Node red works quite well. But I can't help wondering if there is a better way. Something a little more sophisticated maybe like a P.I.D. control loop that you find in industrial applications. Is this even possible in Node Red? I'm guessing such control could be programmed into a function node by someone who knows what they're doing. Has anyone thought about this before. Opinions sought please.

Well a lot of folk use this node - node-red-contrib-ramp-thermostat (node) - Node-RED

Have a look at node-red-contrib-pid which I developed for exactly such applications. It can be used with node-red-contrib-timeprop to control the heating system in a pseudo linear manner. I use it with hot water radiator heating, underfloor heating and fan heaters in the house and greenhouse.

1 Like

Thanks for the input chaps, I will look at those. I quite like the look of PID node Collin. My only concern is that I have a motorised diverter valve controlling the radiators and was wondering if the node would put a lot of extra operation time on it. As you know, 2 port diverter valves are pretty unsophisticated only being digital on or off (open or closed fully) comprising of a simple synchronous motor that actually stalls when fully open. They are notorious for over heating failures. Ideally I could do with a valve that will open in an analogue manner but I think that is beyond my abilities as a home tinkerer.

Definitely that would be ideal, but it is also beyond my budget to use other than open/close valves. Are yours truly motorised or are they the wax versions which work by heating a wax capsule to drive the valve? They can be very slow which does limit the performance a bit.
As for the duty cycle if it is connected to a conventional room thermostat then it will typically cycle open/close every 10 minutes or so. I typically set set cycle time in the timeprop node to 5 or 10 mins so it isn't much different.
The valve should not overheat if driven fully open, again that will be no different to when connected to a room t/stat.

I have recently been experimenting with cascade control for radiator and underfloor heating. The idea is to measure the radiator temperature and have one loop which controls the radiator temperature to a specified value (between ambient and 70C for example) and that is fed with the output from an outer loop which has the room temp as input and the power output of that loop is scaled to the required radiator temperature.
The result is that the outer loop says, for example, that it would like a rad temp of 45 and the inner loop controls the rad temp to that, or at least attempts to. Because the radiator heats up so quickly when the valve opens the control is not too good, I just use on/off control of the rad temp with a DS18B20 glued to the top of the radiator above the inlet pipe so as soon as the sensor reaches the temperature then it immediately closes the valve again.
This is proving remarkably successful, but does require quite of lot of fiddling and complexity to get it to work, so only for someone who wants to waste time tinkering in order to get the temperature control down to the last few tenths of a degree.
Even the basic PID control will give noticeably better control than on/off so one should get that going first anyway.

Thanks Colin. Here in the UK it is pretty standard to have one diverter valve that diverts the boiler hot water to all the radiators in the house or the hot water tank or both (valve stops half way between radiator and hot water tank outlets) it is definitely motorised and uses a simple geared down synchronous motor which will drive to a mechanical stop and stall at that position until the control tells it to close. So cycling this valve every 10 minutes or so will definitely reduce its life time.

It seems like you are quite knowledgeable regarding control subjects, I on the other hand have only a limited knowledge. I have been thinking about removing the diverter valve completely and changing the pipe work a little to accommodate two solenoid valves: one for the radiators and one for the hot water tank. The plumbing should be relatively easy and solenoid valves are pretty plentiful, inexpensive and hard wearing. One small issue may be the noise created when they operate, especially early in the morning. I'll have to do some investigation. Thanks again.

I am in the UK too.

Is the valve currently driven by room thermostats or have you got automatic valves on the radiators? If it is driven by a thermostat then it will already be cycling at a similar rate. I use ones similar to this which seem to stand up to it ok. They do make a little noise while moving, I would not want one in the bedroom.

The S plan which has 2 two port valves also has to have a automatic bypass, which is the thing that will make a small thud as it opens. so i see no difference between the Y-plan and the S-plan for heating control. Also the radiator temp is governed by the bioler. For better heating control individual radiator valves or a underfloor heating manifold could be used, then you can set the temp of each room/circuit.

The water temp and therefore the max radiator temp are controlled by the boiler, the instantaneous radiator temp can be (somewhat crudely) controlled by a valve.

The water temp if combi is controlled at the boiler, if a hot water tank then the cylinder stat controls the hot water temp.

Also the hotter your boiler and rads the more efficient your heating will be.

At the cost of efficiency


The valve is driven by a thermostat (in actual fact as per the original post, I have bypassed the thermostat with a Sonoff TH16 which does the the temp sensing and switching the heating on and off) but I control the hysterisis by averaging around 10 readings so as not to cycle the valve too often. I also have individual TRV fitted to some room radiators, mainly upstairs rooms as they can be set a bit cooler than the rest of the house. But these are completely independent from the control system I am speaking of. But I suppose you are correct that the diverter valve will operate fairly frequently anyway.

What I might do is have a play with the PID node and set up a test rig comprising of a fan heater controlled with a Sonoff TH16 in a small room. It will be quicker and less risky than trying it on my heating system especially as the wife won't like getting cold

Sorry, my statement was ambiguous. I meant the temperature of the heated water that is piped to the radiators.

In what way is it less efficient? I am talking about the the temperature of the radiator, not the temperature of the water piped to the radiator. The radiator will only be at the temperature of the water piped to it if the radiator valve is permanently open.

if the radiators are cooler, then the heat tranfer from rad to air is slower(meaning the room will take longer to heat) and the percentage of heat loss in pipes etc is greater. Also the transfer to hot water is slower, the ideal temp for rads is between 65 and 80 degrees, I set mine at 70 as i want to heat my hot water to 65((less chance of bacteria living)

Absolutely right during the heating phase, I am talking about the steady state situation once the room is up to temperature.

In that case i would put the valves on individual rads.

If anyone want an out of the box solution, i would recommend genius hub. The price is worth the control and they have a great rest api, the whole system is z-wave and has been designed to simply replace existing control gear using same standard back plates and thermostatic rad valves. (disclaimer i am an approve fitter)

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.