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

RonaldN

Hallo Frederik

Kurze Frage... Wenn Du die BSB_LAN_config.h anpasst/veränderst, setzt Du dann eine neue Versionsnummer (#define CONFIG_VERSION 38)?
Hätte den Vorteil, dass ich meine bestehende Übernehmen kann, ohne die beiden vorher zu vergleichen.



freetz

Eigentlich ja. Da ich aber gerade viele Änderungen vornehme, kann es sein, dass ich mehrere Änderungen "sammle" und nicht für jede eine neue Nummer verteile.
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

Ich habe jetzt die beiden custom function Programme, die zur "Room Unit Emulation" gehören, an die Version 4.1 angepasst. Falls jemand Push-Buttons mit BSB-LAN nutzt, würde ich mich freuen, wenn das mal jemand "in Echt" testen könnte, weil ich jetzt das Auslösen nur simulieren konnte. Danke!
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

RonaldN

Hallo Frederik

ich habe mir gerade die neue Version auf mein Testsystem installiert und an den Bus gehangen... Vorweg, die neue MQTT Struktur ist übersichtlich und gefällt mir. Hat zwar zur Folge, dass ich meine Telegraf Konfiguration anpassen muss, aber den Weg muss ich wohl gehen...

Um den Aufwand für mich aber geringer zu halten, würde ich mich freuen, wenn es möglich ist, die Parameter, die zyklisch versendet werden, in einem eigenen Zweig zupacken. Denn in der alten Version habe ich nur die "Logging" Daten auf dem Brocker bekommen. Jetzt laufen, jedes mal wenn ich auf der GUI in den Heizungsfunktionen etwas auswähle, die gesamten Parameter des Zweiges an den Broker, so dass ich in meiner Telegrafkonfig eine Whitelist erstellen müsstte, damit nur relevanten "Logging" Parameter in die Datenbank geschrieben werden.

Oder Alternativ die unten stehenden Optionen konfigurierbar zu machen, so dass die Möglichkeit besteht, zu entscheiden, wann Daten an den Broker gesendet werden sollen...

Ist das machbar?

Gruß
Ronald


ZitatThe /status topic is updated in four ways:

via logging parameters to MQTT as explained above
every time a URL query is made to BSB-LAN
every time a parameter is changed through the room unit
every time the parameter is updated via the /poll topic as explained above

freetz

Hm, wie oft kommt es denn vor, dass Du nach dem Einrichten von BSB-LAN in die Home Automation noch auf das Webinterface zugreifst? Wenn ich das nicht wegen der Projektarbeit machen müsste, würde ich vermutlich nur alle paar Monate mal Kategorien oder Parameter dort abrufen. Den Rest mache ich wenn, dann in FHEM. Von daher ist die Frage, ob da wirklich in nennenswertem Umfang Daten anfallen?
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

So, ich habe jetzt den neuen Konfigurationsparameter "Nur Log Parameter an MQTT senden" hinzugefügt. Wenn dieser aktiv ist, werden nur die in BSB-LAN eingetragenen Log-Parameter an den Broker übermittelt. Ein Logging über das neue /poll Topic ist ebenfalls dann noch möglich. Ich hoffe, das ist das, was Du brauchst.
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

RonaldN

Zitat von: freetz am 20 November 2024, 18:24:17So, ich habe jetzt den neuen Konfigurationsparameter "Nur Log Parameter an MQTT senden" hinzugefügt. Wenn dieser aktiv ist, werden nur die in BSB-LAN eingetragenen Log-Parameter an den Broker übermittelt. Ein Logging über das neue /poll Topic ist ebenfalls dann noch möglich. Ich hoffe, das ist das, was Du brauchst.

Wow... das gning fix... Vielen lieben Dank! ich werde es mir heute ansehen. Es klingt auf jeden Fall so, wie ich es mir vorstelle. Das /poll auch gesendet wird, ist perfekt.

Ja, ich nutze die GUI öffters, da ich nur die "40" Parameter logge. Ich nutze keine HA App. Nutze Telegraf, InfluxDB und Grafana zusammen mit Mosquitto. Daher auch nur der Ansatz, der "interessaten" Parameter zu loggen.

RonaldN

Zitat von: freetz am 20 November 2024, 18:24:17So, ich habe jetzt den neuen Konfigurationsparameter "Nur Log Parameter an MQTT senden" hinzugefügt. Wenn dieser aktiv ist, werden nur die in BSB-LAN eingetragenen Log-Parameter an den Broker übermittelt. Ein Logging über das neue /poll Topic ist ebenfalls dann noch möglich. Ich hoffe, das ist das, was Du brauchst.

Hi Frederik

Habe die neue Version drauf und habe den neuen Punkt in den Settings gefunden. Leider scheint es nicht zu funktionieren oder ich mache etwas falsch...

Wenn ich den Punkt "An MQTT-Broker senden" aktiviere, bekomme ich regelmäßig die Logwerte gepusht. Wenn ich den Punkt "Nur Log-Parameter an MQTT senden" ebenfalls anklicke, werden keine Werte mehr versendet. Sobald den Punkt deaktiviere, laufen die Werte wieder rein.

Wenn ich nur "Nur Log-Parameter an MQTT senden" aktiviere, laufen ebenfalls keine Daten ein.

Mache ich hier möglicherweise etwas falsch?

Gruß
Ronald



whysee

Hallihallo liebe FHEM Community :'D

ich habe bei mir @home jetzt auch (endlich) eine WP-Kombination - die BLW Mono-P 6-11 + WGB 14.1-38.1 Gasbrennwertkessel. Der Gasbrenner steht ja leider auf der not-compatible Liste :( - die BLW Mono ist nicht explizit benannt.

In der Dokumentation (https://www.alternative-haustechnik.de/media/50/8d/f2/1697449900/ba-broetje-blw-mono-p.pdf) ist leider auch weder BSB, noch LPB oder PPS benannt, lediglich OpenTherm/R-Bus. Einzig der Hinweis "Lokaler Kommunikationsbus zur Regelungsleiterplatte IWR RMS (SCB-10)" in der Beschreibung zur EHC-05 Regelungsleiterplatte hat mich etwas aufhorchen lassen. Könnte das evtl. LPB sein?


freetz

@RonaldN: Du hast Recht, da war noch ein Fehler, kannst Du die neueste Version mal installieren und schauen, ob es jetzt geht?
@whysee: Nein, das passt leider nicht mit BSB-LAN. Interessanterweise ist dieser Kommunikationsbus noch ein anderer Bus, laut Doku ein "S-Bus", von dem ich aber auch noch nie etwas gehört habe. Schade, dass Brötje in der Hinsicht bei er Heizung das erfolgreiche LPB-System verlassen hat...
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

whysee

@freetz Ah, schade :( S/L/R-Bus hängen anscheinend zusammen: Local Bus: Verbindung zwischen Geräten; System Bus: Verbindung zwischen Anlagen; Room unit Bus: Anschluss an ein Raumgerät (https://www.alternative-haustechnik.de/media/1c/80/86/1697441373/ma-broetje-wbc22-281.pdf).

Immerhin scheint der R-Bus ja zumindest irgendwie OpenTherm kompatibel zu sein (oder ist das OpenTherm?).

RonaldN

Zitat von: freetz am 22 November 2024, 16:25:32@RonaldN: Du hast Recht, da war noch ein Fehler, kannst Du die neueste Version mal installieren und schauen, ob es jetzt geht?

Hi Frederik... Jetzt scheint es richtig zu funktionieren... beide Kästchen aktiviert, bei Auswahl auf der GUI wird nichts an den Broker geschickt, die Updates kommen aber durch und /poll tut es auch... Vielen lieben Dank!!

freetz

@RonaldN: Prima, das freut mich!
@whysee: Ah, interessant, das sehe ich zum ersten Mal, danke! Was R-Bus und OpenTherm angeht, bin ich mir nicht sicher, ob das das Gleiche ist, weil es ja das GTW16 Interface gibt, was zwischen OpenTherm und R-Bus vermittelt. Der BridgeNet-Bus von Elco/Ariston ist eBus, aber R-Bus und BridgeNet-Bus sind m.W. nicht identisch.
Hat denn Deine Heizung neben dem R-Bus auch einen L- bzw. S-Bus oder brauchst Du dafür entsprechende Erweiterungen?
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

Ergänzung: Ich habe mir damals nur die Kommunikaton auf dem R-Bus angesehen, weil ich nur ein GTW17 und eine Brötje IDA zur Verfügung hatte, wo ich dann aber nicht in der Lage war, ein (TTL-/RS232-basierendes) serielles Protokoll mit dem Oszilloskop zu entdecken. Meine Beobachtungen zum R-Bus hatte ich im mikrocontroller.net Forum mal geteilt, aber das hat niemand aufgegriffen:
https://www.mikrocontroller.net/topic/459948

In Deiner Anleitung sehe ich aber, dass der L-Bus vom Display zum Mainboard geht. Wenn man hier ohne größeren Aufwand die Leitungen mit einem Oszilloskop messen könnte, gäbe es vielleicht die Hoffnung, dass hier auch ein serielles Protokoll läuft, was man dann analysieren könnte. Für Übertragungen, die rein auf Veränderung der Stromstärke basieren, fehlt mir ledier das Wissen...
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

horizons

Zitat von: freetz am 19 November 2024, 04:22:28So, "state_class" ist jetzt für alle Sensoren aktiv, die weder Stunden noch kWh als Einheiten haben, weil diese m.W. die einzigen sind, die (auch) kumulativ verwendet werden. Es sollte reichen, einfach noch einmal /M1 aufzurufen, dann wird die Definition für die entsprechenden Entities aktualisiert.

Könntest du dein Code hierzu erweitern für die Autodiscovery Sensoren?
Ich hätte gerne state_class=total für alle anderen numerischen sensoren wie z.b. Starts oder Gerätebetriebsstunden.

Denn damit ließe sich die Änderung statistisch verfolgen und es würde charts wie diese hier ermöglichen
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.


Für die Stunden und andere units müsste es eigentlich mit dieser Code Änderung funktionieren in mqtt_handler.h (also dort wo du auch schon measurement hinzugefügt hast)
https://github.com/fredlcore/BSB-LAN/blob/39ebfe9d87ee39ae6f6caf6ff2fa7dbef92be35a/BSB_LAN/include/mqtt_handler.h#L471

            if (decodedTelegram.unit[0]) {
              appendStringBuffer(&sb_payload, "\"unit_of_measurement\":\"%s\",", decodedTelegram.unit);
              if (strcmp(decodedTelegram.unit, U_HOUR) && strcmp(decodedTelegram.unit, U_KWH)) {    // do not add state_class for potentially cumulative parameters
                appendStringBuffer(&sb_payload, "\"state_class\":\"measurement\",");
              } else {
                appendStringBuffer(&sb_payload, "\"state_class\":\"total\",");
              }
            }


Für andere numerische Werte eventuell weiter oben in deinem code
https://github.com/fredlcore/BSB-LAN/blob/39ebfe9d87ee39ae6f6caf6ff2fa7dbef92be35a/BSB_LAN/include/mqtt_handler.h#L460

        } else if (decodedTelegram.type != VT_ENUM && decodedTelegram.type != VT_CUSTOM_ENUM && decodedTelegram.type != VT_CUSTOM_BYTE && decodedTelegram.type != VT_CUSTOM_BIT) {
          appendStringBuffer(&sb_payload, "\"icon\":\"mdi:numeric\",");
          appendStringBuffer(&sb_payload, "\"state_class\":\"total\",");
        }

Eventuell würde die state_class aber 2x in den string buffer hinzugefügt werden. Blicke bei dem Code mit den vielen if`s und typen abfragen nicht durch.


bzgl state_class glaube ich zumindest dass dies so richtig wäre.
https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes
https://developers.home-assistant.io/docs/core/entity/sensor/#how-to-choose-state_class-and-last_reset

-----

Ich habe zudem ein Problem welches ich mir nicht erklären kann.
Jedes mal wenn ich ein FW  OTA einspiele dauert es bis zu einer Stunde bis die MQTT Verbindung richtig funktioniert.
Ich habe direkt nach dem update immer lauter neu verbindungen in Mosquitto für den bsb-lan.

Das Web Interface des BSB-Lan funktioniert dann auch immer wieder mal nicht und ping zur IP bringen ein Time out.
Wenn ich aufs Web interface komme (und es kein Timeout gibt) und ich unter Einstellungen MQTT abschalte geht sowohl ping als auch das Webinterface sofort wieder normal.
Schalte ich MQTT wieder gibt es eine Weile Probleme bevor es dann ohne irgendetwas zu ändern auf einmal tadellos funktioniert und die MQTT Verbindung verbunden bleibt.

Andere Geräte die über mqtt kommunizieren haben keine Probleme.

Im Mosquitto Log sieht das ganze dann immer wie folgt aus, dass ich alle paar Sekunden eine neue Verbindung habe:
2024-11-25 14:10:54: New connection from 192.168.5.153:56143 on port 1883.
2024-11-25 14:10:54: New client connected from 192.168.5.153:56143 as BSB-LAN (p2, c1, k15, u'mqtt-bsb-lan').
2024-11-25 14:11:02: Client BSB-LAN closed its connection.
2024-11-25 14:11:06: New connection from 192.168.5.153:55412 on port 1883.
2024-11-25 14:11:06: New client connected from 192.168.5.153:55412 as BSB-LAN (p2, c1, k15, u'mqtt-bsb-lan').
2024-11-25 14:11:10: Client BSB-LAN closed its connection.
2024-11-25 14:11:13: New connection from 192.168.5.153:51668 on port 1883.
2024-11-25 14:11:13: New client connected from 192.168.5.153:51668 as BSB-LAN (p2, c1, k15, u'mqtt-bsb-lan').
2024-11-25 14:11:18: Client BSB-LAN closed its connection.
...

Oder auch mal
2024-11-25 15:31:39: New connection from 192.168.5.153:54866 on port 1883.
2024-11-25 15:31:39: New client connected from 192.168.5.153:54866 as BSB-LAN (p2, c1, k15, u'mqtt-bsb-lan').
2024-11-25 15:31:52: New connection from 192.168.5.153:62495 on port 1883.
2024-11-25 15:31:52: Client BSB-LAN already connected, closing old connection.

In dem von bsb-lan verwendenten PubSubClient ist ein 15 Sekunden Keepalive und Timeout definiert, sodass eigentlich eine sekündliche Neuverbindung nicht sein sollte.

Habe schon das Log intervall erhäht, einen anderen mqtt nutzer gegeben, weniger parameter geloggt, und die neue "Nur Log-Parameter an MQTT senden" Einstellung probiert.
Wie geschrieben ich habe gemerkt dass nach ungefähr 1h später das Problem einfach weg ist.
z.b. 15:29:01 mqtt aktiviert.
erst um 16:45:22 hat er sich das letzte mal neu verbunden und blieb dann auch verbunden.

Ich habe ein log intervall von 300 Sekunden (also 5 minuten) und mit den log parametern "70,110,111,112,114,115,116,118,120,10110" auch nicht viele Parameter die ich logge.

Hat jemand das gleiche Problem oder eine idee woran dies liegen könnte?
Oder was ich sonst noch testen könnte?