Haven't really got the time for a full writeup but all the info is there.
Basically, requirements:
- 240v thermal actuator (live/neutral).
- Add a plug, plug it into a smart socket. When socket is on,valve opens.
- Smart boiler switch of some sort.
- Temperature sensor of some sort.
- Webcore piston to check current room temp against your desired room temp, activating the socket when current is lower than desired. Switching off again when temp is reached/higher. I have one of these per room, running every x minutes.
- Webcore piston to activate the boiler whenever ANY sockets are flicked on. And to switch the boiler off again if ALL of the sockets are off.
That's the top and bottom of it.
Full disclosure, I use a different (better, imo) approach. Instead of smart sockets, I run nodemcu's with 3v relays to control the actuators. This allows me to attach temp/humidity sensors to these in each room, and a few other cool bits (manual boost buttons, indicator LED's etc).
I have some cool virtual switches and a bit of webcore to allow me to 'boost' a room for 30 mins, obviously disabling the heating if a 'max' temp is reached after a few mins. Also allows me to disable/enable schedules for each room. Heating can be tweaked to only stick to schedule if the home alarm is set to 'home' etc. It's all rather slick imo. It all links together beautifully.
The main UI is controlled via sharptools (that's the screenshot).
I put a LOT of thought into this. And for me, it works utterly to perfection. I would prefer I could adjust the schedules easier via a UI instead of editing webcore, but once set up it doens't need changing anyway.