I live in a place with four floors (it's not as big as you'd suspect) with the two lowest levels having floorheating. I am using a Homematic domotics system to save energy by only running the pumps when needed.
Since then I've fine-tuned some of the scripts. Newer scripts can be found here.
The layout of my house is a little different, with a working area on the ground floor, a living room annex kitchen on the first, one more floor with sleeping rooms and a bath room, and an attick. (Let's call it four layers L0 L1 L2 L3, though of the top layer on half is usable.)
The ground floor and first floor both have a floor heating system. The heating source is a 'city heating' net ('stadsverwarming').
I only want to open the main valve whenever one of the rooms requires heating. In itself the concept is pretty simple: if any of the controlling valves is open then open the main valve, and close it if all of the controlling valves are closed.
Reality was slightly more stubborn though 😑
The ground floor L0 has a floor heating system. There is a dedicated pump under the stairs, which only serves the ground floor. I put the radiator valve and a power switch nearby the water distribution frame, and installed a thermostat in the work room.
There is an open stairway connecting L0 and L1 (how else would one go up? 😉) so heat is always leaking from the ground to the first floor, but that's not a problem.
The first floor L1 has an identical setup: pump and valve nearby the distribution frame, and thermostat in the room. (I should move the thermostat as it could be affected by cooking in the kitchen, but in practice it works well enough not to bother.)
One of the sleeping rooms on the second floor L2 has a controlled valve, directly mounted on the radiator.
The bath room has a mechanical thermostatic valve. It's mounted at the bottom of the radiator, and only closes if the bath room gets really, really hot. I've closed it almost entirely. The bathroom warms up whenever the mainvalve opens, but it never heats up long enough to be too warm.
The last sleeping room on the third floor L3 also has a Homematic valve, mounted directly onto the radiator.
Here's the hydraulic diagram (click on the image to enlarge it):
The concept is pretty simple. If a valve is more than 'x' % open, then open the main valve.
I've deducted this treshold to be around 10%. I've yet to see a situation where the valve HM-CC-RT-DN goes above 0 yet below 10%, and even if that happened it wouldn't affect the system too much. Heating systems tend to be slow.
If a valve of a floorheating system is more than 10 % open, then also run the associated pump. (There's always a set of three elements: thermostat, floorheating valve, switch).
I've used the regular HM-CC-RT-DN valve to control the water flow of a floorheating system, and the regular switch actuator HM-ES-PMSw1-Pl to switch the pump on / off. These components are not intended for such a usage, but they work fine.
To make sure heat is properly spread even if the actual heating has stopped I leave the pumps running for another 15 minutes. If you immediately switch off the pump you run the risk of damaging your floor tiles! When the system was new I used 30 minutes, but have now settled for 15. No cracks yet 😉
The 15 minutes is an empirical number anyway. Testing has shown that the pumps kick in perhaps two to four times a day, at best. If the switch on / switch off frequency would be higher I might increase the delay from 15 to 30 minutes, or even longer.
To make sure the pumps do not get stuck after a summer without usage I also added a 'maintenance run' every friday evening. There all pumps switch on for 15 minutes, regardless of the position of any of the valves.
Let's put that in a diagram, and add a picture of the actual installation:
So the thermostat (1) directly controls the valve (2). The CCU2 reads the valve position, and depending on the position it opens / closes the main city heating valve through a 4 channel switch (6)(7), and switches on / off the ground floor heating pump through the AC actuator (4)(5).
Main valve (7)
This is an easy one. I just check for the valve positions of any Homematic valves, and use a 4 port actuator (6) to open / close it. As an additional security I added a check on temperature and errors. I have serious doubts about the handling of errors by the CCU2, but this program seems to work so I left the check in. (Click to enlarge.)
Floor heating pump (5) ON
I split the on / off mechanism in two different programs. The pump (5) starts running if either the associated valve (2) is open, or on Friday evening.
Floor heating pump (5) OFF
The pump stops running 15 minutes after one of three events: the valve (2) has been closed, it has been the testrun every Friday evening, or every night at 01:00. I added the latter check to make sure it's not wasting energy due to my (programming) mistakes...
Well, it doesn't live, but it works. I've been monitoring the system on a regular basis, created a bunch of diagrams, comparing room temperatures, outside temperatures, and running-time of the pumps. It's easy to see how the valves slowly close once the room temperature approaches the target temperture. Once the target temperature has been reached the valves completely close, yet the pumps keep on running for yet another 15 minutes. Mission accomplished!
An example of such a graph: (room temperature on top, valve opening below that, and on the bottom power consumption of the pumps (indicating run-time).
Keeping the pumps running as little as possible makes sense. We don't need the heating system much. Here's the electricity the pumps used two days ago (using the tablet in the kitchen)...
Yep. The pumps did not run at all. Which actually deserves a little more attention: apparently good insulation 👍 and using too much electricity 👎 kept the house warm enough and the heating system off. I'll add another image on the next cold day...