DIY OpenTherm Thermostat?

You should compare temperatures, not topics. Ill be back at my workstation in a few days and try to help you.

i used the topic to get the values but I believe it doesn’t work like that .
i appreciate if you could help

Hi
That thing wouldn’t work:

heatingEnabled = CURRENT_TEMP_GET_TOPIC < TEMP_SETPOINT_GET_TOPIC;

you need to compare temperatures, not topics. Here is the change you need:

heatingEnabled = t < sp;

you should place it before Line ~90

ot.setBoilerStatus(...)

@Ron365 FYI, i think that is the option you needed.

many many thanks i would like to have a sensosr that tells me the ot.isflameon, hou can i do that. if not pushing too much

@shcherban, very nice topic and thanks for all the information! I have a Vaillant boiler and i want to start smart heating for every room in the house independently. Do you see this working with the DIY OpenTherm thermostat? Do you have experience with such a setup?

For sure, currently im using such a setup in my house. However i have quite dumb system, when boiler temperature is driven by the coldest room (or a room where i’m currently in) and the rest ones are controlled by wall units. Its working great, even felt some gas economy. All my radiators has thermoelectric valves which i can control. Currently in a few weeks i start to work on my setup to turn it into fully automatic, because for now ‘master’ room is defined once and thats it, and i want my system to track setpoints and decide itself which room gets ‘master’ and drive boiler accordingly. And i think i’ll use a node-red for automation because writing complex logic and conditions gets damn hard in HA and much easier (at least for me) in nodered blocky style or javascript code.
Also you can get some ideas from here.

1 Like

put this into configuration.yaml after sensor: section:

- platform: mqtt
  name: "OT flame enable"
  state_topic: "opentherm-thermostat/flame-status/get"
  value_template: "{{ value }}"
  unit_of_measurement: ''
  icon: mdi:thermometer

Hello. I just got my master shield and D1 mini. I went already through many articles so I think I got some common understanding on how it works. What I’m wondering however is … how can I use it with external (outside) temp sensor so that boiler could use it’s one of predefined heating curves. Normally when I connect external temp directly to boiler it will automatically block possibility for setting up a heating temp, instead boiler will give ma a possibility to chose one of the heating curves. I’m wondering how could I achieve similar effect with this opentherm termostat.

It is not totaly clear to me what you try to accomplish.
you want to attach external temperature probe to the opentherm thermostat? then you have to implement “heating curve” logic by yourself in the thermostat sketch.
if temperature probe is attached to the boiler - you should read the manuals, some boilers allows ‘weather dependent’ regulation through opentherm using internal boilers curves, however you also need to write a custom sketch whcih will issue the right commands to the boiler.
And if youre using weather-dependent regulation - there is no much profit from opentherm other than just monitoring a few params.

Frankly speaking … until now … I was under impression that weather dependent regulation might be the most effective option (it it comes to simple setups). Now, when I give it a second thought … it might be a better option to put a temp sensor in the space (room) I’m spending the most time during the day and use opentherm termostat to control the boiler. I have seen your article describing usage of additional blue tooth temp sensor (if no cables around) and this might get things done from me. However … there is still one thing I can’t stop thinking about. My heating installation is combination of floor heating (one open space downstairs) and radiators on the first floor. Open therm is going to control the boiler to keep my open space (floor heating) temp as close to target temp as possible. Unfortunately radiators require higher temperature than a floor heating and therefore when I get to point where target temperature hits the actual room temperature, the boiler temp will go way lower to what it need to be in order to hit my radiators on the first floor. I guess I will need to experiment a bit to see on how it really goes.

You could average multiple sensors across multiple rooms and heating types and use that average to feed the opentherm modulation? But that would risk overheating the room with the underfloor heating for a period until the radiators are up to temperature…

You cant just average or control by just floor temp. It would over or underheat. For maximal comfort you need separate control loops for floor and boiler and hidraulic separation for floor loop.So boiler feeds radiators with higher temperature and floor via hidraulic separator takes exact amount of heat it needs.

1 Like

I’m aware of that, hence I said it will overheat.
But if he doesn’t want the hassle of replumbing then it’s AN option.
As you say best option is separating it all out (I plan on doing this with thermal actuators on each rad instead of replumbing)

