ESPHome + Opentherm Compilation

Not yet, but I plan to add numerical overrides shortly for my own benefit: [Request] Support overrides for numerical values · Issue #2 · Reproduktor/esphome-OpenthermGW · GitHub

However, I’m not sure this would directly help you. I do not know what thermostat/boiler combination you have, but the setup I have (and as far as I read - the usual setup) is that the master device controls the heating on a finer level (requesting the heating circuit temperature). It passes the room setpoint to the boiler, but the boiler does nothing with it. Your setup may be different though. Watch the project on the GitHub, and you can try it out once I have it out (I hope it will be before/over the weekend, but I have some other things happening… no promises there, sorry.

hi @Reproduktor , i tested your repository and looks good, thx for your work :slight_smile: … it is possible also to add some climate, to control DHW and HW temperature?

Hi @Mio3000 , Climate to control DHW temperature should be pretty straightforward. As far as HW temperature goes - if you want to control the HW temperature directly, then yes. If you want to control the room setpoint, then it depends on your thermostat capabilities - it needs to support messages ID 9 and 100. There is a comprehensive table of supported messages here.

(This is because the boiler does not react to room setpoint - thermostat is responsible to derive the appropriate HW temperature according to the setpoint, outside temperature and configured heating curve.)

Hello @Reproduktor, I’ve managed to get your component working with my boiler.
Thank you very muct for your work and explanation in this thread.

I am able to see some information from the boiler but would like some more.
How does the component work? Does it just listens to the messages sent between thermostat (master) and boiler (slave)? Or does it send a request for certain data to the boiler itself?
For example: I cannot see the return water temperature (id 28), could this be because my boiler doesn’t support this datapoint or could it be that the thermostat doesn’t request it? If the latter, is there a possibility to make the ESP request this data from the boiler?

And then 1 more question, you’re saying that a

How would I do something like this? I can figure out how to make a climate component in esphome but how can I send the message to the boiler to set the DHW setpoint?

Hi @KoekieMonster , glad to hear that it works. The component is really only a gateway at the moment - it listens for the messages sent from either side. It does not send any requests on its own.

To check if the message is being sent out by thermostat, you can check the component log - it logs every message sent out and received.

Alternatively, you can configure a numeric sensor with value_type of 7, like this:

- name: "Return water temperature status"
  message_id: 28
  value_on_request: false
  value_type: 7

which will populate the sensor with the response code, if the response for the message is received. If it remains uninitialized, the message was never received from boiler, and chances are, also never sent out from the thermostat. If the response value is 7 (UNKNOWN-DATAID), the thermostat sent out the message, but the boiler does not return the value back.

It would be possible to continue developing the component so that it can send its own messages - but that will require some caching of the values previously returned by the boiler, as the thermostat needs to receive correct responses for its requests.

Regarding the climate control - sorry, no, it is not possible right now. I only meant that it should be pretty straightforward to add the support into the component, not that it is possible to configure at the current state. I have this on the plate, but I have not been able to get to it for several weeks now: [Request] Support overrides for numerical values · Issue #2 · Reproduktor/esphome-OpenthermGW · GitHub. My plan is to add the basic support for numeric overrides first. Climate could come later.

Thank you very much for your reply. I had already tried to add message id 28 for the return water temperature, this stays invalid though. I can see in the log that ID 28 is not requested by the thermostat.

Am I correct in thinking that the numeric override would look alot like the binary override? If that is the case I could try to implement and test that for the DHW temperature setting.

Yes, it would be, it’s just that - I think - we will have to implement a number component - like it is in sprinkler component. I started on that, just did not have time to finish. There is a branch on github named 2-request-support-overrides-for-numerical-values if you want to experiment. I might get a chance to spend some time on it the coming weekend, hopefully.

I have the first working prototype for numeric overrides. See the comment here for details: [Request] Support overrides for numerical values · Issue #2 · Reproduktor/esphome-OpenthermGW · GitHub

@KoekieMonster @Mio3000 @StimpyMGS

Hi Reproductor,

I’m a little confused. I have this Opentherm master shield: OpenTherm Thermostat - DIYLESS Electronics with the 2 wires from the original thermostat connected to the shields terminal block.

The gas-heating is a opentherm compatible Nefit.

I have tried both way’s around with your example config, configuring the pins like:

openthermgw:
  master_in_pin: 21
  master_out_pin: 22
  slave_in_pin: 18    # no slave shield!
  slave_out_pin: 16  # no slave shield!

But I get no data.

Sorry @michel72 , this is not for you then. The component is gateway only at the moment, it does not generate any requests or replies by itself, and so it needs both thermostat (master) and boiler (slave) ends connected to it.

Ah right.

Do you know of any esphome component that does do that?

I am using tasmota for this
for esphome you may have a look at

or this branche

i’m watching those posts but unfortunately for me I’m still waiting for the switch control.
and it’s winter here, so if I update i will plan this when it’s not an issue when heating goes down.

with your help, I have now managed to get my HA to monitor what the boiler is doing. Now taking the next step of trying to change the set point of the boiler. I tried the code

  • source: github://Reproduktor/esphome-openthermgw@2-request-
    support-overrides-for-numerical-values
    components: [ openthermgw ]

acme_opentherm_override_numeric_switches:
- name: “Override DHW setpoint”
message_id: 56
value_on_request: false
value_type: 2
id: override_dhw_switch
acme_opentherm_override_numeric_value:
name: “Override DHW setpoint temperature”
device_class: “Temperature”
mode: “Slider”
min_value: 30
max_value: 60
initial_value: 30
step: 1
id: override_dhw_temperature

But it tells me that “acme_opentherm_override_numeric_switches:” is an invalid option for [openthermgw]

What am I missing ?

Hi Andrew, it seems to be correct configuration.Looks like the correct component branch is not fetched from git.
When you compile, I 'd expect something like this as the very first lines of output:

INFO ESPHome 2024.10.3
INFO Reading configuration /config/esphome/esphome-kotolino.yaml...
INFO Updating https://github.com/Reproduktor/esphome-openthermgw.git@2-request-support-overrides-for-numerical-values

Can you please check that the correct branch shows up there?