Ultimate home heating system

I will be improving my home heating system as it is currently as basic as it gets: on/off boiler with manually operated radiators. I have been looking for a solution that integrates well with Home Assistant but was having some trouble finding one that ticked all my requirements. Therefore, I am posting here my list of requirements and the results of my research to start a discussion and hopefully converge to a proper solution.

Requirements shortlist

  1. A functional zone heating system with temperature control per room
  2. Preheat rooms such that they are heated when someone enters, this requires the following subrequirements:
    a. Predict home arrival time
    b. Predict room occupancy
    c. Calculate the heatup time of rooms
  3. Predict changes in the target temperature per room (during a day or seasonally)
  4. Lower target temperatures when no one is home or when no occupancy is expected in a room
  5. Save energy by optimizing the heating behavior by taking the following into consideration:
    a. The forecast for the weather (temp, humidity, wind)
    b. The variation of electricity/gas tarifs
    c. The prediction of solar cell power
  6. Save energy by controlling passive heating by:
    a. Opening/closing window covers
    b. …?

1: A functional zone heating system with temperature control per room

My house heating system consist of a central boiler with floor heating in the living room and radiators in other rooms. I envision the following setup:

Smart TRV’s make sure that the target temperature in a room is reached by controlling its valve opening based on the current temperature measured by an external sensor in the room. The valve opening should be controlled using PID, this can be done on the TRV itself (you send the target temperature to the TRV) or in home assistant (you send the valve opening % to the TRV). The PID controller should be able to cope with water temperature changes as the temperature of the water only determines how fast the room reaches the target temperature because a larger difference in temperature between the radiators and the room results in more heat dissipation.

The central boiler should supply the radiators with hot water. To increase temperatures quickly, very hot (e.g. 60 °C) water is needed, to keep rooms at consistent temperature, warm (e.g. 40 °C) water is required. The outlet temperature is defined by a PID controller that uses the largest temperature offset of all rooms as its input (rooms with floor heating can be excluded as lower water temperatures are generally sufficient for these systems). To control the boiler outlet temperature, the boiler should support opentherm. An ESP based OpenTherm gateway communicates the required outlet temperature to the boiler.

Hardware/software:

2: Preheat rooms such that they are heated when someone enters

Preheat rooms based on the predicted arrival time or room occupancy time such that the target temperature is reached when you are home/enter a room. For this the time it takes to heat up a room to the target temperature needs to be known (the time constants of the rooms). When occupancy is expected to be shorter than e.g. 1 hour, no preheating will be done.

2a: Predict home arrival time

Predict arrival time using current phone gps data (location, velocity vector, time of day etc.) and a model that uses historic device gps data. This can be done in Home Assistant: Import historic data in python, create machine learning model, predict arrival time based on current input.

2b: Predict room occupancy

Similar to the prediction of arrival time, but for rooms the input data of the model is the historic occupancy data of the rooms: Import historic data in python, create machine learning model, predict room occupancy based on time of day, weekday etc. For hardware this requires occupancy sensors (probably mmWave sensors).

2c: Calculate the heatup time of rooms

The time constants of the rooms can be estimated from historical data by measuring the time it takes for the room’s temperature to reach 63.2% of the way from the initial temperature to the setpoint temperature. This can also be done in Home Assistant using python.

3: Predict changes in the target temperature per room (during a day or seasonally)

The target temperature can be predicted based on historic data to account for different temperature requirements during a day or between seasons.

4: Lower target temperatures when no one is home or when no occupancy is expected in a room

When everyone has left the house, the target temperature will lower (heating set to off when the system can also cool). The time constants and proximity of people can be used to define the target temperature when away such that there will be enough time for the rooms to heat up when returning home. The target temperature in rooms where no occupancy is expected for a long period (e.g. during the night) will also be lowered. There should be a minimum temperature, these automations can be done using Home Assistant.

5: Save energy by optimizing the heating behavior

When the outside temperature will rise quickly, less preheating might be required. Also, when the energy tariff will increase in the coming hours, starting the preheating process earlier is beneficial. For solar cell power, adapting the power usage such that it corresponds with solar production is beneficial.

6: Save energy by controlling passive heating

