My Central Heating Solution using Thermal Actuators

The typical twisty style thermostatic valve heads vary the flow through the one valve coarsly via the manual adjustment, and then finely based upon current temperature - usually a small bit of wax will expand or contract based on the current temperature. They’re designed really to allow some flow through the radiator all the time the heating is on, the more flow you allow, the more heat is pumped into the room.

As I’m just allowing the radiator to be on or off, I don’t really control the amount of heat the radiator outputs, just its duration. I can adjust the flow using the lockshield valve on the opposite side to have a minor influence - I could also look into “pulse width modulating” the actuator simulate a percentage of opening, but I’ve not had the need to yet.

With regards to the humidity sensor and extractor fans, as has been said, it’s all controllable via openHAB, so I can modify thresholds. I currently have it that if the humidity hits 100%, or the average over the last 5 minutes in the bathroom alone is over 75%, the fan will come on, and it will remain on for 10 minutes after either it is no longer 100% humidity, or until the average over the last 5 minutes is below 75%.

My Wemos D1 Mini & DHT22 have been just fine for the 7 months they’ve been installed, reporting temp/humidity every 30 seconds, and I’m using a Sonoff basic for the extractor fan, as I had one spare. If I were buying new, I’d buy a Shelly, because they don’t need opening, soldering and reflashing to support MQTT like the Sonoff does.

Hi Garry, Thanks for sharing your setup, you have inspired me to do something similar in our home.

I have copied across your items and rules to test on my system before installing actuators however I have noticed an issue with the rule "Check heating actuators every 5 minutes"I If a temp sensor is disconnected from the network openhab will give it a NULL value and the rule will fail due to this.
I cannot work out how to edit the rule so that it continues the rule and report this error (through notification of log info), unless I use the expire binding and set the disconnected temp sensor to report 999 after 10 mins of inactivity.
Setting to 999 ensures that the rule doesn’t break and also the heating isn’t turned on when it is not required.

Are you able to assist with the rule when a temp sensor is NULL?


Hi Paul,

I believe I corrected this issue in the updated code in post 75

If this doesn’t do the trick, then let me know, and I’ll take another look!


Hey Garry,
Thanks for the reply. I am actually using the update code from post 75 however there is still a issue.

2020-06-23 14:00:05.231 [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule ‘Check heating actuators every 5 minutes’: Could not cast UNDEF to java.lang.Number; line 26, column 25, length 15

FYI on another note and for anyone else who may struggle to get this working, I wasn’t able to get your rule working without changing the below
sendCommand(, newState.toString)

Ah, I put in a check for the target temperature being NULL/UNDEF, but not the actual recorded temperatures:

Try modifying the offending line to this:
var nums = gTemperature.allMembers.filter[i | i.state !== NULL && i.state !== UNDEF && + "Temp") ]

If that works, I’ll amend post 75. I’ll also amend it for the sendCommand you noted.


Yep that fixes it, many thanks Garry :slight_smile:

1 Like

Did you also consider to use Zigbee controllable individual room thermostats like the one below?

Per room you would need then one of these Zigbee thermostats which can be installed in the standard wall enclosures use for light switches, are 220v powered and can hardwired (220v) control then a thermal actuator one the radiator in the room.

For my house that would be (apart grom the floor heating systems I have) for 11 radiators in the various rooms 11 of these thermostats (ca 25€ each from China) and 11 thermal actuators.

All this stuff can we locally controlled on the display on each room and centrally with Openhab or HA via Zigbee.

Who has experience with such set-up?

Well those “thermostats” are just input devices (plus thermometers), they are not what Europeans would call a thermostat (that thing to put on radiators, called “TRV” in the UK).
These “thermostats” you can deploy but it’s pretty much overkill to have one in each room.
If you have proper automation to set the target temperature/control the actuator there will hardly ever be a need to use it to input anything.
All you need is a thermometer, but there’s usually already quite some in a room you can use, and the input can be a virtual one on your phone app.

1 Like

I understand what you are saying. The beauty in my view of a local zigbee ‘thermostat’ control is that it provides users (like kids, parents, guests) locally in the room at the wall a nice looking digital local control panel to set manually the temperature in that room as well and the device also has a temperature sensor in it - at the correct height in the room and sufficiently away from the radiator.
Next to the thermal actuator in the room for the radiator, the this ‘thermostat/digital display’ is about $25 per room. Since it works on 220V and has an output relay it could directly control the local thermal actuator.

And with the Zigbee capability it can all be controlled by any central zigbee / HA / Openhab, etc home automation sysyem and by App on a mobile phone / tablet.

I think it s worth the investment per room.

What’s the point in controlling a display that takes its input from the local sensor anyway ?

