Monitoring der Gas Heizung

Energie sparen ist zur Zeit angesagter denn je. Bisher kannte ich jedoch nur den Jahresverbrauch unserer Brötje Gastherme und wollte mir ein besseres Bild davon machen, wann eigentlich Gas verbraucht wird. Insbesondere weil wir noch eine Solarthermieanlage an die Heizung angeschlossen haben.

Die erste Idee, den Gasverbrauch durch einen Magnetfeldsensor am Balgengaszähler zu messen, habe ich schnell wieder verworfen, da mich die Hardware zur Umwandlung der S0 Signale im Vergleich zu der Schaltung zur Umwandlung der Stromzählersignale vor einige Herausforderungen stellte.

Zum Glück wurde ich auf das BSB-LAN Projekt aufmerksam gemacht. Hier wird der BSB Bus der Therme direkt abgegriffen und die dazu notwendige Platine mitsamt den Bauteilen konnte ich bei Frederik einfach bestellen. Die JoyIt NodeMCU war auch wenige Tage später da und dank des sehr ausführlichen Handbuchs war die NodeMCU per Arduino auch zügig geflasht. Erfreulicherweise hat der neue Netzwerkknoten direkt fehlerfrei funktioniert und liefert nun jede Minute die Außen-, Kessel-, Solarkollektor-, und Trinkwassertemperaturen. Sogar eine STL Datei für ein Gehäuse existiert, das wurde natürlich auch gleich 3D-gedruckt. Prinzipiell kann man über den BSB Bus auch sämtliche Konfigurationsparameter der Heizung anpassen, daran habe ich mich aber noch nicht getraut.

Die fertig verlötete BSB-LAN Platine befindet sich unterhalb der NodeMCU im 3D-Druck Gehäuse und ist mit zwei Andern eines alten Telefonkabels an die Servicebuchse des Heizungsreglers verbunden.

Seit ein paar Monaten ist auch ein Synology DS220j NAS Teil des heimischen Netzwerks. Im Gegensatz zu teureren NAS läuft darauf kein Docker Dienst, doch dieser lässt sich relativ einfach nachrüsten (für die DS220j musste ich die 64-Bit ARM Verison der Docker binaries installieren, außerdem funktioniert statt der individuellen Port-Freigabe nur –network=host zu starten der Docker Container). Mit diesem Setup konnte ich nun Grafana und Influxdb container installieren, um die Daten der Heizung zu visualisieren. Doch leider stellte sich heraus, dass die 4×1.6GHz und 512MB RAM der DS220j nicht gleichzeitig performant die NAS Services und die Docker Container ausführen können (die Festplatten LEDs blinkten ständig und Synology Photos wollte auch nicht mehr zeitnah synchronisieren).

Daher habe ich Docker, Grafana und Influxdb auf dem Raspberry Pi Zero 2 W installiert, auf dem bereits die volkszähler.org Stromzähleranbindung installiert ist. Wie sich herausstellte, hätte ich besser damals die 64-bit Beta Version von Raspbian installiert, weil influxdbv2 nur noch 64-bit unterstützt. Da ich das ganze Setup auf dem Raspberry Pi nicht neu machen wollte, wurde eben influxdb in Version 1.8 installiert. Die initiale Konfiguration geht damit leider nicht bequem über ein Web-Frontend, sondern direkt in der influx shell, ist an sich aber auch schnell erledigt.

Die BSB-LAN Software gibt ihre Messwerte per MQTT oder bei Web-API weiter. Da auf dem Raspberry Pi bereits ein Mosquitto Server für die Feuchtigkeits- und Temperaturmessung, basierend auf dem Conrad IoT Adventskalender 2018, läuft, nutze ich MQTT. Um die MQTT Nachrichten in der Influx Datenbank zu speichern, wollte ich ursprünglich Telegraf nutzen. Doch müsste ich jeden einzelnen Nachrichtentyp eigens konvertieren, so dass ich lieber das Influx-Plugin in NodeRed installiert habe, und dort eine simple Weiterleitung – leider auch einzeln pro Nachricht – zusammengeklickt habe.

Auszug aus dem NodeRed Flow zur Weiterleitung der MQTT Nachrichten an Influxdb.

Damit die einzelnen Werte nicht als String sondern als Floating Point in der Datenbank landen, habe ich folgende simple Funktion dazwischen gehängt (wahrscheinlich kann man das deutlich eleganter lösen, aber immerhin funktioniert es so):

var x = msg.payload;
msg.payload = x*1.0; //ensure it is a number
return msg;

Neben den Temperaturen will ich ja eigentlich den Gasverbrauch der Gastherme messen. Dazu kann man den Parameter 2550 „Gasenergie“ anschalten (nur im Fachmann-Modus sichtbar, siehe Foto oben, oder eben im BSB-LAN Webinterface). Tatsächlich liefert die Therme seitdem unter den Paramextern 8381 und 8382 die verbrauchte Gasenergie für Heizen und Trinkwasser. Aus der Ableitung der Werte kann ich einen ersten Eindruck bekommen, wann der Brenner anspringt und Gas verbraucht wird.

Erfreulicherweise kann vzlogger die Stromverbrauchswerte auch direkt in influxdb schreiben, so dass ich auf die volkszaehler Middleware und deren deutlich weniger komfortables Frontend deinstallieren konnte (bei mehr als 6h Daten kam es regelmäßig zu timeouts im volkszaehler Frontend).

Grafana Dashboard mit den letzten 24h Temperaturkurven und der Ableitung der verbrauchten Gasenergie oben links, der akkumulierten Gasenergie unten links, dem aktuellen Stromverbrauch oben rechts und den Luftfeuchtigkeit und Temperatur im Keller unten rechts.

Was bliebt zu tun? Meine ursprüngliche Idee, nun auch Dashboards für den Raspberry Pi via Telegraf, das NAS via SNMP oder den Pi-hole DSN Server zu integrieren, habe ich wieder auf Eis gelegt – die haben alle bereits grafische performance Monitore, und sei es htop, das reicht mir völlig.

Spannender wird die Frage sein, ob der gemessene Gasverbrauch der Therme auch mit den Daten in der Jahresabrechnung übereinstimmt und was passiert, wenn die Trinkwasseraufladung nur noch morgens anschaltet ist, insbesondere ob der Rest der Familie diese wohlgemeinte Gas-Spar-Aktion wertzuschätzen weiß 🙂

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..