DIY OpenTherm Thermostat?

Hi there,

I finaly got the thermostat online.
I set the temp in de lovelacecard at 20 deg, and the heating starts doing its job.
But after it reaches his setpoint it continues heating, even when i decrease the setpoint too 15 again.
What goes wrong here?
Maybe someone has an idea?

Well, it continuously adjusts boiler temperature and never shuts it down. Itā€™s by design to utilize condensing mode.

But a thermostat is used to control the room temp, now it gets warmer in my room than I want.
Even when i set the room temp to 18deg it warms the room up to 22 or so.
I dont think thats how it should work.

I thought opentherm thermostats modulate flow temp only when heat is called for?

Eg: If its the first fire of the day it gives it the full beans, if its a top up then it will use as little gas as possible to nudge the temp up. But if the setpoint has been reached or exceeded it turns off the boiler (leaving the pump going for a time afterwards).

Even if the boiler is being forced into condensing mode more often (with its good), if heat isnā€™t being called for but its sitting there burning gas but its at least condensing them itā€™s wasting gas (which is bad)?

I really dont understand,

With this OT thermostat, my boilers is always modulating between 33 an 45 deg, even when the room is at its setpoint?
Then where is the setpoint of the lovelacecard used for?
how can I then stop the heating?

thats strange, what is you boiler model?
in my setup its modulating between 29-63Ā°C, and below 29Ā°C its not able to heat room anymore. My usual temperature is 21.5Ā°C, and if i set 18 - it instantly goes down to 29 (no flame, pump running) and stays here until room gets colder than 18.

that is for comfort, to not ove/under rheat the room. It would heat more if room is under setpoint and less, if is over.


Yellow is room (right axis), green/blue - boiler (left axis)

For simple on-off mode you dont need opentherm, a simple relay would work.

Do you have some plots of your setup where we can see temperatures and setpoints?

Agreed. However arenā€™t you seeing higher gas usage with Opentherm than without opentherm? I thought opentherm was designed to lower gas usage and increase comfort through modulation? However surely If it is on and modulating even when the Room is above setpoint it is not saving gas?

EDIT:
I missed this part of your other reply:

NOW it makes sense to meā€¦ So if the boiler temp is set to its lowest operating temperature it doesnt use gas, and instead flows the existing heat around until the room gets too cold. THEN it will modulate?

Yep, it sets boiler temp to lowest and waits until water gets colder than boiler threshold. Then it will quickly heat water to 29 and turn off burner
We designed in that way because we have floor heating also attached to the same boiler, so not to allow floor get cold.
Gas usage went down 10 to 22% compared to setup without thermostat. I think there is more efficient algorithm, if we find it - we will let you all know)
One of ideas is to turn boiler off if room is >= 0.1 deg above setpoint, and turn back on if below by 0.1. and then use PID somehow to modulate, this might give more gas economy, ill try play around if get some time for it.
Increasing thresholds would decrease gas usage a bit but also temperature in the room will be fluctuating more

1 Like

That would be great - I donā€™t have any under floor heating so no need to needlessly cycle.

Also if you do make the changes you mention above. I would suggest setting the threshold to 0.3 or 0.5?
All of my thermostats in previous houses used a 0.5c float (turn off 0.5 above and turn on at 0.5 below). I used to be able to feel the temperature change just as the heating clicked back on (0.5c below setpoint) so I imagine 0.3c would be fine for most people and would also aid Gas usage in more boiler off time.

Are you sure it is soldered well? What is your minimum boiler temperature? If u lower that to 30 it will not keep on heating.
What boiler do you use?

@shcherban I donā€™t have an outside unit from my boiler. Although, I have temperature data from outside. Ihor Melnyk did not add a Opentherm::set_outdoor line in his library, although he hass the following message-id in his script: Toutside.

Would it be possible if I write a piece of code to that message-id in the main script we are using? Or do I need to adapt the script of Ihor locally and work with a local copy?

You need to use the source code of his github. The diyless site is outdated

I had that before. It results in a lot of burner starts, consuming a lot of energy. Now I have an automation in home assistant that the boiler switches off from the moment current temp is 2 degrees higher than setting temp. So during night and away we have no gas consumption. The 29 degree rule still consumes some energy to keep the water at 29 degrees.

Somehow my boiler doesnā€™t adhere to this ruleā€¦


Nevermind the part before 16:00. That was when I was working on it.

Even though the target temperature > setpoint, and the boiler target temperature is at 20 (have set oplo to 20), the boiler seems keep pretending that it is 30 degrees and keep reheating the the water.

This is really annoying because these days it means that it will be around 22 degrees inside.

This is not the expected behaviour, right?

