Buderus Logamatic 2107 KM271 Replacement with WiFi using ESP32 and ESPhome

I playing around. Also cleaning up the English naming .yaml file.

This one got me confused:

Hot water ‘Night Mode’ is always on, also in combination with ‘Day Mode’, does not react to the mode selection. So I checked the .yaml files. Nach != Nacht.

    ww_day_mode:
      name: "WW Tag Modus"
    ww_post_processing:
      name: "WW Nachbereitung"
    ww_day_mode:
      name: "DHW Day Mode"
    ww_post_processing:
      name: "DHW Night Mode"

So should be:

    ww_day_mode:
      name: "DHW Day Mode"
    ww_post_processing:
      name: "DHW Post Processing"

I have a few more small changes, I will post these when I think I’m done.

I have the Buderus working together with Tado. I’m trying to figure out how the Tado signals the Logomatic and how the Logomatic functions work together/against the Tado.

I know there is an issue. When I bought the Tado it was advertised as compatible with the Logomatic and it also controlled the hot water preparation. Tado updates have taken that away and the Logomatic is no longer listed as compatible. Tado’s customer service reaction at the time was “you can send the equipment back”. Not helpful.

Before the Tado I hade the Buderus thermostat that send the actual time (from the Frankfurt radio clock) to the heater. I believe the Tado used to do that too. Not anymore, so it seems.

With all the controls the KM271 gives, the time is not one of them?

This is where I am at. Ignore the traces, lost of changes and KM271 restarts still.

Hi VdR,

time of the Logamatic can be set and read with the KM271 and ESPhome, but it is a bit more tricky. It is not directly supported by some sensor. You need to use a time sensor and fiddle around with lambdas to set a few parameters of the Logamatic. Also reading the datetime parameters can be done. Unfortunately, I’m quite busy (vacations with family) currently and can not figure this out.

Regards,
Daniel

PS: dewennis firmware has support for datetime: GitHub - dewenni/ESP_Buderus_KM271: Control your Buderus Logamatic 2107 or HS-2105 with ESP and MQTT

Thank you for the explanation. I will have a look, but that’s probably over my head. Enjoy the vacation!

Hi VdR,

nothing is “over your head”. It is just a matter of collecting some information and trial and error :stuck_out_tongue:

I just arrived back at home, but have a ton on mails to process… With a bit of luck, I’ll try it out within next week and add some information on my blog.

Regards,
Daniel

So true! I will be trying and erroring!

1 Like

Hi Daniel,

First of all thank you for your work creating this module.
I’ve installed mine today on my Buderus HS 2105, all the readings seem to be working although my supply is reading 41.59V.

This is my first time using a ESPHome device so no sure if the OTA updates are working, when I go ESPHome and press the Update I’m getting this output error:

INFO ESPHome 2024.6.6
INFO Reading configuration /config/esphome/km271-for-friends-621780.yaml...
INFO Updating https://github.com/the78mole/esphome_components.git@main
WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
Failed config

At least one platform must be specified for 'ota'; add 'platform: esphome' for original OTA functionality

Am I missing something on my .yaml?

substitutions:
  name: km271-for-friends-621780
packages:
  the78mole.km271-wifi: github://the78mole/esphome_components/components/km271_wifi/km271-for-friends.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
api:
  encryption:
    key: ###hidden


wifi:
  ssid: ###hidden
  password: ###hidden

  ap:
    ssid: "Fallback"
    password: "Z8zfajgxVvNw"

Also is there any way to set the Vacation mode with the ESPhome firmware?

Many thanks

Hi Nuno,

the wired voltage reading is by intention, so if you use it, you do not forget to calibrate it. The nominal value is 5.0V, but the ADC of the ESP has a quite high deviation, so everybody should calibrate it for the individual system. If you are not interested in the precise value, just calculate another multipler for the filter of this sensor:
5.0V / 41.59V * current_multiplier_value => new multiplier value

Secondly, ESPhome just received an update (2024.6.x), which requires you to add an OTA platform to your YAML, just as stated in your error message. Have a look here how the ota-section should look like and add the platform line to your YAML. This does not change anything for the ESP32 itself, but for the ESPhome server side to use the correct OTA platform (at least as far as I understand).

Setting vacation mode is a bit more tricky, but could be done in different ways:

  1. Using the number config parameter (see info from this search). I don’t know, how it behaves, when you just use the number config… An example YAML with vacation days included can be found here.
  2. “by foot” using lambdas. You “just” need the parameter and send the value to it. An example how to construct complex values and sending it with a lambda can be found here.

Hope that helps :wink:

Regards,
Daniel

Hi Daniel,

Thanks for help.
Finally looked into this again, ota is working now but I haven’t been able to setting the vacation, not sure if I’m doing this right.

I’ve added this to my km271 yaml :

number:
  - platform: km271_wifi
    config_heating_circuit_1_holiday_days:
      name: Heizkreis 1 Urlaubstage
      mode: SLIDER
      disabled_by_default: false
      max_value: 99.0
      min_value: 0.0
      step: 1.0

shouldn’t I now have an entity called Heizkreis 1 Urlaubstage ?

Regards

Hi Nuno,

I believe, you will find it as heizkreis_1_urlaubstage

I did never use it, but I would not use the slider for that purpose… I think it will count down on a daily base.

Regards,
Daniel

Can’t find the entity, I don’t think number config parameter has added any new entity.

What other mode can you use instead of the slider to get this working?

Sorry I’m not much of an expert with hassio, so I’m bit lost.

Something else I noticed is that on ESPHome the module shows offline after a while, although it’s still getting readings from the bolider.

km271-offline

Is this a normal behaviour?

Regards,
Nuno

Hi Nuno,

I also noticed, that the online/offline status is sometimes a bit buggy. It sometimes shows offline, but you still can connect (show logs or update). I believe, it has to do with mDNS, depending on your network (router, switches, clients/PC…) works good, medium or bad.

To find all “exported” sensors, you should go to Settings → Devices → ESPhome → “KM271” Device.

From there, you should see all entities with their default control.

Month ago, I also had problems with ESPhome entities not showing up, but this seems to have solved long time ago… Every sensor/number/… you add in your YAML should get into the firmware and show up in Home Assistant.

Hope this helps a bit…

Regards,
Daniel

Hi Daniel,

I also noticed that was getting sometimes a mDNS unable to resolve error.
I configured manual IP which seemed to have cleared the error and looks like it stays online longer but still goes offline after a while.

The entites are also now all showing, not sure why but before many were missing…

I have now the vacation slider and reads the value correctly if I set the vacation days on the boiler, but when I set a new value on hassio it doesn’t change anything on the boiler.

I also tested water temp “warmwassersolltemperatur_tag” slider which works fine if change the value remotely, so not sure why “heizkreis_1_urlaubstage” doesn’t set the value remotely?

Regards,
Nuno

Late response hoping this could be usefull for someone: Yes it is possible and recommended to set a static IP in the yaml under wifi, this is what I did:

image