If you are proud of your smart home or wealth or both and want to show it to guests, fine.
But that’s remote control not home automation then hence not smart.
A real smart home does not need any input devices because the automation takes care.
So it does not need any (visible) devices either.
Sure if you don’t have any other thermometer you can deploy this but if there is any you should reuse that (apply a configurable correction offset to mitigate effects of placement).

My point is more that apart from all the automatic controls by your smart home platform (whether HA, OH, Node Red etc), I would like have family members, guests, etc give the option to control manually as well the room environment with a fairly cheap and good looking local touch display and that people can see the actual temp in a room without the need for a phone or tablet to see this (what also would need them to have an App etc on their phone or going into a few browser). Furthermore, I am a great fan too to use cheap as possible components to achieve the goal - for that reason I standardised almost completely on the Sonoff line of sensors and 220v power switch modules and modify those as well where needed.

First I have to admit, I’m not an OpenHAB user, I started with Node-red and added HomeAssistant to leverage the use of cheap switches and sensors.

My motivation for controlling room temperature was my annoyance at finding my new heating system was only concerned about managing the heat supply so that its temperature sensor in the hall was at the target temperature. Two radiators were uncontrolled, the others are controlled by actuators attached to each radiator. The heating engineer who installed the system spent many happy hours “balancing” the system. I was never happy with the result as the installation was heating unoccupied rooms, heating bedrooms when the heat came on in the evening and way before necessary, and heating Suffolk because doors and windows were open. Can someone explain how a £150 Nest solution would improve things?

I wanted to use Xiaomi wrist band for presence detection so I have an ESP32 running ESPhome as a BLE tracker in several rooms. The ESP32 can also receive temperature and humidity values from seriously cheap Xiaomi sensors. Some have a really nice display so I’m not inclined to construct something bespoke. I’m using thermal zone control activators I bought from eBay and, for now, WiFi enabled wall switches to turn them on and off. I’ve several Sonoff switches kicking around that I could use but enclosing them so they are safe and look nice takes too much time. I’m invested in Amazon kit so I will use voice control instead of yet more displays and switches. Sweet.

I’ve not optimized everything yet but already noticed I have to take into account the thermal inertia of my radiators and the sluggishness of the wax-filled actuators. Oh! I’m also using PIR detectors to decide if a room is occupied or not and so I don’t heat them unnecessarily and, when the house is unoccupied, for a security alarm.

I’m always puzzled by those discussing how much power these automation components consume especially when discussing a heating control system. If the components consume a watt or two per room you have to realize that this watt or two will be contributing to heating the room - it’s what the radiators are doing anyway. Worried about the energy used in unoccupied rooms? Think about how much you’re saving by not heating them.

I’m not ready for a ‘show and tell’ yet but will be happy to do so in the future.



@Confused Are you still running this on openhab2 or have you thought about moving it to openhab3?

Recently I did an update on my openhab2 install and completely ruined things, taking about a week of evenings to reinstall openhab2 (openhabian) many many times. Luckily it was summer so we didnt need any heating in the house, but I imagine if this had happened in winter I would have been in a lot of trouble with the wife. Finally I got things working but I still have issues with the MQTT1 binding starting on reboot (I have to manually remove the binding from the addons folder and add it back in again after everything has started up). I wonder if the powers that be at Openhab have tried to make it difficult to run openhab2 and are pushing people to openhab3 instead.

Would be interested to hear your views on openhab3 or if you are going to continue with openhab2 for the foreseeable future.

@PaulHam I’m still running on 2.5.x, I haven’t made any changes or additions to my home automation setup for a while, so haven’t had the need to revisit it, and thankfully all of my current bindings that need access to the internet still work.

I might look at OH3 at some point to re-write this using the newer version, but don’t hold your breath waiting for me! :smile:

Haha thanks.

I dont have the passion to move to OH3 yet anyway, but if you do it please share :slight_smile:


I would like to do something very similar - I’m planning on using slightly different software, but I like the idea of Thermal Actuators.

I have thermostatic valves on some of my radiators. Do you know if there is any adapter that would allow fitting an actuator onto a standard TRV valve? Did you replace your valves to mount actuators?


These actuators are M30x1.5, which is “standard” for modern TRVs, so I was just able to directly replace them with the actuators.

I was also able to replace all my trvs with these actuators. Make sure you get the normally closed ones.

Well, that’s a design decision you should not underestimate.
If you want your heating system to still work when OH is down or power for the actuator gets lost, you’re better off with NO (“Normally Open”) actuators.

You can always take them off very easily. It’s better to have them normally closed, being very near to the radiator, so you’re not having the actuator under constant current when you’re not heating.

1 Like