Hello everyone, my apologies if this isnĀ“t the right place, but IĀ“m looking for some advice regarding this nifty piece of software.

The situation: I find myself working from home a lot more than a few years back (same for my partner) and we came to realization that weā€™re almost always heating the whole house during the daytime, while (often during weekdays) only one room is in use. Some kind of automation is in order. We only have a boiler with radiators, no underfloor heating or anything.

The initial idea was to use a relay and smart TVRs to get that desired room control. My electrician (whose also into home automation) had a look, said Iā€™d need opentherm and suggested this solution. The hardware is ordered and underway, now Iā€™m trying to wrap my head around the implications and requirements. (Perhaps thatā€™s the wrong way round)

Realistically speaking, there are 4 rooms that could require heating (living room, bathroom, my office and girlfriendā€™s office), in different possible combinations depending on whoā€™s home, what day it is, ā€¦ Iā€™m thinking I would need to create templates and/or automations to determine which of the ā€˜activeā€™ rooms (TVR thermostat) has the highest temperature demand and set that as the temperature in the opentherm thermostat. I would also need to adapt the temperature sensor value depending on the master room (Friend Google seems to inform me that templates can be used in the MQTT publish service) so the correct comparison is made.

The reasoning is that I would need to set the max required temperature at the boiler (perhaps with an offset for hot/cold rooms) to get the necessary heat and that rooms with a lower demand would regulate themselves by closing the TVR a bit. Inactive rooms would either be closed completely or in eco mode (say 18Ā°-19Ā°C ish)

Does this sound logical or am I trying to use the wrong tool for the job? Thanks in advance!

1 Like

Hello, I would like to ask about my setup and possible options that could be done.
I have a house with Gas heating with Viessmann boiler vitodens 100-W. I have only floor heating. As I was not satisfied with one room temperature termostat for heating (some rooms were too hot some cold and I could not set it up with rotameters) and I decided to build my own smart heating control system based on Homeassistant. I bought Valve actuators for each heating loop (normally closed one on 230 V) and control it with Sonoffs. Each room has an Aqara Temp sensor. Everything is controlled with Home Assistant and build in termostats (each room is steered seperately). Also boiler is being actuated via sonoff once any od the heating loop is open and requests heating. What I am missing and would love to accomplish to current setup is adding possibility to set remotely boiler heating water temp (from HA) and possibility to read some parameteres from boiler. I am not sure if this would be possible with opentherm as i understand when i connect it, It will work then as a seperate termostat for whole house and it will not work asi would like to. In that case would i need to have in each room Opentherm installed and connected as slave to control each room seperately?

For sure its possible. Opentherm is for controlling the boiler, it isnt restricted to thermostatic use only. You will need just one master to control boiler, and rooms youā€™re already controlling via valves and aqara. You can set a constant heating water temperature (or weather dependent, or by coldest room whatever).

Iā€™m setting up something similar, with valve actuators and one opentherm thermostat (diyless), but no floor heating. Iā€™m currently testing with one room only. Because of the modulation, i see the that the target boiler temperature fluctuates a lot, and hence also the boiler temperature, causing the boiler to start and stop a lot. This happens when the room has not reached itā€™s target temperature. I would expect this maybe when the room is at temperature. Because of this, it takes a too long to heat up a room with for example 5 degrees.
So i think maybe for heating up the room to itā€™s temperature it is better to used a fixed boiler target temperature? This is what the override boiler target temperature is used for? Of course itā€™s not so much modulating then, but i could automate this for example by using fixed water temperature when the room temperature is more than 1 degrees colder than the target temperature, and modulation when when the room temperature is less then 1 degrees colder than the target temperature. The boiler itself will always try to modulate to the requested temperature.
Why is it the calculated boiler temperature is fluctuating so much when the room is not at the requested temperature yet?
Also i can set in the boiler a minimum (ā€˜footā€™) and maximum temperature, i think these are used for on/off thermostats and have no influence when using opentherm. My outside weather sensor is disconnected form the boiler.
(boiler is opentherm compatible, is remeha quinta 45 pro)

Can you show graph example of such a fluctuation?
Boiler temp is calculated based on

  1. difference between room target and room actual
  2. room actual rise speed

Using PID algorithm.
That approach guarantees that there will be no overshoot after room reaches target, however not ideal in terms of heating speed. Might be a good point to heat with configured maximum until difference is 1 degree or less, externally you can do it using temp override.

causing the boiler to start and stop a lot

In general - boiler will cycle on-off to maintain water temperature after it modulated flame level to minimum and water temperature is still rising.
So for your case seems heating demand is below boilerā€™s minimum output power (for remeha quinta 45 pro its 8 kw, roughly power demand of 80 mĀ²).