When heating is required and the sun is shining, opening window covers will help heat a room. To keep heat out, window covers can be closed.

Why a custom system over off-the-shelf systems?

Instead of going through all the effort of combining TRV’s with an opentherm gateway as listed for requirement 1, I can also buy an off the shelf system that has a central unit connected to the central boiler and smart TRV’s, take Tado as an example. I would then be missing the room occupancy prediction and a tight integration with solar panels, the occupancy prediction can be added using Home Assistant but letting Tado know when solar production is high will be difficult. Alternatively, smart functionality of the Tado system can be switched off such that it is a simple zone heating system, all requirements except for the first and the energy optimization can then be implemented using Home Assistant, giving similar results (less effort but more expensive).

Conclusion

Concluding, I feel like going the pure Home Assistant route is still a bit hacky and I don’t know which problems I will still encounter. On the other hand buying an off the shelf system like Tado feels like it’s not a full solution, which is emphasized by the following reasons:

  • Systems like Tado can do smart things, but will never have the amount of sensor data that is possible with home assistant and the level of integration.
  • Systems like Tado need to keep their users happy. As the average user probably uses their thermostat similar to a “dumb” one (manual control and scheduling), agressieve optimization and prediction using models that might not always be 100% correct can lead to complaints. My expectation is that systems like Tado do use these models, but very subtle.
  • Systems like Tado are not local. (Local is better, but I don’t care too much about this)
1 Like

Until Tado goes out of business and closes it servers in the middle of the winter…
Anyway, there is quite big difference between what you would like to have and what Tado can offer.

Depending on where the underfloor heating regulator is then it might not work at all with a TRV.
TRVs are “smart” and regulate based on the temperature around it and if it’s in the basement or in a utility room or behind a small hatch on the wall then it will not work as intended.
There are two options to get TRVs to work then, get a “high end” version that can have an external temperature sensor or create a second thermostat in HA that controls the first thermostat.
If the pipes are in the wall then it might not work even with a software thermostat.

I’m very biased, I’ll be honest about that.
But that is also because I had TRVs and know how much problems they caused me. Some might find them great.
But for us they were too loud, the sound of metal against metal grinding and then propagating through the radiator meant you can hear them across the home.
If you are light sleeper or about to fall asleep then it will wake you up.
They eat batteries like nothing else.
When the batteries goes low then it won’t have the strength to close the valve and there is nothing that will report that it failed (possibly a temp sensor).

So I’m biased for thermal actuators.
They are pretty much the same as TRVs but the dumb version that just does as it’s told to.
It doesn’t have a temp sensor so you need to get an external, but most likely you would have needed that anyways.
Because the movement is linear and not spinning as in a TRV it will push the pin in the radiators silent.
It makes so little sound that you really have to pay attention to hear it, and the water rushing in makes more sound.
The only downside is that they require an external temperature sensor, some kind of switch/smart plug.
The cost of smart plug, thermal actuator and temperature sensor is about the same as a low to medium end TRV.
If you want to get more precision in the valve opening then you need to spend more money on actuator than TRV.

Regarding the rest, with home/away mode, sun/passive heating is just automations.
Depending on what your system will be the implementation of the automation might doffer slightly

Regarding the temperature measurement in a room, i indeed want to have this external to any sort of valve attached to a radiator. Somewhere central in the room.

I also had a look at thermal actuators, but as far as i could find they are only on/off, no exact valve control. When the temperature in a room has reached the target temperature, you preferably still want a little water flow to compensate for the heat loss of the room, an on/off valve will then need to constantly cycle.

So it basically comes down to a trade-off: more reliable, and silent thermal actuators with less precise temperature control vs smart TRV’s that might suffer from the issues you described but with proper valve control.

There are PWM controlled actuators.

But just on/off is not an issue in my opinion.
It’s not cold enough yet for the radiators to be on all the time and the sun still heats up to turn off the radiators.
But if you look at between 1 and 2 October, three times during that night did the radiator come on and give short bursts of heat, then we left home in the morning so all radiators shut off.

The temperature fluctuate in the range it should.
I could tighten the allowed range but this is good enough for us.
We don’t need it to be more accurate.
And even when the radiator is off there are still some hot water in the radiator.