Hi there, as heating season begins to be more significant in my area, I’ve decided to show and tell about my aproach to smart home smart heating. To begin, I have water heating - 5 radiators (3 in living room, 1 in bedroom and 1 in kids room) and 2 “branches” of floor heating (hallway/entrance and bathroom) and all of this stuff is connected to manifold. Everything is heated by gas boiler. First problem, which encouraged me to redesign heating system is that floor heating was controled by RTL valves, which were connected to return pipe and as a result floor in bathroom area was either ice cold or depths of hell hot. As some of you may know, to achieve perfect harmony between radiators and floor heating, I should’ve added mixing device for floor heating, but it would cost to much money as all manifold area needed to be redesigned. So, I tried cheaper way first, which looks like, by far, proven itself. So here begins the idea-to-real-life part.
Step 1.
I’ve started by putting temperature senors near all radiators - so total 6 of Xiaomi BLE Temperature & Humidity sensors. 5 near all radiators and one in bathroom. I was lucky enough to have compact house, as all 6 temperature sensors was reachable via bluetooth from heater room. Also, I’ve put one of Sonoff Basic device in bathroom (which also controls bathroom fan) with DHT22 temperature sensor to measure floor temperature, which will help me to keep constant floor temperature.
Step 2.
By the time I could receive and analyze each heat source temperature it was time to start controlling it. I was knocking my head against the wall very long time trying to find a way to controll radiators, because all options was with major flaws - smart thermostatic radiator valves (TRVs) was way too expensive also all of them are battery operated and I don’t like that, as batteries discharges. Wired solution was too “wired and messy”. And one day I realised, that I could do all of controlling at manifold. Few weeks later (and few Aliexpress orders) later I’ve collected all neccesary nuts and bolts to my idea come true:
Don’t mind dirty air bleeder and mess at manifold. Those you see are normally closed (Which means that without power they opens valves they are bolted on. Which is perfect in case of failure), 220V floor heating valve actuators, but instead of controling floor heating, it controls… you’ve guessed it! radiators, and those two on far right - floor heating!
Step 3.
By far I could see temperature at specific locations of my house and ability to controll heating sources. All it was missing was some controller. My chinese friend by the name Aliexpress comes to help again and after few weeks I’ve ended with this badboy:
Meet (from the left) - Sonoff Pow (to reboot / turn off all this device), 5V power supply and *insert drum roll here* 8-channel relay block with built-in slot for raspberry pi. Everything is nicely mounted on din rail. Also, to control floor heating more efficiently, I’ve ended up with 7 units of DS18B20 one wire temperature sensors attached to each of return pipes. Also, I’ve connected Bluetooth USB dongle to receive information from Xiaomi BLE temperature sensors. Ok, so back to relays. I’ve got 5 radiators, 2 floor heating, so 7 devices in total, but as you can see, there is 8th (or 1st on the left) device connected - this is gas boiler thermostat relay.
Step 4.
Now it is time to start controling these things. And boy oh boy it was difficult and interesting at the same time. But let’s start from the start. I’ve got raspberry up and running with debian os. Installed Docker with Portainer (easier administration and maintenance) and NodeRED inside. Then I’ve set up xiaomi-ble-mqtt to periodically publish temperature information. I wont go into tiny details, because it is up to you and your fantasy how you want to control your heating. But basically it works like this: relay controls actuators which opens or closes water flow to radiators in regard of set temparature. If there is at least one of actuators opened, relay no. 1 turns on gas heater and turns off after all actuators closes. With floor heating it is a bit more complicated. Actuator opens only when bathroom floor temperature if fallen below the setpoint AND returning water temperature is below setpoint (35-40 degree Celcius) otherwise actuators closes and protects floor from overheating. All this information is being sent to HA and InfluxDB to draw some nice charts on Grafana:
Top graph shows manifold temperatures (few senors are disconnected due testing reasons). Other 6 graphs shows each heat source data - target temperature, current temperature and blue bar shows percentage of heating per hour. You can see that there is missing hallway / entrance floor heating, and this is because it is controlled “blindly” - without any sensors, just opening actuator for short period of time just to keep floor at entrance a bit warm.
Well this is it. Needless to say, this is the project I am proud the most. It is not perfect, but it perfectly suits my needs: heating started to feel more consistent than before, especially on floor heating in bathroom, on sunny days it reacts much faster, customizable automation, away modes and temperatures (for example, during summer I’m shutting down radiators and leaving only bathroom floor heating). In near future I’m thinking about adding window sensors and implementing that into automations (i.e stop heating when window is opened).
I hope you enjoyed my project as much as I did. And if anyone of you need some details on parts, software, hardware - I’ll be glad to help.