OpenTherm component with Immergas EOLO Star 24 boiler

Hi all!

I’m trying to build an OpenTherm controller for my Immergas EOLO Star 24 boiler. I found that Immergas is using a proprietary protocol called IMG_BUS that is very similar to OpenTherm

So i spend hours to make it work but my problem is that the boiler is not following the ch_setpoint value.

What i change to make it work is the below config:

opentherm:
  in_pin: ${opentherm_in_gpio}
  out_pin: ${opentherm_out_gpio}
  sync_mode: true
  before_send:
    then:
      - lambda: |-
            if (x.id == 0) {
              x.valueLB = 0xCA;
            }

Without this, the boiler is showing error 31 which means “lost communication with the controller”

I found above info from here: https://arduino.ru/forum/programmirovanie/termostat-opentherm-na-esp8266?page=15#comment-649392

Boiler is working but seems like it’s ignoring the ch_setpoint value and trying to reach the max_t_set value.

The user from above forum is doing some more actions but i can’t understand what exactly and how to replicate in ESPHome.

Maybe i just need to use the max_t_set value as current ch_setpoint?

Any help guys?

Thanks!