How to open radiator to given level?


For my home automation project I’m trying to create temperature control. High level overview is that I have one heater producing heated water that is going to radiators. In each room I will have temperature sensor.

Depending on room priority, difference between set and actual temperature, difference of water on heater input vs output I can calculate what radiator to open to what level, if I need to start the heater or the water is warm enough to start pump only. And here is the problem how to open radiator to calculated level???

All parts with exception of radiator actuators I have created using Nrf24l01, relay modules, temperture sensors and arduino pro mini as nodes and Raspberry pi 2B as server.

Now I have problem with radiator actuators. I need ‘something’ to what I can tell “Set X%”… I do not mind if it is operated by batteries, AC… It might have proprietary protocol (as long as this protocol is documented) as in front of this ‘something’ I can put arduino that will give communicate with server and translate to proprietary protocol.
If it is z-wave or other technology it is also OK, I can send commands over Z-Wave, wifi, bluetooth, Nrf24l01, RF433, X10…

Absolutely mandatory minimal requirements for ‘something’:

  1. On power loss the valve is fully open, on power restore the valve stays fully open until command received (do not return to state before power loss)
  2. Any configuration, software set values… must be remembered also during power loss
  3. If it uses any kind of battery it must be user replaceable
  4. If it uses any kind of battery it must be able to report battery status back to Arduino and/or server
  5. Zigbee is absolutelly forbidden at my home due to interference, incompatibility, vendor lock
  6. Using any vendor specific application is not possible, reason is that I want to integrate into openhab not to have 20 various applications
  7. Edit: Works without internet/cloud connection

In ideal case the device is powered by 5VDC, can be remotelly configured and reports back what is actual status (e.g. if request was “set 100%”, last status was 5% and if I ask 15s later about status I got 47%)

Is something like this available? What is name of device like this? Anyone using setup like this?

Hello Peter. If I were in your shoes and i had direct access to every radiator valve with mains power (AC) or could run 24v directly there I would use a wax motor based actuator setup something like this:

They are relatively slow acting but that means you can govern them easily with a pwm signal where the duty cycle is measured in for example a minute.
They are really reliable, totally quiet, and dead simple.

Then you can have a central block of contactors turning on and off or use solid state relays if that it to noisy

1 Like

@joriskofman Thanks for idea. I have already considered this, but my experience is not very positive. We used these wax valves previously for complete analog control, they have been used as bypass valves when water gets too hot. they usually worked great but once in cca 3 years they got stuck. Also the expansion range changes with time. As it has no feedback channel (which is understandable in analogue world, but not in digital world) you discover the stuck wax only when your radiator freezes or boils (depending on type) both usually involves significant damage.

However to be positive I like the quiet operation, very good behavior on power loss and minimum of parts. Currently I’m using them in blinds control, it is absolutely slow, smooth, silent movement end to end cca 3 min.

Usually also the outside part moves so I was thinking of using industrial limit switch to detect max open, but on some radiators the valve is quite exposed and with the limit switch it gets too bulky and fragile.

To give update on my research until now.
I tried several radiator valves, including similar to the one @joriskofman mentioned.
I run into big problems with the open/close, currently I have no solution, but giving only as early warning if someone has similar idea like me:
My radiator valves are controlled in range of 10 to 14mm from the fixed ‘touch point’ where thermostatic valve is secured to radiator valve.
Current manual HERZ radiator thermostatic valves are operating in range 8 to 14mm (OK covering complete radiator valve range), but most of the automated valves I bought including reductions are actuating in range 11 to 13 (NOT OK since radiator valve can not be fully closed).
Also NONE of the electronic valves fulfil my basic requirements 1 and 2. Most of valves behave in this way: On power loss stay as is, on power restore starts with some primitive hardcoded temperatures and plan (very often it is not able at all to reconnect to server without manual action).

Do you think anyone can be interested in valve like this? I have the idea, technology to use etc, but have no knowledge to design the circuitry. If someone can help we can create kick starter for this.

It is hard to believe that my radiator valves are that exotic product. I will continue searching and when I have any news I will inform you.

