LAN-Anbindung für BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 29 November 2014, 19:50:40

Vorheriges Thema - Nächstes Thema

thetaphi

Moin,

Zitat von: malkaltmalheiss am 15 April 2025, 16:46:05Hi wieder und Danke für die Antwort.

Am 12.4. fing dieses Thema erst an. Sonst hat es stets funktioniert (denke ich). Bild dazu: https://ibb.co/zW2n71Qv

Aber ja, ich sehe hier ein "---" in bsb-lan: https://ibb.co/BVjDH5mj

Und HA bleibt "hängen" bei 27%: https://ibb.co/xt6QK25t

Sprich ich würde für meinen Fall gerne da eine "0" sehen wenn der Brenner bzw. die Heizung aus/standby ist. (Ja, ich weiß, dass die 0 bei der Brötje eigentlich AN bedeutet mit kleinster Modulation.)

Kann es auch sein, dass dein Problem einfach deshalb angefangen hat, weil die Heizung in Sommerbetrieb gegangen ist und daher sich anders verhält? Bei mir ist die Sommer/Winterheizgrenze am Wochenende angesprungen.

Das Update alleine reicht nicht, du musst das in der Config festlegen, wie die "---" Werte in den MQTT geschrieben werden. IMHO ist nur "None" korrekt, was dann von Python (also HASS) in den Python-Float-Wert "None" transformiert wird und dafür sorgt das die Entoity dann "Unavailable" wird. Der Wert steht dann in der Entity als "Unavailable" und in der Grafik gibt es eine Lücke (was auch korrekt ist). Wenn du es auf "0" stellst, dann fügt er bei jeder numerischen Entity eine 0 ein, wenn der Wert nicht existiert. Das ist leider falsch und kann bei Automationen zu anderen Problemen führen.

Generell solltest du das bei jedem MQTT-Paremeter selber in der Konfiguration von MQTT selber festlegen wie die Werte gemappt werden. Das habe ich schon seit langem so. Das betrifft auch andere Werte wie Strings oder Enumerations usw, denn die können auch undefiniert werden und das sollte auch an HASS so kommuniziert werden.

Ich habe den Autodiscovery nicht aktive, meine Parameter sind alle so konfiguriert:

  - name: Kessel Gebläseansteuerung
    unique_id: bsb-lan.8325
    state_topic: "BSB-LAN/0/+/8325/status"
    expire_after: 300
    unit_of_measurement: "%"
    state_class: measurement
    icon: mdi:fire
    value_template: >
      {{ value if value != '---' }}



Das sollte man eigentlich generell so machen (auch für Strings).

@freetz: Es wäre auch mein Rat, das in BSB-LAN nicht direkt beim Schreiben in MQTT zu konvertieren, sondern besser bei der Autodiscovery die Entities so anzulegen, der Code auf das "---" wie oben prüft. Natürlich muss man das etwas anpassen für Enums, da könnte man auch nutzen "startsWith('---')" oder ähnliches.

freetz

#7111
@malkaltmalheiß: Ja, Handbuch lesen, Konfiguration entsprechend vornehmen und dann sollte es so klappen.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

bimmerfriend

Moin zusammen,

Ich habe mal wieder ein Problem mit meiner Integration.

Durch ein totales Desaster bei einem Update von HA ist meine aktuelle Konfiguration leider abhanden gekommen - ich habe HA neu aufsetzen dürfen. Dabei habe ich auch MQTT wieder installiert, diesmal aber mit EMQX. Mittlerweile läuft alles wieder tadellos, bis auf BSB-LAN. BSB-LAN selber läuft prima (5.06), allerdings bekomme ich keine Werte mehr ins System.
Eigentlich ist seitens BSB alles geblieben, aber trotzdem bekomme ich die Eerte aus der GUI nicht ins HA via MQTT.
Nun meine Frage: Hat das evtl. Mit der MQTT Änderung im BSB zu tun? Werden die Werte nicht mehr (wie gehabt) alle automatisch übertragen? Muss ich die jetzt alle manuell anfragen?

