Opentherm gateway/thermostat with full integration for Home Assistant

Awesome work. Thank you so much. I have purchased a DIYLESS board to test it with my boiler. I will comment on impressions. Do you intend to integrate valves into the equation?

This looks great, thanks a lot! Is there a way I can get the board assembled somewhere for a reasonable price?

Maybe this one?

1 Like

Thanks for the feedback! :slight_smile:

I don’t think esp8266 has enough resources for this. However, I added the ability to output heating status to any pin ESP. You can use solid-state relays with optocoupler, which can be controlled from 3V, by connecting them to the ESP.
Or you can use Zigbee relays and control them via automation in HA.

1 Like

You can assemble the device yourself. I order boards from jlcpcb, Gerber and BOM files are available in the repository on Github. Or buy boards for ESP from Ihor Melnik or DIYLESS.

1 Like

Got it, thank you. I will probably just get it from DIYLESS. If someone could double-check my reasoning about this device for my project on this boiler, I would greatly appreciate it.

Users reported that the firmware works correctly with the Viessmann Vitodens 0-50w boiler. This is a boiler that is similar to your boiler.

Morning, appologies if this is not the right place to post this, I had a look for a dedicated “area” to discuss the OpenTherm gatway for HA/ OTGA but this was the only thing I found which is a thread.

so I suppose two questions.

  1. Is there a general area to discuss this intergration?
  2. If not, is there any way to change the max_ch_setpoint on the boiler, in a similar way that can be done via the OpenTherm monitor software?

My house is predominantly wet underfloor heating, and as such having the boiler set much above even 50C is not required.

So my ideal, I believe would be to have an automation that if just underfloor heating is calling for heat, then have the max set to 50C, however if the hot water tank is calling for heat, bump that up to say 65.

I did find SERVICE OPENTHERM_GW.SET_CONTROL_SETPOINT however I don’t believe that is what I want.

For the record, I don’t have two controls set up where one is Hot water and the other is heating, it’s all coming on as “central heating”

I think you have a three-way valve installed that redirects the flow of heat carrier from the heating system to heating the water tank. You need to monitor the state of this valve and change the heating temperature depending on the state of the valve: if the valve is open for heating, then set it to 50 degrees, if the valve is open for the water tank, then 65.

Thanks for the reply @LazyDev, the problem was with the HA intergration I was struggling to see how to set that value.

Or is it a case of using OPENTHERM_GW.SET_CONTROL_SETPOINT which from the docs of the integration appears to suggest that this will activate the central heating circuit.

Using the OpenTherm monitor, I know I can simply set the “Max CH setpoint”, which does what I’m looking for, I was hoping with HA integration I could chnage that depending on what was calling for heat.

wow, amazing project and exacty what i was looking for. I have Vitodens gas heater and air-water heatpump in same system and want to switch them related to electricity/gas price and COP, so that I have the most cost effective outcome.

Good idea, I did that too. An electric boiler is used at night, and a gas boiler during the day. Savings of about 30%.

cool. i ordered the opentherm themostat and closure and so excited already. I really thought i cannot make my gas heater smart.

1 Like

Good day all

I don’t suppose anyone has any more thoughts around this?

I ordered this: OpenTherm Thermostat - DIYLESS Electronics
Flashed with latest firmware: firmware_nodemcu_32s_1.3.3.factory.bin

Got it up and running but every home assitant entity is unavailable and looks like OpentTherm connection with boiler is not working.Whats interesting is that it worked with the same hardware and firmware that i came with. I have Vitodens 100w.

I checked that gpio pins should be correct (21, 22)

How can i troubleshoot what could cause the issue @LazyDev ?

EDIT: Got it sorted out. There will be a 1.4.0 relase that will solve the issue

3 Likes

I hav now used OTGetaway for few weeks with equitherm logic and it works well.

However I have floor heating and using Uponor Smatrix collector control solution which is quite smart and can predict thermal inertia etc.

When collectors are in closed state it’s does not have a point for gas heater to be on as the hot water is not flowing in the under floor heating.

So I would like to turn on gas heater only when any of the floor heating contours are in open state. I have this information in Home Assitant. For example one:

Idle means off and heating means on. I can group all contours together so that if any of them is on I can make automation to turn on the gas heater.

But now I need some idea for a solution to turn gas heater on/off but at same time retain the heating temp vs outside temp logic. So basically use only heating curve and gas heater on/off will be controlled by automation.

@LazyDev , do you have any ideas how to do it?

1 Like

Is it possible to change target_temp_step: 0.5 to 0.1?

edit: configuration.yaml

homeassistant:
   customize: !include customize.yaml

customize.yaml

climate.opentherm_heating:
    target_temp_step: 0.1

Good day, a great project that I’ve been looking for for a long time, thanks to your work, everything works as it should, but the automation doesn’t work, I still have an error, I copy your code into automation yaml, can you help me with this? Error loading /config/configuration.yaml: while parsing a block collection
in “/config/automations.yaml”, line 1, column 1
expected , but found ‘?’
in “/config/automations.yaml”, line 62, column 1 excuse my english google translator

this problem solved

problem 2
entity not available sensor opentherm indoor temp if I switch the indoor temperature source to manual, the entity disappears

That’s right. In the “Manual” mode, a number entity will appear; the value can be changed manually or in automation.