The different heating modes and complexity with controlling with HA is what put me off putting in underfloor heating while I’m tearing up the floors in my new house.

Thanks a lot Taras. You’re right. Actually I have all of this in place already. Floor heating loops are separated from radiators loop. I can manually (no electric valves yet) decrease water flow for floor heating and that should help me to keep boiler temperature high enough to hit my radiators. Of course that will take some testing from my end, but I guess it’s to be done. I can already control my radiators through zigbee thermostats and later I will install electric valves to control floor loops. On the top of everything there is Home Assistant to control all elements.

Excited to see the progress on this. I’m just waiting on a few different kinds of zigbee trvs to arrive from Aliexpress and I’ll be looking at a solution like this.

Ron did you ever amend the sketch to include this? Might save me some time working it out.

@shcherban I’ve just moved over to the Master OpenTherm Shield and everything is working as described in your posts and sketch but my knowledge at the moment is lacking on boilers and opentherm.

If I set the temp to 12C on climate card my boiler target temperature will stick at 20C. The boiler target temp will not drop below 20C, it will go above this no problem but not below, is this likely by design of the boiler? It’s an IDEAL LOGIC+ COMBI C30, I’ve reviewed a few of the manuals but can’t see anything that says 20C is lowest it can be set, any other ideas?

Thats the target of the Boiler Temp and it defaults to 20 degrees what is the normal standby temp.
Unless you have a buffer next to your boiler it wont matter.

Depending on your actual temp and setpoint the PID calculation will decide how high the target temp will be. So if the actual temp is 19 and your setpoint is 20 it will prob do something like 45 degrees as target. If the difference is higher it will go hotter, but thats the temp of water going through your radiators.

Tldr: target temp is how hot the water is in your radiator. Its not the setpoint.

The 20 degrees should be set in the sketch if you wanted to change it. But unless you have a good reason, dont.

1 Like

It is by ‘design’ of thermostat. I’ve been doing all the development and testing of Master/Thermostat shield on my heating system, and my boiler (ViessMann some condensing unit) does not allow set temp below 20. Also there is no reason going below this temp, better is to shut off boiler and pump completely to save electricity rather than circulating 15-20 degrees water over pipes.
I have not implemented full shutdown for a security reasons. If something goes wrong (MQTT/HomeAssistant hangs, PID calculation fails, thermometer sends incorrect data) boiler would kept at minimum temperature to avoid freezing (for a cases when boiler and thermostat are left in some remote environment where you cant keep an eye on it).
But again, this is more for ‘conventional’ heating system with radiators and floors. If you have some tricky setup that can utilize heat from such a low water temperature - you can easily edit sketch to allow boiler target below 20.
Here’s the code:
image

Thank you for the breakdown, that makes a lot more sense to me now. I really should of read more about standard boiler operation before migrating across. Just excited to get away from my unreliable Tado setup.

@shcherban

Thank you for the explanation and I understand the rational on why the sketch doesn’t include a “full shutdown” as standard when you factor in potential MQTT/HA disconnects etc.

I have conventional heating (combi boiler) and radiators, nothing fancy, I was confused between target temp and setpoint (RTFM moment from myself).

I’ve been using the Tado system for a few years and I’m just getting my head around the differences and the changes I’m seeing in gas usage. I’m assuming Tado implemented a “full shutdown” when the setpoint was reached as I’d use no gas when the Tado was manually “turned off” or when setpoint was reached.

Since implementing this solution I’m seeing gas usage (not a lot) even if the climate card is off or setpoint is reached, I understand this now from your explanation above and in a few previous comments. However it was a difference in data and I was ignorant to the facts but just to confirm if I wanted to implement a similar system to the Tado I’d need to build in the “full shutdown” into the sketch like you advised @Ron365 ?

@shcherban Just one more question. I have followed DYI OpenTherm Thermostat blog, and I found an article on how to use external bluetooth sensor to feed thermostat with room temp data wirelessly. As I understood, in order to build that king of thermostat I need to use Tasmota firmware on my ESP board. The question I have is. How can I get tasmotized thermostat in to my Home assistant installation? There is another great article (on the blog) showing on how to add this thermostat to HA, but that particular one is running your firmware. I understand that in both cases thermostat talks to HA via MQTT so I’m guessing it’s going to be very similar, if not the same, if comes to getting both these thermostat options to HA?