Bin ein wenig verloren in den diversen Beiträgen, die ja teilweise von alter Welt und neuer Welt durcheinander reden ( 3.x, 4.x, 5.x, ...)...

Habt Ihr da bitte einen Rat für mich?


Viele Grüße!

bimmerfriend

Kleines Update...

Wenn ich in der GUI nur die Option "an MQTT Broker senden" aktivieren und bei Logging - Parameter Werte eintragen, werden diese Daten zu den Werten dann auch übertragen, und zwar im eingestellten Takt.

Ein Aktivieren der Auswahl-Option "alle Bustelegramme" führt nicht dazu, dass ich alle anderen Werte bekomme?
Wie bekomme ich denn dann zu.b. Temperaturverläufe? Alle separat anfragen über die Liste "Logging - Parameter "? Bei meinen anderen Geräte kommen doch Sensor Daten auch automatisch, bzw. hat BSB-LAN die doch vorher auch ungefragt übermittelt?

bimmerfriend

... und noch ein Update:

Nachdem ich nun meine Parameter Liste wieder händisch gefüllt habe, stehen auf einmal wieder alle Werte im MQTT zur Verfügung...

Ich verstehe es nicht!

freetz

Zitat von: thetaphi am 15 April 2025, 17:51:24@freetz: Es wäre auch mein Rat, das in BSB-LAN nicht direkt beim Schreiben in MQTT zu konvertieren, sondern besser bei der Autodiscovery die Entities so anzulegen, der Code auf das "---" wie oben prüft. Natürlich muss man das etwas anpassen für Enums, da könnte man auch nutzen "startsWith('---')" oder ähnliches.

Die Sache ist, dass das Problem ja nicht nur bei HA auftritt, sondern auch bei anderen Home Automation Systemen, wie z.B. ioBroker und FHEM. Auto-Discovery gibt es aber (bisher) nur bei HA. Von daher gibt es eben jetzt die Möglichkeit, den Wert "---" neu zu definieren. Das soll aber jede/r selber machen und entscheiden, denn letztlich sind alle Umwandlungen mit einem Informationsverlust verbunden. "---" eben sowohl "inaktiv", "deaktiviert" oder "nicht vorhanden" bedeuten. Es heißt so gut wie nie "0", aber doch ist das der Wert, der dem z.B. beim Plotten in FHEM am nächsten kommt. "None" führt zu Lücken bei HA, was prinzipiell besser ist, aber "unknown" ist die Bedeutung eben trotzdem nicht. Wenn man das aber selber so ändert, ist man sich zumindest darüber bewusst, und es wird nicht automatisch im Hintergrund von der Software vorgenommen.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

thetaphi

Zitat von: freetz am 17 April 2025, 10:44:43Die Sache ist, dass das Problem ja nicht nur bei HA auftritt, sondern auch bei anderen Home Automation Systemen, wie z.B. ioBroker und FHEM. Auto-Discovery gibt es aber (bisher) nur bei HA. Von daher gibt es eben jetzt die Möglichkeit, den Wert "---" neu zu definieren. Das soll aber jede/r selber machen und entscheiden, denn letztlich sind alle Umwandlungen mit einem Informationsverlust verbunden. "---" eben sowohl "inaktiv", "deaktiviert" oder "nicht vorhanden" bedeuten. Es heißt so gut wie nie "0", aber doch ist das der Wert, der dem z.B. beim Plotten in FHEM am nächsten kommt. "None" führt zu Lücken bei HA, was prinzipiell besser ist, aber "unknown" ist die Bedeutung eben trotzdem nicht. Wenn man das aber selber so ändert, ist man sich zumindest darüber bewusst, und es wird nicht automatisch im Hintergrund von der Software vorgenommen.

