BSB-Lan Broetje Heizung via MQTT in HA

Moin, anliegend möchte ich auf das geniale Projekt BSB-LAN hinweisen:
Mit dem Projekt kann ich meine Broetje Heizung “regeln” und entsprechend visualisieren, bei mir läuft die ESP 32 Variante Handbuch zur BSB-LAN Hard- & Software | Handbuch zur BSB-LAN Hard- & Software (1coderookie.github.io)

[Handbuch zur BSB-LAN Hard- & Software | Handbuch zur BSB-LAN Hard- & Software (1coderookie.github.io)](https://BSB-Lan)

meine Einträge in der configuration.yaml

mqtt:
  sensor:
  
  
 

# BSB-LAN  


    - name: "Gesamte Gasenergie für Heizen und Trinkwasser"
      force_update: true
      state_topic: "BSB-LAN/8380"
      unit_of_measurement: kWh
      device_class: energy

      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Gesamte Gasenergie für Heizen"
      force_update: true
      state_topic: "BSB-LAN/8378"
      unit_of_measurement: kWh
      device_class: energy

      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"

    - name: "Gesamte Gasenergie für Trinkwasser"
      force_update: true
      state_topic: "BSB-LAN/8379"
      unit_of_measurement: kWh
      device_class: energy

      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"



    - name: "Außentemperatur Heizung"
      force_update: true
      state_topic: "BSB-LAN/8700"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Außentemperatur Heizung gedämpft"
      force_update: true
      state_topic: "BSB-LAN/8703"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
      
    - name: "Trinkwassertemperatur Istwert"
      force_update: true
      state_topic: "BSB-LAN/8830"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Trinkwassertemperatur-Sollwert aktuell"
      force_update: true
      state_topic: "BSB-LAN/8831"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
      
    - name: "Steilheit Heizkreis 1"
      force_update: true
      state_topic: "BSB-LAN/720"
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Parallelverschiebung Heizkreis 1"
      force_update: true
      state_topic: "BSB-LAN/721"
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:triangle-wave
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"  
    

    - name: "Vorlauftemperatur Istwert Heizkreis 1"
      force_update: true
      state_topic: "BSB-LAN/8743"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"

    - name: "Vorlauftemperatur-Sollwert resultierend HK1"
      force_update: true
      state_topic: "BSB-LAN/8744"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
      
    - name: "Kesseltemperatur-Istwert"
      force_update: true
      state_topic: "BSB-LAN/8310"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
    
      
    - name: "Rücklauftemperatur-Istwert Kessel"
      force_update: true
      state_topic: "BSB-LAN/8314"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
      
    - name: "Kesseltemperatur-Sollwert"
      force_update: true
      state_topic: "BSB-LAN/8311"
      unit_of_measurement: °C
      device_class: temperature
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Verbraucher - Wasserdruck"
      force_update: true
      state_topic: "BSB-LAN/9009"
      unit_of_measurement: bar
      device_class: pressure
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
     
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"   
      

    - name: "Brennermodualtion"
      force_update: true
      state_topic: "BSB-LAN/8326"
      unit_of_measurement: "%"
      #device_class: power 
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
#      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"  
      

    - name: "Heizkreispumpe Drehzahl HK1"
      force_update: true
      state_topic: "BSB-LAN/8735"
      unit_of_measurement: "%"
      #device_class: power 
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
#      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"  
      
    - name: "Gebläsedrehzahl"
      force_update: true
      state_topic: "BSB-LAN/8323"
      unit_of_measurement: "U/min"
      #device_class: power 
      value_template: "{{value | replace('---', '0.0', 1) | float}}"
#      icon: mdi:thermometer-chevron-up
      qos: 0
      availability:
       - topic: "BSB-LAN/status"
      payload_available: "online"
      payload_not_available: "offline"  

     
      

      
  number:
    - name: Komfortsollwert Heizkreis 1
      unique_id: bsb_lan_heizkreis1_komfort_sollwert
      state_topic: "BSB-LAN/710"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      command_template: >
       S710={{ value }}
      mode: box
      min: 16
      max: 22
      step: 0.5
      unit_of_measurement: °C
      device_class: temperature
      icon: mdi:radiator
      
    - name: Raumtemperatur-Reduziertsollwert Heizkreis 1
      #unique_id: bsb_lan_heizkreis1_komfort_sollwert
      state_topic: "BSB-LAN/712"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      command_template: >
       S712={{ value }}
      mode: box
      min: 16
      max: 22
      step: 0.5
      unit_of_measurement: °C
      device_class: temperature
      icon: mdi:radiator
      
      
    - name: Sommer_Wintergrenze Heizkreis 1
      unique_id: bsb_lan_heizkreis1_sommer_wintergrenze
      state_topic: "BSB-LAN/730"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      command_template: >
       S730={{ value }}
      mode: box
      min: 5
      max: 22
      step: 0.5
      unit_of_measurement: °C
      device_class: temperature
      icon: mdi:radiator
      
    - name: TW_Nennsollwert
      unique_id: bsb_lan_tw_nennsollwert
      state_topic: "BSB-LAN/1610"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      command_template: >
       S1610={{ value }}
      mode: box
      min: 45
      max: 65
      step: 0.5
      unit_of_measurement: °C
      device_class: temperature
 
      
      
      
  switch:
      
    - name: "Trinkwasserfreigabe Zeitprogramm"
      state_topic: "BSB-LAN/1620"
      state_on: "2 - Zeitprogramm 4"
      state_off: "0 - 24h/Tag"
      command_topic: "BSB-LAN"
      payload_on: "S1620=2"
      payload_off: "S1620=0"
      availability_topic: "BSB-LAN/status"
      icon: mdi:water-boiler
      
    - name: "Heizbetrieb Heizkreis 1 (Temporaer)"
     # unique_id: 30d66077-1ea6-4c9a-b1a3-6871d1133525
      state_topic: "BSB-LAN/700"   #Status vom Heizkreis, Achtung eine andere ID als für den eigentlich Befehl, der Status dient lediglich zur Anzeige des Schalters an oder aus
      state_on: "114 - Heizbetrieb Komfort"  #Status an vom Schalter soll der Zustand "Heizbetrieb Komfort" sein 
      state_off: "116 - Heizbetrieb Reduziert"  # Status aus vom Schalter, soll der Zustand "Heizbetrieb Reduziert" sein 
      command_topic: "BSB-LAN"   #Befehl, hier abweichend vom Status, da der Befehl temporär und der Status über die I 10026 erfolgt, die ID 10110 selbst gibt keine "Rückmeldung", versenden von MQTT nicht möglich
      payload_on: "S10110=114"   
      payload_off: "S10110=0"
      availability_topic: "BSB-LAN/status"
      icon: mdi:water-boiler
      
      
  button:
    - name: Warmwasser Push
      unique_id: bsb_lan_warmwasser_push
      availability_topic: "BSB-LAN/status"
      command_topic: "BSB-LAN"
      payload_press: "S10019=1"
      qos: 0
      retain: false
      

  select:
      
# 1600 Trinkwasser - Betriebsart      
    - name: Trinkwasser - Betriebsart
      unique_id: bsb_lan_trinkwasser_betriebsart
      state_topic: "BSB-LAN/1600"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      
      value_template: >
        {% set mapping = {0: 'Aus', 1: 'Ein',2: 'Eco'} %}
        {% set idx = value.split() | first | int %}
        {{ mapping[idx] }}
      
      command_template: >
        {% set mapping = {'Aus': 0, 'Ein': 1, 'Eco':2} %}
        S1600={{ mapping[value] }}
      options:
        - Aus
        - Ein
        - Eco
      icon: mdi:list-box  
      
    - name: Heizkreis 1 Betriebszustand
      unique_id: bsb_lan_heizkreis1_betriebszustand
      state_topic: "BSB-LAN/700"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      # Example value: 1 - Automatik
      value_template: >
        {% set mapping = {0: 'Schutzbetrieb', 1: 'Automatik', 2: 'Reduziert', 3: 'Komfort'} %}
        {% set idx = value.split() | first | int %}
        {{ mapping[idx] }}
      # Example payload: S700=1
      command_template: >
        {% set mapping = {'Schutzbetrieb': 0, 'Automatik': 1, 'Reduziert': 2, 'Komfort': 3} %}
        S700={{ mapping[value] }}
      options:
        - Schutzbetrieb
        - Automatik
        - Reduziert
        - Komfort
      icon: mdi:list-box 
      
      
      
# Wirkung Erzeugersperre:       
    - name: Wirkung Erzeugersperre
      unique_id: bsb_lan_wirkung_erzeugersperre
      state_topic: "BSB-LAN/2305"
      command_topic: "BSB-LAN"
      availability_topic: "BSB-LAN/status"
      
      value_template: >
        {% set mapping = {0: 'Keine', 1: 'Nur Heizbetrieb',2: 'Heiz- und Trinkwasserbetrieb'} %}
        {% set idx = value.split() | first | int %}
        {{ mapping[idx] }}
      
      command_template: >
        {% set mapping = {'Keine': 0, 'Nur Heizbetrieb': 1, 'Heiz- und Trinkwasserbetrieb':2} %}
        S1600={{ mapping[value] }}
      options:
        - keine
        - Nur Heizbetrieb
        - Heiz- und Trinwasserbetrieb
      icon: mdi:list-box  
      
  text: 
  
  

    - name: "Status Trinkwasser"
      mode: "text"
      command_topic: "BSB-LAN/10027"
      state_topic: "BSB-LAN/10027"
      icon: mdi:ab-testing
      min: 2
      max: 60
      
    - name: "Status Heizkreis 1"
      mode: "text"
      command_topic: "BSB-LAN/10024"
      state_topic: "BSB-LAN/10024"
      icon: mdi:ab-testing
      min: 2
      max: 60
      
    - name: "Heizkreis 1 Schnellabsenkung"
      mode: "text"
      command_topic: "BSB-LAN/780"
      state_topic: "BSB-LAN/780"
      icon: mdi:ab-testing
      min: 2
      max: 60
      
1 „Gefällt mir“

Hallo horstvogel,
ich habe hier auch eine Brötje-Ölheizung (BOB25) mit dem BSB-LAN Projekt im Netzwerk. Im iobroker hat das abrufen und darstellen der Daten ganz gut geklappt. Jetzt möchte ich auf HA umsteigen und habe versucht, die Kopplung hinzubekommen. Leider hatte ich bisher keinen Erfolg.
Kannst du mir bitte sagen, wie ich vorgehen müsste, damit BSB-LAN Daten per MQTT sendet? Daran habert es wohl bei mir. Ich habe die aktuelle Version 3.2 des Projekts geflasht.

Vielen Dank schon mal

Handbuch

Unter Einstellungen

Hallo, danke für deine Antwort.
Ich werd trotzdem nicht schlau draus. Hab MQTT im HA integriert, IP, Port, Name und PW eingegeben. Gleiche Daten im Tasmota Hichi Stromzähler IR-Kopf funktioniert und sendet Daten, die im HA ankommen. Gleiche Daten (CopyPaste) im BSB-LAN funktioniert nicht. Im MQTT Explorer sehe ich bei BSB-LAN status=offline.
Liegt das an der Version oder muss ich neu flashen? Wo wird eigentlich der Port angegeben im BSB-LAN oder ist das der Standard (1883)?
Ärgert mich a bissl!

Moin,
sprich in BSB-Lan werden die Werte von der Heizung angezeigt?
dem Haken bei an MQTT Broker senden hast Du gesetzt
Logging hast Du aktiviert, bei mir im Beispiel 30 Sekunden. Wenn da nichts drin steht, dann macht der das nur alle 3600 Sekunden.
Um den Port habe ich mir bisher noch keinen Kopf gemacht, hat bei mir sofort funktioniert, unverschlüsselt innerhalb meines Netzes, der Broker hört auf 1883

Als Version habe ich noch die 3.04. Sonst frage doch einfach mal bei Herrn Holst per E-Mail an, der gibt echt immer Support.

Ja, alles so eingestellt wie in deinem Bild. Die Werte hab ich so schon mit iobroker abgerufen, da geht’s aber glaub ich nicht über Mqtt, sondern wird vom iobroker gepollt.
Naja, jetzt hab ich erstmal Urlaub und dann frag ich mal Herrn Holst. Vielleicht liegt es ja wirklich an der Version 3.2.2-20230606224119.

Danke dir

1 „Gefällt mir“

iobrocker

[GitHub - hacki11/ioBroker.bsblan: This adapter connects the BSB_LAN Interface (https://github.com/fredlcore/bsb_lan) to ioBroker.](https://BSB-Lan)

auf den ersten Blick würde ich sagen, dass Du vorher bei ioBroker dann noch die Version 2.x von BSB-Lan vielleicht installiert hast?
Weiter gehe ich davon aus, dass bei iobroker die Integration oder wie man das auch immer nennt, dann die Daten abruft.

Schicke doch mal Deine Screenshots von den gesamten Einstellungen, dann kann ich das vergleichen. Wäre schon seltsam, dass bei der Version 3.2.2 Mqtt nicht mehr funktioniert.

Du hattest schon Kontakt zu Herrn Dr. Holst, da du ja die Regelerspezifische Parameterliste von Ihm angefordert haben musstest. Sonst sollte das bei Dir dann überhaupt nicht funktionieren.
Richtig ist das so?

So, hab jetzt noch mal ein Update vom BSB-Lan gemacht (jetzt: 3.3.2-20231115201023). Der MQTT-Explorer zeigt immer noch offline. Im HA Mosquitto Broker bekomme ich Meldungen im Protokoll über eine neue Verbindung des BSB-Lan. Es kommen nach wie vor keine Daten im HA über MQTT an.

Was passt hier nicht, zum Kuckuck?


noch zwei Bilder, bin ja neu hier!
Mosquitto broker
MQTT Explorer

Ok, sieht auf den ersten Blick aus wie bei mir
Ich allerdings keine Feste IP
Und mein MQTT Passwort ist deutlich kürzer, ich hatte das schon mal bei einem EXP 8266 das das Passwort zu lang war.
Logging habe ich bei mir bei 20 Sekunden, da muss ich passen ob man kürzer kann…
die Looging Parameter dürfen max. 40 Stück sein. Vielleicht die für den Moment kürzen…

Eben gerade noch gesehen, bei mir ist Debugging auf Serial, warum auch immer, ich glaube allerdings das sollte keine Rolle spielen. Bei Dir ist das auf aus.

Welche Hardware verwendest Du eigentlich. Ich habe die BSB-LAN-Adapterplatine: “BSB-LAN ESP32”.

:crayon:by HarryP: Zusammenführung Doppelpost

Hallo Horst,
vielen Dank für deine Hilfe.
Hab den Fehler heute selbst gefz, das Passwort war wohl zu lang bzw. falsch. Hab den Broker komplett neu eingerichtet mit kurzem Passwort. Jetzt kommen immerhin im Mqtt Explorer Daten an.
Allerdings finde ich die Daten im HA noch nicht. Muß ich die Entitäten selbst anlegen?
Hab übrigens einen Arduino Duo an einer brötje BOB25

Gruß

Ich habe doch oben meine config.yaml als Beispiel angegeben, die musst Du natürlich mit Deiner Heizung abgleichen.

(5) Wie du den Mosquitto MQTT Broker in Home Assistant installierst. Tutorial - deutsch - YouTube

kein Video von Simon, aber so richtet man den Broker inkl. Integration dann richtig ein.

:crayon:by HarryP: Zusammenführung Doppelpost

Achja, das hatte ich vor lauter rumprobieren ganz übersehen. Werde ich morgen weiter testen. Heute nicht mehr
Vielen Dank

Nachtrag:
kurz nochmal ne Rückmeldung: hat sehr gut geklappt. Musste im Code noch ein paar Anpassungen machen, da ich teilweise andere Status-Codes habe. Aber es funktioniert.

Vielen herzlichen Dank !

:crayon:by HarryP: Zusammenführung Doppelpost

Hallo, ich habe mit Interesse das Pojekt gelesen, leider bin ich der volle Anfänger auf dem Thema Hausautomation und baue allse nur nach. Wo bekomme ich den BSB-Lan Adapter her? Ich konnte nichts finden wo ich diesen bestellen kann. Könnt Ihr mir da helfen? Vielen Dank

Hallo @horstvogel

Vielen Dank für deine Anleitung.
Habe sie bei mir umsetzen können und funktioniert perfekt.

Hast du bei dir auch eine Rückantwort von HA über MQTT an die Brötje BSB integriert, die dir automatisch eine Raumtemperatur in das BSB schreibt ?

Meine Brötje feuert leider mangels Raumthermostat bei niedrigen Außentemperaturen unnötig Gas durch den Brenner. Würde ihr gerne über HA in regelmäßigen Abständen die aktuelle Raumtemperatur eingeben lassen.

Hast du mir hier vielleicht bitte Ideen oder Tipps , wie ich es am besten zusammen mit deinem Skript umsetzen kann ?

Das BSB-Manual habe ich gelesen, ebenso verschiedene Anleitungen, beziehen sich jedoch meistens auf FHEM oder OpenHub.

Vielen Dank und frohe Weihnachten.

Mon, habe ich nicht gemacht, ich mache das so. Wenn ausgewählte Thermostate eine Öffnung kleiner 10 % haben, dann haue ich die Erzeugersperre rein. Es gab da irgendwo auch ein Projekt für die Anbindung/Bau eines eigenen Rauthermostates.

Einfach Herrn Dr. Frederik Holst anschreiben. Der antwortet Dir dann.

Frederik Holst (bsb [ät] code-it.de)

Handbuch zur BSB-LAN Hard- & Software | Handbuch zur BSB-LAN Hard- & Software (1coderookie.github.io)

Hallo Horst,

Vielen Dank, die Erzeugersperre hatte ich gar nicht auf dem Schirm.
Muss ich mal schauen, wie ich das umsetzen kann.

Mit Frederik hatte ich tatsächlich letztes Jahr schon bei der Einrichtung und dem Kauf meines BSB Kontakt.

Hallo Horstvogel, vielen Dank für die Hinweis. Werde mich an Ihn wenden.

Hallo zusammen,

ich habe einen Brötje Bsk15 Eco Solar und würde diesen gern Smart machen bzw. die Werte erst einmal mit Ha auslesen wollen.

Hat jemand Tips und oder eine Anleitung dafür?

Zuerst musst Du schauen, welche Schnittstelle der BSH 15 Solar hat.

BSB-Lan, Opentherm…da gibt es vermutlich verschiedene