Current status is that on radiators I use the old HERZ thermostatic valves, which I wanted to get rid of, and if thermostat in living room is happy water heating is stopped, if thermostat wants heat, there is measurement of output temperature on water heating, if the temperature is above 60 water heating is off (pump on), and when it falls below 40 the water heating is switched on again), this repeats until thermostat is happy. Very ancient solution without any automation. I would really like to get rid of this and connect to my openhab.

I am not sure if I got you right, but to control the valves directly is in my opinion a wrong approach, or better a very complicated approach.
I have zwave thermostats with inbuilt PID controller on my radiators, so I do not care about opening of valves.
I have heating plans for each room when to start heating in the morning at e.g 22°C and when to go in economy heating mode e.g 18°C at night.
So I am just setting the wanted temperature, the opening level of the valve is controlled by the thermostat itself.

1 Like

@chris4789 Yes this schedule is possible, but my target is something more “inteligent”.

My idea is to have priorities on rooms, set temperature in each room + sensor to measure real temperature and based on fact that power of water heater is not indefinite to route the warm water in radiators in a way to achieve most comfortable heating for given purpose. Not to stick to given schedule, but use it dynamically based on what is intended usage (e.g. working outside, computer, sleeping, lab…)

Example 1 when leaving work I switch openhab to ‘returning’ which will change set temperatures for kitchen, living room and work desk, but priority is living room, so until the difference between current and set temperature is more than 2 degrees only radiators in living room will be open, if for whatever reason the heater input will have less than 20 degree gradient to heater output I turn also valves in other rooms open…

Example 2 in ‘lab’ the radiator is normally at 15, when I arrive home and plan to go to lab after dinner I switch on LAB in openhab and (it will also turn off circuit breakers for lab, etc…) based on priority and temperature difference to target (for example 22) the water heater will start and if returning water is less than defined gradient other valves in the hause will be closed by for example 20% to allow fast heating of lab.

What I have now (to ilustrate the problem I’m facing) is room sensor in living room (this sensor can turn on/off water heating and pump) that switches the temperature zones exactly as you have described, but the radiators in living room are positioned in a way that temperature of air close to radiator heads is irrelevant for room temperature (one head is covered so having high air temperature, and second is close to window so having higher than room temperature when sun is shining and less than room temperature when cloudy or dark). Because of this the 2 radiators are still max open and room temperature is driven by the sensor. In this setup problem is with other rooms (e.g. bedroom) as if I add another sensor to bedroom it can start heating/pump, but in that case it will overheat the living room.

Sure, but you can “manually” control thermostatic valves by setting a “false” target temperature, too high for on and too low for off.
I’m saying don’t rule out self-contained devices just because you want to override them.

Thanks for your explanations.
I think this is more a heating system topic as a question of automation.

My heating system for instance calculates temp of heating water with outside temp.
If it is colder water is hotter, if there are higher temps outside water is “colder”.

I have adjusted temp after installation of my heating system for a while to have it always warm in the living room, so this was and is my reference.

I had a few rooms where it was too cold.
My valves can be adjusted to increase or decrease quantity of water going through the radiator.
I opened them bit by bit until I got the temp I wanted.

So I would try to optimize your system in this way before.
If temps are okay in most of your rooms you can then automate as you like :slightly_smiling_face:

@rossko57 you are right, but in my opinion I consider this as ‘backup’ way if no ‘correct’ way exists, for now trying to find the correct way of doing it (which seems to be missing)

@chris4789 I need to explain more, I have done 2 levels of statical optimization, first are the return valves that define how much water each radiator returns to circuit before entering radiator itself, this serves to balance pressure in system, then I have balanced quantities, for each radiator there is flow control valve that adjusts working range of main radiator valve. This all is already set and it works as you have described (minus the outdoor sensor). This 2 described levels I do not want to touch (as they are sensitive and hard to set). But with main radiator valves I would like to do ‘tuning’ for specific scenarios (e.g. the samples given above), and here the backup solution of @rossko57 is definitelly working, but I’m really the only one to do it as event automation (e.g. react on events like leaving work, sleeping, holiday, shower…), not as schedule?