Underfloor heating project for a HA Newbie

Dear wizards,

I want to try my luck with my first HA project: To replace my underfloor heating controls with a Home Assistant powered system. After having searched the HA website I haven’t found too many systems that look like my setup, but if you have experience with HA I would greatly appreciate your opinion on my initial thoughts.
My skill set is: at home in Linux and OK at python programming. Only simple electronic hardware design skills.

Current setup:

  • I have 10 rooms with underfloor heating. Each room has a wireless temperature sensor
  • The “brain” in the system is a Pettinaroli control box which is not too “smart”.
  • Control box connects to each of the 10 thermal actuators controlling the valves for each room. Actuators are 230VAC (1W) Normally closed. (No 230V power=> no heating). When power is applied, the actuator takes 2-3 minutes to open the valve.

Future setup:

  • New wireless temperature sensor in each room (with or without display) sends temperature every x minutes via e.g. Zigbee/Z-Wave/BLE
  • Hub receives data from temp sensor and relays the info to Home assistant (over LAN/Wifi)
  • HomeAssistant is running (either on a RasPi or my Synology NAS) and setup to receive temperatures from each room and switch on and off the heating for each room
  • Signal to switch heating on or off is sent to relay
  • Relay switches 230VAC on or off controlling the actuator

If you can give me some feedback to some of the below questions I would greatly appreciate it:

  • I have found many different temperature sensors, e.g. from Xiaomi. What sensor and what protocol would you choose
  • Would you buy an off-the-shelf hub (like the Aqara Zigbee M2) or go more diy like ESP32
  • I think I will start my project on a laptop or RasPi and move it to my Synology once it is stable, any thoughts on choice of host platform?
  • What relays would you choose (it would seem that my actuators only draw around 1W which I believe is not enough on some relays) Any recommendation on multi-relays? (fitting 10 single relays is both expensive and takes up space)
  • Your 10 cents ? or suggestions would be more than welcome

Thanks, D

2 Likes

What is your source for warm water to the system? Because my kettle needs a minimum size of the system to work properly. If I would close all zones exept one. The system would not work very well.

Hi Frits. Thanks for taking your time to share your knowledge.
My general source of heating is district heating. My underfloor heating system is of a similar type to this picture:
image
I can close all zones or no zones without any problem.
/D

Ok, district heating will do perfectly for this.

To answer your questions:

  1. I would go with a thermostat per room/zone. But only if you have the money for it. Otherwise a temperature sensor per room/zone would suffice.
  2. I would go with an USB stick. But only if you go with a dedicated system for HA. If you go with the NAS, I would use an off the shelf hub. To prevent any USB relay problems.
  3. Any system will do for HA. I would use a dedicated system though, not the NAS. So you don’t miss your HA when you decide to restart your NAS.
  4. Shelly has a 4channel din relay. Which is very nice.
  5. There is a “simple thermostat card” for Lovelace which is very nice and I use it together with the “scheduler card” to do all my heating needs. It needs some time to put it all together, but once it all works it is great. The only difficult thing to handle is leaving home and especially coming back home.
1 Like

Hi Frits,
Thanks for your feed back. I have done some studying and found some components that I am going to start with for 1 room. This is what I have ordered and waiting for the mail man:

Once it arrives I will probably have some time to install, flash, setup and test the system.
If you (Or any other wizard out there) have any comments or suggestions please share your knowledge. If I am happy with it, I think I will get a NUC to run the HA and do the rest of the rooms.

Thanks for your help so far.

Hi David, interesting idea, please keep us updated with how it is going (and the details).
I would need something similar, but not sure if it is the right solution/possible.

The only difference is that I have gas furnace as main heating source, and use a Sonoff ZigbeeBridge flashed with tasmota for all my zigbee devices (and works wonders).

What I have is in green, what I think :thinking: I need is the rest.
But lots of questions…

am I on the right track ?

1 Like

Hi Guys,

I had to postpone this for a while (to put out other fires) but now I am back on the HA track.
So far I have bought the CC2652 USB dongle and installed it into the HA laptop. I can now receive temperatures from the Aqara Temperature Sensor through Zigbee2MQTT and Mosqito. I have bought Shelly relays (Shelly 1) and that is also integrated in the HA.

Now I need to study the documentation for the Themostat module and connect the dots in there.
More to follow…

@itmp Let me know if you have had any luck.

/David

Stuff used so far:
Laptop (just an old one, later probably Intel NUC)
USB Zigbee receiver: CC2652R stick - slae.sh
Relay: Shelly 1 - Shelly Cloud
Sensor: Wireless Smart Temperature Humidity Sensor | Aqara

