BSB-Lan integration

Hi,
nice Integration.
I have a question, because my Brötje Heater has following modes
AUTO
HEATING
REDUCED (NIGHT SETBACK)
OFF

The integration does Not Show the REDUCED Mode.
Is there any setting, that I can Adapt to Show the REDUCED Mode as well?

Greets
Jörg

The reduced is the same as eco mode. It is a preset. So I could add option for reduced instead of default eco. I think i should indeed revisit the preset mode logic a bit.

If the mode is on auto it should switch to eco/reduced if the program is kicked in or you push the button.

The Brötje heaters Logic includes setting for
COMFORT (what I called HEATING) ,
REDUCED
AUTO (switching among COMFORT and REDUCED acc schedule)
PROTECTIVE OPERATION and
OFF

I would expect, that in
AUTO Mode the actual Setpoint of COMFORT or REDUCED is being shown in the Center and that adjusting will Change the Setpoint of the respective Mode.

Since I have done an hydraulic balancing , I would like to lock the setpoint.

Just from a Brötje System POV :slight_smile:
Maybe not the same with other heaters

Yeah I think I mis the comfort when it is in Auto mode, lol. I will do this as the next sprint. Will add the reduced, remove eco as it’s not called eco in bsblan and add comfort to presets.

It would help if people review the pull requests. It will go faster through review

https://github.com/home-assistant/core/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen+bsblan

I think this is the logic we can use

Parameter 700 Value → HVAC Mode + Preset Mode:

"0" (Protection):
  - hvac_mode: HVACMode.OFF
  - preset_mode: PRESET_NONE (or could be PRESET_FROST_PROTECTION if we add it)

"1" or "auto" (Automatic/Comfort):
  - hvac_mode: HVACMode.AUTO  
  - preset_mode: PRESET_COMFORT

"2" (Reduced):
  - hvac_mode: HVACMode.AUTO
  - preset_mode: PRESET_REDUCED

"3" (Comfort as active heating):
  - hvac_mode: HVACMode.HEAT
  - preset_mode: PRESET_NONE (or PRESET_COMFORT if desired)

The problem is that we have only one parameter that set the mode on bsblan?
The climate platform in HA uses hvac-action and hvac-preset so we have to set both parameter base on the parameter 700.
But there is also the issue that when on heating you can’t set reduced. You have to be in auto to manual be able to switch to reduced.

(edit)

I actually don’t know which parameter changes when you are in auto mode and switch to comfort or reduced? I assumed it was just parameter 700 but it is not. the parameter 700 stays on auto when switching between reduced and comfort.

@Liese

Ah I found how it works:

  • Byte 1: Operating mode (0=protection, 1=automatic, 3=comfort)
  • Byte 2 (when mode is automatic/1): Active preset
    • 0x01 = Reduced active
    • 0x02 = Comfort active
    • 0x03 = Comfort mode pushed into Reduced temporarily
    • 0x04 = Reduced mode pushed into Comfort temporarily

void switchPresenceState(uint16_t set_mode, uint16_t current_state_index) {
  byte msg[33] = { 0 };     // response buffer
  byte tx_msg[33] = { 0 };  // xmit buffer
  if (bus->Send(TYPE_QUR, 0x2D3D0211 + (current_state_index << 24) , msg, tx_msg, 0, 0, true) != BUS_OK) return;
  if (msg[bus->getPl_start()] != 0x01) return; // 1 = Automatic
  switch (msg[bus->getPl_start() + 1]) {
    case 0x01: set(set_mode, "2", true); break; //Automatic in Reduced mode -> Automatic Reduced pushed into Comfort
    case 0x02: set(set_mode, "1", true); break; //Automatic in Comfort mode -> Automatic Comfort pushed into Reduced
    case 0x03: set(set_mode, "2", true); break; //Automatic Comfort mode, but pushed into Reduced -> Automatic Comfort
    case 0x04: set(set_mode, "1", true); break; //Automatic Reduced mode, but pushed into Comfort -> Automatic Reduced
    default: return;
  }
  // msg[bus->getPl_start() + 2] until msg[bus->getPl_start() + 7] contain the three time programs for the current day (multiply the value by 10 minutes, FF means disabled)
}

The second byte (preset details) is only available in raw bus telegrams , not in the JSON API response. So we are on a dead track.
I check with @fredlcore
Maybe he can help and expose this in json api. Or I could maybe read and write it in another way?

(edit)

We can directly set is with this method

Now I need to figure out how to read it? lol

(edit)

Somehow I can’t set presence using this command? @fredlcore Any Ideas

The value
name: “Raumtemperatur-Sollwert”
state_topic: “BSB-LAN/8741”
is changing the Setpoint between the COMFORT Setpoint and the REDUCED Setpoint while in Auto Mode.

Does that hell?

It no longer works with version 5.0.*
I can’t figure out how to correctly send the parameter 10000 now (via web or mqtt).

I think this is the same issue with the presence push command I have. It looks like it is removed from the firmware code. Hopefully @fredlcore can give some insight

parameter 8741 is not doing this for me. What firmware are you on?
image

I have an old version (2.5 or 3.0), since it is running quite stable.
But the parameter number should be available on your heater as well.

They are not changing with the software release afaik.

If actual BSB-LAN is working the same way, you have to configure the mqtt data , that have to be transmitted, in the Settings on BSB-LAN.

I can check the name of the variable at home.
Probably the number is different, if you are on another heater - if it is not part of the BSB protocol.

Best regards
Jörg

My heater is a BBK 20F, installed 2013.

The pull request didn’t make it in the beta :frowning: So I hope it will be in for next month. Currently I am working on a refactor the library and looking into preset mode.

It looks like it sometimes does not work depending on the custom defs file not setup properly.
So I have to implement a check if the system supports preset mode and have a warning (with message how it could be resolved) and disable preset mode if the check does not succeed.