Ich stimme dir zu, aber meiner Meinung nach sollte bei der Auto-Discover für HA die value_templates gleich passend angelegt werden. Denn die im Logfile dann ständig auftretenden Fehler vermeidet man so. "unknown" stimmt aber nicht, der Wert wird als "unavailable" angezeigt. Das passt meistens, aber nicht immer.

Generell bezog sich mein Kommentar darauf, das das Mapping idealerweise pro Parameter individuell durchgeführt werden sollte. Daher bin ich eigentlich auch ein Gegner der Auto-Discovery weil das mir erstens das System mit Entities zumüllt und zweitens die Mappings teilweise komisch sind. Das Problem der HA Autodiscovery ist dass man die resultierende Entity-Liste nicht als yaml-Konfig rausziehen kann, somit Modifikationen stark eingeschränkt sind.

Das sollte aber jedem frei überlassen bleiben, mir gefällt es nicht.

Uwe

thetaphi

Hi,

Zitat von: bimmerfriend am 17 April 2025, 10:15:40... und noch ein Update:

Nachdem ich nun meine Parameter Liste wieder händisch gefüllt habe, stehen auf einmal wieder alle Werte im MQTT zur Verfügung...

Ich verstehe es nicht!

Das war noch nie anders, BSB-LAN kann nur Parameter nach MQTT schreiben, die es vorher explizit abgefragt hat. Bei den Bus-Telegrammen werden nur diese geloggt die das System selbst sendet und das ist bei den meisten Geräten lediglich die Kesseltemperatur, die alle 10 Sekunden kommt, weil es die Displayunit selbst pollt. Von alleine passiert aber auf dem Bus nicht viel, außer das Brennerstatustelegramm, was ich als Trigger in HA benutze, um dass noch mehr Infos und öfter zu pollen.

Als Tipp: Wenn man viele Parameter abfragen will und die Intervalle auch unterscheidlich sein sollen (ich will alle 15 Sekunden die Kesseltemperatur und Vor/Rücklauf haben, aber die aktuelle Außentemperatur nur alle 10 Minuten), dann empfehle ich: Gar keine Parameter in die Konfig von BSB-LAN schreiben und statt dessen in Home Assistant mehrere zeitbasierte Automationen (ich habe solche mit Trigger "alle 15 Sekunden", alle "2 Minuten", "alle 10 Minuten" und "jede Stunde um 7 nach"), die via "MQTT: Publish" an den "BSB-LAN/poll" Endpoint die Liste der Parameter kommasepariert senden. Das hat auch den Vorteil das es alles in HA definiert ist und nicht verteilt über mehrere System. BSB-LAN pollt bei mir aktiv gar keine Werte.


freetz

@thetaphi: Ja, ich bin auch kein Fan davon, aber es gibt inzwischen viele User, die das erste Mal ein HA-System aufsetzen und für die die Auto-Discovery eine echte Vereinfachung darstellt. Die kriegen gar nicht mit, dass es da Errors in den Logs gibt ;). Warum man nach der Auto-Discovery keine Möglichkeit hat, daraus eine YAML zu generieren oder zumindest den Sensor-Typ anzupassen, ist mir auch ein Rätsel. Und ja, es ist "unavailable", aber das ist genauso falsch - der Parameter ist ja nicht "nicht verfügbar", sondern hat je nach Parameter eine bestimmte Bedeutung, die über das gesamte System gesehen leider mehrdeutig ist. Bei "unavailable" melden sich im Zweifelsfall die User dann bei mir, weil sie denken, dass die Abfrage lückenhaft ist...

Die akkurateste Lösung wäre gewesen, den Parameter nicht als "sensor"-Typ zu übermitteln, sondern als "text". Denn "---" ist nun mal kein numerischer Wert. Das hätte aber den Nachteil gehabt, dass HA diesen Parameter dann aber generell nicht mehr plotten kann, sondenr nur noch als Timeline angezeigt hätte. Da wären mir dann auch wieder viele User auf's Dach gestiegen.