So, a brief update from my project. It is running really well…
I have attached 2 zones (rooms) to HA and I will be running them in kind of a beta for the next week or so to evaluate. Two days into the deployment it is working as expected and I am impressed with all the features work out in HA.
I think I will upgrade the outdated laptop to a NUG but no decision yet. I am very happy with the Aqara temp sensors, they seem stabile and reliable. With respect to relays, I am not sure… I am happy with the Shelly 1 that I am using, but I will need 14 zones, an 14 relays will be somewhat clunky to install?
Any good ideas for 230vac relays that work well with HA would be appreciated.

I will report back in a weeks time…
/D

Been using this for 3 months now for the same purpose and so far no hiccups.

2 Likes

Thanks for your feedback @dgztvk

I am looking at getting 6 Sonoff DUALR2 relays. They seem affordable in my geography to get another 12 valves operational. Which relays are you running?

I am also considering to switch off the circulation pump after when no valves are open.

/D

I’m using the 8 relay board to control 5 zones of underfloor heating plus 3 fan coilers. Haven’t had the time to assemble everything just yet but here it is in action


For the temperature I use the Xiaomi LYWSDCGQ and LYWSD03MMC with the ESP home integration. Found it more reliable and cheaper then the Xiaomi Aqara ones plus they have a display :slight_smile:

2 Likes

Hi dgztvk
I followed your example and got a bunch of these relay boards with different number of relays on them.
As I am rather new to 8266, could you give one or two pointers to getting some board sw that will make it available in HA. Is it via MQTT?
Thanks for your help so far

/D

Hi David

Sorry for the late reply, we had the Easter holidays over here :grinning:
The boards are integrated via Esphome as regular switches that are then controlled by the generic thermostat. Here is the code i use

esphome:
  name: central-heating

esp8266:
  board: esp12e

# Enable logging
logger:

# Enable Home Assistant API
api:
web_server:
  port: 80

ota:
  password: "********"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: 192.168.1.125
    # Set this to the IP address of the router. Often ends with .1
    gateway: 192.168.1.1
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Central-Heating Fallback Hotspot"
    password: "*********"

captive_portal:

switch:
  - platform: gpio
    pin: GPIO16
    name: "UnderFloorCat"
  - platform: gpio
    pin: GPIO14
    name: "UnderFloorLivingRoom"
  - platform: gpio
    pin: GPIO12
    name: "UnderFloorHallwayAndBathroom"
  - platform: gpio
    pin: GPIO13
    name: "UnderFloorUpperHallway"
  - platform: gpio
    pin: GPIO15
    name: "UnderFloorMasterBedroomBathroom"
  - platform: gpio
    pin: GPIO0
    name: "UnderFloorUpperBathroom"
  - platform: gpio
    pin: GPIO4
    name: "FancoilerMasterBedroom"
  - platform: gpio
    pin: GPIO5
    name: "FancoilerWorkRoom"
status_led:
  pin:
    number: GPIO2
    inverted: True
1 Like

I’m very interested in this project. However, underfloor hydronic heating is very slow to react. How do you cope with the huge time delays in home assistant? Is it ON/OFF heating, or can the valves be opened in discrete steps? Is there any kind of forecasting to open the valve before the temperature drops under the setpoint?

2 Likes

I am also curious if there is a non-standard thermostat that learns the relationship between temperature and heating time and on this basis can control the opening of the valves.

1 Like

Hi fellows,

It has been a while. My system has gone from testing to working unit.
To the question from @antonclaeys my setup is a mix of floor types. I have 11 zones total, 8 are concrete, and 3 are wooden. The system is water based and consists of a shunt and pump circulating the hot water when the valves are open. Valves are controlled by binary thermal actuators that run on 230VAC. (So valve can be either open [when electricity is on] or closed [no electricity]).
I was not sure how efficient this would be due to the thermal capacity of the concrete floor, but my initial tests proved otherwise. This is a snipping from a (concrete floor) room in my basement:


Temperature varies more or less within 1 degree C and is very easy and the UI is intuitive to work with.
I am super happy with my system, let me know if you would need any details on how I have made my it.
[Disclaimer] I am still very new to HA, but quite satisfied with it so far.

Hi David,

Thanks for the detailed update of your project.
I’m planning to do almost the same like you did, but with the flexibility to have thermostats in each rooms, instead of simple temperature sensors. So if needed, I could set the temperature manually.

Could you or somebody recommend a thermostat which is not linked to any third-party cloud services and can work smoothly with Home Assistant?

Edit: I would like to use my system with floor heating, so I cannot use any radiator based thermostats.

Thanks,
Marcell

Looks absolutely fantastic!
Congratulations on the outcome, @c957031 .

Since I am doing the same exact thing and never managed to get to tune the PID correctly, would you mind sharing your configurations YAML as well as sensor outputs, and any specific details on it you would consider important.

Mine have always been overshooting or responding in a completely nonsensical way, keeping the temperature above the set point ,etc. while I never managed to get the auto-tune to work. I finally gave up, switching it off:

Here an example of this climate entity:

  - platform: smart_thermostat    
    name: Basement thermostat
    unique_id: basement_thermostat
    target_sensor: sensor.basement_temp_rh_temperature
    outdoor_sensor: sensor.outside_temp_rh_bp_temperature
    keep_alive: 
      seconds: 60
    min_temp: 18
    max_temp: 28
    away_temp: 16
    eco_temp: 19
    comfort_temp: 22.5
    precision: 0.1
    sensor_stall: 00:02:00
    output_safety: 20
    heater: switch.basement_floor_heating
    min_cycle_duration: 00:15:00
    kp : 100
    ki : 0.0032
    kd : 220000
    ke: 0.588
    pwm : 02:00:00
    sampling_period: 00:10:00
    preset_sync_mode: sync
    autotune: "ziegler-nichols"
    lookback: 10:00:00
    noiseband: 0.2

It’s been set up maybe a year ago, so the thermostat integration may have changed a bit, so please excuse any YAML idiosyncrasies.

I am certain this will benefit many others and stay here for posterity.
Thank you in advance!

1 Like

Hi Convicte

Opening remark and disclaimer:
I am not at all a pro with HA, Linux or YAML so I will not tell you what you should do but only what I
have done and what works for me. Then you can do your own assessment and find out if it works
for you as well.

I have all my thermostats defined in a file called climate.yaml. They all look like this:
-.platform: generic_thermostat
name: Koekken
heater: switch.heating_relay_kitchen
target_sensor: sensor.koekken_temperature
min_temp: 15
max_temp: 25
ac_mode: false
target_temp: 20
cold_tolerance: 0.1
hot_tolerance: 0
initial_hvac_mode: “off”
away_temp: 18
precision: 0.1

It would seem that you have a different component (not generic_thermostat) and a lot of other
parameters?
My setup is very much the default params…

BR David

1 Like

How I am using Home Assistant to control my underfloor heating

Disclaimer: Below description contains what methods and components I have used to make my heating system work with Home Assistant. I am in no way an expert in HA, Linux, YAML or any related topic and you should only read this as inspiration. If you see anything that could be done smarter, simpler or otherwise better I would like to hear your comment.

My heating control system consist of 3 things:

  1. A temperature monitoring system which covers the whole house.
  2. A Heating control box placed next to the Thermo-Electric Actuators
  3. A laptop PC with HA installed

Temperature monitoring

By reading other people’s recommendations I choose to try the Aqara temperature sensor. https://www.aqara.com/us/temperature_humidity_sensor.html . It is relatively small and discrete and fits the purpose. I got a few samples and tested different locations and was satisfied with the result. I did not want a sensor with a display since I find that I get better results placing the sensors e.g. under the dinner table (close to where I sit) rather than on a cold (external) wall, far from where you mostly are located in the room. The sensor uses Zigbee and I started with a USB-receiver (called a Zigbee coordinator i believe) from https://slae.sh/ which worked fine, and have since also used Ethernet based receiver (coordinator) from smlight.tech. Home | SLZB-06 Manual and this also worked fine. In HA I use Zigbee2MQTT and mosquitto. The information collected is presented in a floor plan which presents all temperature readings and looks like this:

Heating Control box

My underfloor heating is using Thermo-Electric Actuators for opening and closing the valves individually for each of my 12 heating zones.

I am using 2 esp controlled relays (one 8x relay and 1 4x relay) similar to this:

At the time when I did my shopping I couldn’t find a 12 or 16 relay board so I got the two, 4 and 8 relays. The initial programming of the relay boards was done with a USB to serial adaptor. The ESP side of the boards are powered with 5VDC from a small PSU. All parts within the Heating Control Box are screw mounted on a metal perforated plate, the ESP boards with 15mm spacers.

The ESP boards are easily accessible from the ESPHome module inside HA. I do not update them all the time (the frequency of updates to ESP seems quite often) but only once every other month I update the SW over the air. I have not yet experienced the relay boards go offline and become unresponsive, but I have mounted a connector for serial programming if this should ever happen. The ESPs along with some other stuff is separated on a wifi of its own and not accessible from my regular wifi.

The Heating Control Box is also equipped with a temperature sensor just to be able to read if something gets very hot in here.

Home Assistant PC

In the beginning of my HA test runs I didn’t know what kind of hardware platform I wanted so I started with a 10 year old PC and installed the native HA operating system. I am not sure if I am missing out on some cool features by running the other types of install (docker conatiner) but this works well for me. I am looking into upgrading this to another PC but my current solution works well and is not power hungry.

So far I have installed the generic thermostat card in my heating dashboard and this enables me to read current temperatures, set the target temperature and look into the history (checking when the heating was switched on [orange color below])

strong text

3 Likes