Zone control for Underfloor heating
May 2023
Introduction
Goal of the project: controlling the temperature in the individual zones / rooms by means of Home Assistant, floor heating and a heat pump.
Heat Pump; Daikin Altherma all electric, can also cool
Heat release; underfloor heating through loops at 10 cm throughout the 160m2 house.
I work as an architect in IT so I have knowledge about networking, hardware and software. I can also hold a screwdriver and solder. I have basic knowledge about electronics, I know what relays, diodes, transistors and resistors are. I am rebuilding my entire house and have kids and a 40 hour job, so time is not on my side. Doing home automation for more than 10 years now, FHEM / Domoticz and Home Assistant. In the past I wrote complex software.
Design considerations
In my search for a system that suits me, I came across and considered the following;
- I should be easy to build, I have limited electronics experience
- I should not be to expensive
- I have limited time, it must be able to be mounted quickly
- I rather have âof the shelfâ components, I donât want to much customization
- No cloud / vendor lock in
- It should be save
Requirements
These were my requirements;
- There is underfloor heating on 3 floors
- There are 10 zones that I want to be able to heat / cool independently of each other
- There are 3 underfloor heating distributors with a total of 18 loops and therefore 18 valves to operate
- Must also be able to cool
- Must work with Home Assistant, so Wifi / Zwave of Zigbee
- Safe and trustworthy
- Preferably âoff the shelfâ products
- Be quick and easy to build
- Economically well-considered, one hour my time translates to 100 euro.
Inspiration projects
Of Course I searched for projects that did the same, and I came upon a few;
If I take a good look at this design and try to understand it, I come to the conclusion;
-The relays only open or close, there is no â50 percentâ mode on it. Itâs on or off
-The Thermo-electric actuators therefore only have two possible positions; open or closed. Of course there will be temporary partial passage when switching over.
-You can put more than one Thermo-electric actuator on a relay.
-The Thermo-electric actuators actually use very little power, and have a low impact resistance
This made me realize that itâs just a matter of getting 220 volts to the thermo-electric actuators.
Furthermore, the 'voltlogâs 10 channel valve has been considered as controllerâ;
Nice boards, nice design. But the cons;
- Still pricey, 100 euros each, i would need 3
- out of stock
- 5 Volt power supply required
- Cupboard/box required
- Needs quite a bit building time too
- More complex to set up in Home Assistant, ESP programming / flashing required
Of course the ESP32 relay boards are a lot cheaper, but it also comes with even more work.
Plugwise also has a solution; âplugwise koenâ, that would end up extremely costly, way over 2000 euro.
It does look like a nice all-in-one. But you cannot control these valves from HA directly, you MUST combine them with plugwise thermostats. And we donât want that. So besides the high price, you are also not in control and you need to buy expensive plugwise thermostats.
Groups overview
My situation in detail;
Group / loop / valve | Distributor | Groups (power strip) | Zone / Departure | Switch |
---|---|---|---|---|
1 | Ground floor | 1 x 3 | living room | 1 |
2 | Ground floor | living room | ||
3 | Ground floor | living room | ||
4 | Ground floor | living room | ||
5 | Ground floor | living room | ||
6 | Ground floor | kitchen | 1 | |
7 | Ground floor | Hal/WC | 1 | |
8 | First floor | 1 x 6 | Bedroom A | 1 |
9 | First floor | Bedroom A | ||
10 | First floor | Bedroom B | 1 | |
11 | First floor | Bedroom B | ||
12 | First floor | Bedroom C | 1 | |
13 | First floor | Upstairs | 1 | |
14 | First floor | Laundry room | 1 | |
15 | First floor | Bathroom | 1 | |
16 | Second floor | 1 x 3 | Attic | 1 |
17 | Second floor | Attic | ||
18 | Second floor | Attic | ||
Total | 3 | 2 x 3 fold |
Total number of zones; 10
Total number of underfloor heating loops; 18
power strips; 2 x 3 and 1 x 6 fold
Parts list
Considering all of the above, I was looking for a good way to get 220 volts on the thermo-electric actuators. I came up with the following âoff the shelfâ products;
Around 650 euro for 10 zones with 18 groups, pretty nice imhoâŚ
Cutting down on costs
You could also consider using terminal blocks and thus save costs on junction boxes and euro plugs. This saves you roughly 50-70 euros, but it takes longer to build because you need a different backboard, plus it should preferably be in a box. So, I sticked with the original number of junction boxes.
Cost calculation alternatives
If I were to take the âvoltlogâ valve controller, the total price would be about 764 euros. (3 x 100 euros, plus 5 volt power supplies, boxes and small material. This would also mean at least 8 hours of extra building time ). In addition, these boards are not available at the time of writing. As a result, it is not really an alternative. Iâm not even going to calculate plugwiseâs solution, and the ESP relay boards would be too expensive time wiseâŚ
Hardware construction
The switched and distributed boxes are tied on the peg board using tie-wraps. This makes it manageable and there is enough ventilation. The thermo-electric actuators have very low power consumption, max 1 watt in operation, these switches can easily handle this. Without power they close automatically. Ikeaâs cables are solidly built and the distribution box can easily handle all this. The thermal valves do take minutes to open/close completely, but they are silent. If there is a need for a different power connection, a plug block can easily be placed before a switch module.
Screwing 18 âeuro plugsâ onto the thermo-electric actuators was still the most work. It took me less than one hour to do all 18.
The âeuro plugâ bought for 2 euro per piece with the thermo-electric actuators at 14 euro per piece
Software settings
- Ă skväder switching modules are easy to add to the Zigbee network. Near the on / off button is a small button, if you hold it for 5 seconds it will be added to the Zigbee network. Of course you need to choose âadd deviceâ in Home Assistant on your Zigbee stack.
- Sonoff SNZB-02D are also easy to add to the Zigbee network, pressing the small button for 5 seconds will add them to the Zigbee network.
The Sonoff SNZB-02D
Next thing you need is to define a thermostat in Home Assistant. Attach it to the correct temperature sensor
Then you can make a thermostat, you have to connect it to the temperature measurement and to the relevant à skväder that opens the correct valve(s);
In my case I had to define 10 thermostats in Home Assistant using the following code;
climate:
- platform: generic_thermostat
name: Master bedroom thermostat
heater: switch.ikea_of_sweden_askvader_on_off_switch_switch_6
target_sensor: sensor.sonoff_masterbedroom_temperature
min_temp: 7
max_temp: 21
ac_mode: false
target_temp: 17
cold_tolerance: 0.3
hot_tolerance: 0
min_cycle_duration:
seconds: 5
initial_hvac_mode: "off"
away_temp: 16
precision: 0.1
After a reboot you can add the thermostats in lovelace;
Iâve added to turn off / on the heatpump when one of the zones go on / off;
alias: Zet warmtepomp aan als er een zone open gaat
description: ââ
trigger:
- platform: device
type: turned_on
device_id: 32722bfab06cdb74e2
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_7
domain: switch - platform: device
type: turned_on
device_id: 5d9eec50f814595c973
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_5
domain: switch - platform: device
type: turned_on
device_id: 9fbe10ffddf3769832d3
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_9
domain: switch - platform: device
type: turned_on
device_id: ace4aca2d0929b21
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch
domain: switch - platform: device
type: turned_on
device_id: 34d46b1b4be21b1120f
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_4
domain: switch - platform: device
type: turned_on
device_id: db2d860c7ec2d78fee2b9
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_6
domain: switch - platform: device
type: turned_on
device_id: 5321673a0f7f8d9a23
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_8
domain: switch - platform: device
type: turned_on
device_id: 090c375f94bfc9d
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_3
domain: switch - platform: device
type: turned_on
device_id: 54abd5c09737a17d2
entity_id: switch.askvader_zolder_switch_10
domain: switch
condition: - condition: or
conditions:- condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_3
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_4
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_5
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_6
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_7
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_8
state: âonâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_9
state: âonâ - condition: state
entity_id: switch.askvader_zolder_switch_10
state: âonâ
action:
- condition: state
- device_id: e13478746f4237fa7
domain: select
entity_id: select.espaltherma_thermostat
type: select_option
option: Heating
mode: single
alias: turn off heatpump
description: ââ
trigger:
- platform: device
type: turned_off
device_id: 32722bfab06cdb7
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_7
domain: switch - platform: device
type: turned_off
device_id: 5d9eec50f814595c
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_5
domain: switch - platform: device
type: turned_off
device_id: 9fbe10ffddf3769832
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_9
domain: switch - platform: device
type: turned_off
device_id: ace4aca2d0929b21d
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch
domain: switch - platform: device
type: turned_off
device_id: 34d46b1b4be21b1120
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_4
domain: switch - platform: device
type: turned_off
device_id: db2d860c7ec2d78fe
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_6
domain: switch - platform: device
type: turned_off
device_id: 5321673a0f7f8d9a
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_8
domain: switch - platform: device
type: turned_off
device_id: 090c375f94bfc9d076
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_3
domain: switch - platform: device
type: turned_off
device_id: 54abd5c09737a17
entity_id: switch.askvader_zolder_switch_10
domain: switch
condition: - condition: and
conditions:- condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_3
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_4
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_5
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_6
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_7
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_8
state: âoffâ - condition: state
entity_id: switch.ikea_of_sweden_askvader_on_off_switch_switch_9
state: âoffâ - condition: state
entity_id: switch.askvader_zolder_switch_10
state: âoffâ
action:
- condition: state
- device_id: e13478746f4237fa7c
domain: select
entity_id: select.espaltherma_thermostat
type: select_option
option: âOffâ
mode: single