Von daher war die generelle Lösung jetzt die sinnvollste: Wen die Fehlermeldungen im Log stören (oder sie überhaupt mitbekommt), kann hier systemweit nachstellen, wovon auch diejenigen profitieren, die ihre Konfiguration selbst per YAML anlegen und nicht für jede Entität eine Umwandlung vornehmen wollen. Die meisten, die Auto-Discovery einsetzen, werden das Problem aber wie gesagt gar nicht bemerken, und dann ist's auch gut so ;)...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

freetz

Zitat von: thetaphi am 17 April 2025, 11:40:18Als Tipp: Wenn man viele Parameter abfragen will und die Intervalle auch unterscheidlich sein sollen (ich will alle 15 Sekunden die Kesseltemperatur und Vor/Rücklauf haben, aber die aktuelle Außentemperatur nur alle 10 Minuten), dann empfehle ich: Gar keine Parameter in die Konfig von BSB-LAN schreiben und statt dessen in Home Assistant mehrere zeitbasierte Automationen (ich habe solche mit Trigger "alle 15 Sekunden", alle "2 Minuten", "alle 10 Minuten" und "jede Stunde um 7 nach"), die via "MQTT: Publish" an den "BSB-LAN/poll" Endpoint die Liste der Parameter kommasepariert senden. Das hat auch den Vorteil das es alles in HA definiert ist und nicht verteilt über mehrere System. BSB-LAN pollt bei mir aktiv gar keine Werte.

...so wie es auch in einem extra dafür gemachten YouTube-Video auf dem BSB-LAN-Kanal erklärt ist ;)...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

bimmerfriend

Moin, nun läuft es auch wieder! Eigentlich war prinzipiell alles richtig. Hat aber nicht funktioniert, weil ich im Poll Befehl einen Schreibfehler hatte... Depp.

Nun ist das Thema gelöst, Raumsensor läuft auch wieder. Das letzte, offene Thema auf meiner Liste ist TWW Push: ich bekomme über den Wert 10018 den Status zum TW, allerdings ist der ja Bit-codiert. Kann mir einer auf die Sprünge helfen, wie ich den in einzelne Zustände zerlegen kann? Also je nach gesetzten Bit einen Zustand anzeigen kann?

In der GUI von BSB wird das ja gemacht, aber nicht übertragen...




Zitat von: thetaphi am 17 April 2025, 11:40:18Hi,

Zitat von: bimmerfriend am 17 April 2025, 10:15:40... und noch ein Update:

Nachdem ich nun meine Parameter Liste wieder händisch gefüllt habe, stehen auf einmal wieder alle Werte im MQTT zur Verfügung...

Ich verstehe es nicht!

Das war noch nie anders, BSB-LAN kann nur Parameter nach MQTT schreiben, die es vorher explizit abgefragt hat. Bei den Bus-Telegrammen werden nur diese geloggt die das System selbst sendet und das ist bei den meisten Geräten lediglich die Kesseltemperatur, die alle 10 Sekunden kommt, weil es die Displayunit selbst pollt. Von alleine passiert aber auf dem Bus nicht viel, außer das Brennerstatustelegramm, was ich als Trigger in HA benutze, um dass noch mehr Infos und öfter zu pollen.

Als Tipp: Wenn man viele Parameter abfragen will und die Intervalle auch unterscheidlich sein sollen (ich will alle 15 Sekunden die Kesseltemperatur und Vor/Rücklauf haben, aber die aktuelle Außentemperatur nur alle 10 Minuten), dann empfehle ich: Gar keine Parameter in die Konfig von BSB-LAN schreiben und statt dessen in Home Assistant mehrere zeitbasierte Automationen (ich habe solche mit Trigger "alle 15 Sekunden", alle "2 Minuten", "alle 10 Minuten" und "jede Stunde um 7 nach"), die via "MQTT: Publish" an den "BSB-LAN/poll" Endpoint die Liste der Parameter kommasepariert senden. Das hat auch den Vorteil das es alles in HA definiert ist und nicht verteilt über mehrere System. BSB-LAN pollt bei mir aktiv gar keine Werte.