eBus

Posted on November 9, 2021

Ich beschreibe in diesem kurzen Artikel meine Erfahrungen mit dem eBus-Protokoll, und wie ich damit die Betriebsparameter der Heizungsanlage auswerten und ein paar kleine Optimierungen daran vornehmen konnte.

Die Vorgeschichte

Im April letzten Jahres ging unsere alte Gasheizung plötzlich kaputt. Das kam nicht gänzlich unerwartet, war sie doch mindestens dreißig Jahre alt und zum Thema Wartung sei nur gesagt, dass die Heizungsfirma den Mischer für den Fußbodenheizkreis abschraubte, als dieser Defekt wurde, das Ventil auf vollen Durchfluss stellte und die zugehörige Steuerungseinheit einfach am Kabel an der Wand hängen ließ. Bei so einem Vorgehen kann man sich vorstellen, wie gut die Anlage selbst gewartet wurde. Also musste spätestens jetzt mit dem Ausfall der Anlage auch eine neue Heizungsfirma gefunden werden. All das gibt eigentlich genug Stoff für eine eigene Geschichte, die ich vielleicht irgendwann einmal aufschreiben werde, aber hier soll es jetzt um das Thema eBus gehen. Nachdem der Inhaber der neuen Firma die alte Anlage tatsächlich noch einmal für eine Woche in Gang kriegte, indem er mit einem Streichholz, einer Zange und einem Schraubenzieher am Gasbrenner hantierte, war ich sehr beeindruckt, so dass ich ihm auch die Planung der neuen Anlage komplett überließ und mich weder einmischte noch nachfragte, was er eigentlich so verbauen wolle. Die alte Anlage fiel eine Woche später dann endgültig aus und es war eine weitere Woche dann ziemlich kalt im Haus. Die Heizungsbaufirma versprach, so schnell wie möglich zu kommen und die neue Anlage zu montieren. Das dauerte ganze zwei Tage, was eigentlich nicht viel ist wenn man bedenkt, dass einmal alles komplett umgebaut werden musste, und bereits am Abend des ersten Tages lief die neue Anlage temporär – ohne Mischermodul für die Fußbodenheizung und mit temporärem Schornstein. Aber egal: Hauptsache, es wurde warm! Doch wurde es warm?

Na ja, nachdem die Monteure am Abend nach vielen Überstunden nach Hause gegangen waren, ging ich in den Heizungsraum und sah mir die neue Anlage an. Ich freute mich auf die bevorstehende Wärme. Im Augenblick wurde noch das Warmwasser aufgeheizt, das hatte Vorrang. Das Fabrikat der Anlage war Wolf, eine CGB 24 Gastherme. Leider bemerkte ich nach weiteren Stunden, dass es im Haus nicht so recht warm werden wollte. Und so begann meine anfangs eher unfreiwillige Recherche zum Thema moderne Gasheizungssysteme… Die Monteure hatten dankenswerterweise schon einen temporären Außentemperaturfühler angeschlossen, allerdings hatten sie die richtige Leitung in der Wand nicht gefunden, deshalb befand sich der Fühler noch innen und maß aus irgendeinem Grund 24 Grad. Das war nicht nur genug, um den Sommermodus der Heizung zu aktivieren, sondern sorgte auch dafür, dass die Vorlauftemperatur nicht über zwanzig Grad stieg. Also las ich am Abend, immer noch frierend, im Internet diverse PDFs, wie man die Heizkurve anpassen konnte. Auch das Konzept der Heizkurve kannte ich bis dato nicht. Im Prinzip ist es eine einfache Funktion, die in Abhängigkeit weniger Parameter (meist einfach nur der über die letzten Stunden gemittelten Außentemperatur) die Vorlauftemperatur bestimmt. Da der Temperaturfühler immer 24 Grad lieferte, stellte ich die Kennwerte der Heizkurve so ein, dass die Vorlauftemperatur immer 40 Grad betragen würde. Mit solchen Luxusproblemen wie einer zu hohen Innentemperatur konnte ich mich schließlich immer noch auseinandersetzen – jetzt erstmal etwas Wärme. Und es ward wunderbar warm!

Am nächsten Tag wurde dann der Außentemperaturfühler korrekt an der Außenwand auf der Nordseite des Hauses montiert. Außerdem wurde ein neuer Schornstein in den alten hineingebaut, mit Wärmetauscher und Luftansaugung von außen. Außerdem kam die neue Steuereinheit für den uralten Stellmotor, um die Fußbodenheizungsvorlauftemperatur gegenüber dem restlichen Heizkreis absenken zu können. Damit gab es jetzt statt einer plötzlich zwei Heizkurven. Der Monteur erklärte stolz, er habe noch “einen freien Slot am eBus” gefunden. Ich hatte bis dahin noch nie vom eBus gehört, auch bei meiner nächtlichen Recherche zum Thema Vorlauftemperatur anpassen war mir der Begriff nicht über den Weg gelaufen. Aber ich wurde hellhörig. eBus, das klang nach Bus, und Bus klang sehr danach, der Heizungsanlage ihre Betriebsparameter entlocken zu können. Ich beschloss, mich ein wenig über den eBus zu belesen.

Nachdem die Monteure auch am zweiten Tag sehr lange (und sehr gut) gearbeitet und sich schließlich verabschiedet hatten, warf ich einen Blick unter die Abdeckung der Steuereinheit des Mischermoduls. Das war am einfachsten von allem zu öffnen und man konnte dies auch problemlos im Betrieb tun. (Natürlich gibt es da Netzspannung, an der man lebensgefährlich sterben kann; Vorsicht ist also geboten.)

Die Steuerungseinheit des Mischermoduls

Im Bild sieht man die Steuerungseinheit des Mischermoduls. Ganz rechts sieht man zwei mal zwei Klemmen, über die man jeweils den eBus abgreifen kann. Eine davon war noch frei. Die leichteste Zugang zum eBus; viel besser, als die Therme selbst “auseinanderschrauben” zu müssen.

Der eBus

Der eBus ist ein Bus, der auf dem UART-Standard aufbaut. UART ist ein Protokoll, das früher serienmäßig in Computern zum Einsatz kam und als RS232 bekannt wurde. Heute kommt es noch gerne im Serverumfeld und bei Mikrocontrollern zum Einsatz. UART beschreibt eigentlich nur die Art, wie die Daten codiert werden; RS232 legt noch weitere Dinge wie zum Beispiel die Pinbelegung und die Pegel fest. Bei UART ist es so, dass man ein gemeinsames Potential hat und für jede Sende-Empfangsrichtung eine eigene Ader. Also braucht man zum Beispiel für die bidirektionale Kommunikation zwischen Computer und Modem zwei Datenleitungen: Eine, über die der Computer Daten an das Modem schickt, und eine, über die das Modem Daten an den Computer schickt. Ein Clock-Signal gibt es nicht, dafür muss man sich vorher auf eine Übertragungsgeschwindigkeit einigen.

eBus funktioniert ein bisschen anders; über das UART-Protokoll wird eine weitere Protokollschicht gelegt. Alle Busteilnehmer nutzen die gleiche Ader, um Daten zu senden und zu empfangen. Gleichzeitig können Busteilnehmer auch über den eBus mit Strom versorgt werden. Es gibt einen Mechanismus, mit dem Busteilnehmer erkennen können, ob eine Kollision (mehrere Teilnehmer senden gleichzeitig) aufgetreten ist. Eine der beiden Adern liegt normalerweise auf Masse; man sollte also auf korrekte Polarität achten. Das eBus-Protokoll ist ein sogenanntes Multi-Master-Protokoll (ist das noch der aktuelle Begriff?), was einfach nur bedeutet, dass es mehr als einen Teilnehmer geben kann, der von sich aus Kommunikation initiiert. Damit das halbwegs kollisionsfrei funktioniert, gibt es genau einen Taktgeber auf einem eBus, was aber noch einmal etwas anderes als ein Clock-Signal ist. Der Taktgeber schickt über die Datenleitung selbst das sogenannte SYN-Symbol, was soviel bedeutet wie: “Grad nix los, Du kannst senden!” Und das wird auch wirklich nur dann geschickt, wenn gerade nichts los ist. Dann muss man innerhalb eines bestimmten Zeitraums mit dem Senden von Daten beginnen.

Nachdem ich die Theorie über den Bus ein bisschen verstanden und auch eine Software gefunden hatte, die das Protokoll sprechen konnte, da gab es nur noch ein Problem: Der eBus arbeitet mit anderen Pegeln als die uart-Schnittstelle von gewöhnlichen Mikrocontrollern, und es gab zwar im Internet eine Bauanleitung für eine Platine, die die Pegel wandeln konnte, doch ich hatte keine Lust, mir eine Platine ätzen zu lassen und mich dann mit kalten Lötstellen zu versuchen, die im schlimsten Fall sogar zu einer kalten Wohnung hätten führen können. Also suchte ich nach einer fertigen Lösung und fand zu meiner Begeisterung auch eine: Nämlich den eBus-Konverter der Firma esera Automation. Diesen gab es in mehreren Varianten: Seriell (RS232), USB oder Ethernet. Ich hörte, dass die Ethernet-Variante prinzipbedingt nicht sehr stabil sei. Das liegt wohl daran, dass Ethernet ein paketorientiertes und nicht echtzeitfähiges Protokoll ist, der Layer 1 (Siehe OSI-Modell) des eBus-Protokolls aber zum Teil in Software implementiert werden muss, und das wiederum ist auf eine exakte Taktung angewiesen. Insbesondere muss man, wie schon erwähnt, nach einem SYN-Symbol des zuvor erwähnten Taktgebers innerhalb einer festgelegten Zeit eine Antwort senden. Ist man zu spät, wird das eigene Signal möglicherweise mit dem eines anderen Busteilnehmers kollidieren. Trotzdem funktioniert es in meinem Fall sehr gut mit Ethernet, und das, obwohl sich zwischen dem eBus-Konverter und der Software drei Managed Switches befinden und das GNU/Linux-System, auf dem der ebusd läuft, nur als Guest auf einem FreeBSD-Host läuft. Also alles in allem alles andere als Echtzeitfähig. Dass es trotzdem klappt, liegt vielleicht daran, dass ich nur zwei Befehle alle fünf Minuten absetze und ansonsten nur die Broadcasts auswerte, und für letzteres ist die Echtzeit egal. Es kann aber auch daran liegen, dass die Symbolrate des eBus-Protokolls mit 2400 Baud weit unter der Datenübertragungsrate des Gigabit-Ethernets liegt.

Anschluss des eBus-Konverters

Der eBus-Konverter in einem Testaufbau

Der eBus-Konverter kommt im 2TE-Hutschienengehäuse. Das schreit ja regelrecht danach, ordentlich eingebaut zu werden. Ich fand beim Elektromaterialversandhandel meines Vertrauens (ich glaube, es war Elektro Wandelt) einen schönen Kleinverteiler von Spelsberg, der schon fertig mit Hutschiene und Bohrungen kam. Die Lieferzeit betrug eine Woche, und so lag der eBus-Konverter bis dahin fröhlich in der Gegend rum und wurde mit einem uralten Netzteil mit konventionellem Trafo betrieben. Zeitgleich mit dem Kleinverteiler kam auch das getaktete Netzteil von der Firma Meanwell. Super Qualität, nur leider zog der Entstörkondensator prinzipbedingt das Potential des Sekundärkreises auf Netzpotential und störte damit den eBus-“Empfang”, was sich darin äußerte, dass sehr viel, und zwar ausschließlich Blödsinn empfangen wurde. Das Problem wurde behoben, indem der Sekundärkreis einseitig geerdet wurde. (Hier hatte ich übrigens sehr freundliche Unterstützung von der Herstellerfirma ESERA) Damit wurde aus der Sicherheitskleinspannung eine nicht mehr ganz so sichere “Funktionskleinspannung mit elektrisch sicherer Trennung (PELV)”. Aber ich will ja mit dem eBus-Konverter auch nicht baden gehen. (Allerdings verfolge ich immer interessiert die Temperaturverläufe, während ich ein Bad nehme; wie praktisch, dass mein Handy wasserdicht ist) Die Steuerungseinheit für das Mischermodul hatte noch einen eBus-Anschluss frei, und das war perfekt, um den eBus-Konverter anzuschliessen. Die vieradrige Leitung mit Schirm hatte ich noch übrig. Es werden nur zwei Adern benötigt. Den Schirm werde ich gelegentlich noch Heizungsseitig erden, der eBus funktioniert aber auch ohne Erdung.

Einbau in den Kleinverteiler

Nach der leicht traumatischen Erfahrung eines plötzlichen Heizungsausfalls war ich schon etwas unruhig, als ich den eBus-Konverter an den eBus der Heizung anschloss. Natürlich, nachdem ich alle Komponenten stromlos geschaltet hatte. Nachdem die alte Heizung gleich zweimal ausgefallen war, kostete es mich einige Überwindung, das zu tun. Als die Heizung dann nach Anschließen des eBus-Konverters wieder hochfuhr, war ich ziemlich nervös, doch das System bootete ohne Probleme. Ja, es ist schon lustig! Meine größte Sorge war nun also nicht, ob der Brenner korrekt funktionierte, sondern ob der “Computer mit angeschlossenem Gasbrenner und Pumpe” ordentlich bootete.

Der verbaute und in Betrieb genommene eBus-Konverter

Nachdem der hardwareseitige Teil also gelöst war, ging es nun darum, die empfangenen Daten auch auszuwerten.

ebusd

Der eBus-Konverter liest die Daten vom eBus und schickt sie wahlweise via TCP oder UDP oder einer “emulierten seriellen Schnittstelle”, was nach Schwarzer Magie im Kernel klingt. Genauso schreibt er über das Netzwerk ankommende Pakete eins zu eins auf den eBus. Eine Dekodierung von Datenpaketen findet nicht statt. Ich entschloss mich für die UDP-Variante, weil UDP das einfachste und am wenigsten fehleranfällige der möglichen Protokolle ist. Bei UDP muss man einmalig die Zieladresse und den -port einstellen, was über eine spezielle Software erfolgt.

Softwareseitig kommt die freie Software namens ebusd, der eBus-Daemon, zum Einsatz. Das “frei” in freie Software bezieht sich auf die Freiheit, die der Nutzer dieser Software hat, denn es steht der vollständige Quellcode zur Verfügung und darf nach Belieben bearbeitet werden. Freiheit spielt ja hier ohnehin schon eine nicht untergeordnete Rolle, geht es ja darum, ungefiltert den Datenverkehr der Heizungssystemskomponenten auszuwerten, zum Nutzen des Nutzers. Da macht es schon Sinn, freie Software einzusetzen, zumal ich ohnehin ein Fan von solcher Software und auch von der GNU General Public License bin.

Der ebusd ist ein wenig unterdokumentiert, aber ich kriegte es nach einigem Herumprobieren zum Laufen. Man benötigt vor allem ein paar CSV-Dateien, deren Format ich bis heute nicht ganz verstanden habe, in denen beschrieben wird, wie die einzelnen Befehle der Heizung zu kodieren beziehungsweise dekodieren sind. ebusd kann dabei sowohl gezielte Read-Anfragen an einzelne Heizungskomponenten schicken und das Ergebnis auswerten, als auch die Broadcasts und die Kommunikationen einzelner Komponenten untereinander interpretieren. Letzteres hat den Vorteil, dass keine zusätzliche Datenlast auf dem eBus anfällt.

Die Datenpakete des Heizungssystems, vom eBus zum Zeitpunkt des Eintreffens dekodiert

In obigem Screenshot sieht man den ebusd laufen. Jedes eintreffende Paket wird entweder dekodiert, falls es in den CSV-Dateien eine Definition für dieses Datenpaket gibt. Andernfalls wird es “raw” angezeigt.

Auswertung des Systems

Die Heizung ist eine Therme CGB 24 der Firma Wolf. Hierfür gibt es in der Community deutlich weniger Informationen als beispielsweise bei Vaillant. Dennoch schaffte ich es, mir aus verschiedenen Quellen die wichtigsten Daten zusammenzusuchen und kann nun die wesentlichen Parameter der Heizung aus den Broadcasts beziehungsweise aus den Nachrichten der Komponenten untereinander dekodieren. Lediglich für zwei Werte muss ich aktiv auf den eBus schreiben: Für die Ist- und die Solltemperatur des Mischermoduls. Letztere habe ich bereits im Broadcast-Strom identifiziert, doch ich werde noch nicht so recht schlau aus den CSV-Dateien des ebusd und so belasse ich es erstmal dabei, diese beiden Parameter alle fünf Minuten aktiv abzufragen.

Hier eine aktuelle Auflistung sämtlicher Paramter, die ich der Heizung dank eBus-Konverter und ebusd entlocken konnte:

betrd_bm2 bm2 = Brauchwasser_Heizen;Verbraucheraus;42.69;-;-;60.0;dc
betrd_bm2 fw_version_burner = 2.20
betrd_bm2 ionisation = 57
betrd_bm2 no_of_firing = 3020
betrd_bm2 no_of_power_on = 26
betrd_bm2 op_hrs_heating = 1369
betrd_bm2 op_hrs_supply = 4866
betrd_bm2 performance_burner = 25
betrd_bm2 performance_pump = 45
betrd_bm2 pressure = 1.81
betrd_bm2 temp_burner = 46.4
betrd_bm2 temp_exhaust = 45.0
betrd_bm2 temp_return = 40.9
betrd_bm2 uflags4 = 5
betrd_bm2 uflags5 = 10
betrd_bm2 warmwasser_ist = 57.4
broadcast betrd = 0;48;-;46.5;40;57;9
broadcast datetime = -;22:37:10;09.11.2021
broadcast error = E000 22:36
broadcast ident = Kromschröder;  ;0204;8080
broadcast sollw = 5.000;8.398;0;00;60.000
MM1 BM0_MM1 = 02 cc;7.680;19;40;10.0;0.256;66 1e 00 d8 14 5a 0a
MM1 SP1 = 30.8
MM1 VF1 = 30.4
scan.08  = Wolf; !;2002;0000
scan.35  = Wolf;;0204;0100
scan.50  = Wolf; !;2002;0000
scan.51  = Kromschroeder;  ;0208;-
scan.75  = Kromschroeder;  ;0208;-

Hierzu ein paar Erläuterungen.

betrd_bm2 bm2 = Brauchwasser_Heizen;Verbraucheraus;42.69;-;-;60.0;dc

Diese Zeile enthält viele Informationen. Brauchwasser_Heizen bedeutet, dass sowohl der Warmwasser- als auch der Heizbetrieb aktiv ist. Verbraucheraus bedeutet in unserem Falle, dass die Umwälzpumpe nicht eingeschaltet ist. Die 40.75 ist eine Temperaturangabe in Grad Celsius und bezeichnet die aktuell angeforderte Vorlauftemperatur. Diese ergibt sich aus der Heizkurve und der gemittelten Außentemperatur. 60.0 ist die angeforderte Temperatur für das Warmwasser, wobei hier eine Hysterese von 5 Kelvin definiert ist. Das bedeutet, dass das Wasser auf 55 Grad abkühlt, bis es wieder aufgewärmt wird. Kälter als 55 Grad sollte es nicht werden, da ansonsten das Legionellenwachstum stark ansteigen könnte. Ich bin am Überlegen, die Hysterese auf 3K abzusenken und die Warmwassertemperatur auf 58 Grad zu stellen.

Die Zeile:

broadcast error = E000 22:36

Bedeutet nicht etwa, dass ein Fehler aufgetreten ist. Vielmehr meldet die Heizung alle zehn Minuten, dass Error E000, also kein Fehler, aufgetreten ist. Das dauerhafte Ausbleiben dieser Meldung deutet also auf einen Fehler hin. Windows-Nutzer kennen vielleicht ein ähnliches Phänomen – hier gibt es die Fehlermeldung “Fehler – der Vorgang wurde erfolgreich abgeschlossen”. Hier deutet es dann meist allerdings doch auf einen Fehler hin. Ausnahmen bestätigen die Regel.

betrd_bm2 performance_burner = 25

Gibt die aktuelle Leistung des Brenners an. Sie geht von 25% ziemlich stufenlos bis auf 100% hoch, wobei eine Leistung von 100% der Erwärmung des Warmwassers vorbehalten ist. Soweit ich das bis jetzt beobachten konnte, hängt die Brennerleistung von zwei Faktoren ab: Zum einen von der Differenz zwischen Ist- und Sollvorlauftemperatur, sowie von der Differenz zwischen Vor- und Rücklauftemperatur. Liegt die Isttemperatur erstmal über der Solltemperatur, bleibt der Brenner auf 25%, bis schließlich die Hysterese von standardmäßig 7K und dann die Taktsperre greift.

betrd_bm2 ionisation = 57

Zur Sicherheit, zur Vermeidung von Gasaustritt bei fehlender Flamme, wird die Ionisierung der die Flamme umgebenden Luft gemessen. Dieser Sensor ist auch ein beliebtes Verschleißteil.

betrd_bm2 no_of_firing = 3020

Die Entropie, beziehungsweise die Anzahl der Brennerstarts erhöht sich stetig. Bei jeder Zündung wird der Wert inkrementiert.

betrd_bm2 no_of_power_on = 26

Der Strom ist bereits 25 mal ausgefallen, seit die Heizung in Betrieb war. Das war unser Elektriker, der bei jeder Steckdose gemessen hat, ob sie hinter dem Fehlerstromschutzschalter hängt.

betrd_bm2 pressure = 1.81

Der aktuelle Druck auf dem Heizkreis in Bar.

betrd_bm2 temp_burner = 46.4

Die aktuelle Vorlauftemperatur im primären Heizkreis.

Weiter unten findet sich diese Zeile:

broadcast sollw = 5.000;5.398;0;00;60.000

Der zweite Wert bezeichnet die aktuell gemessene, über die letzten drei Stunden gemittelte Außentemperatur. Dies ist der Eingabeparameter für die Heizkurvenfunktion.

Tatsächliche und von der Heizung gemittelte Außentemperatur

Unsere Heizkurve ist wie folgt definiert: Bei 12 Grad gemittelter Außentemperatur oder mehr beträgt die Vorlauftemperatur 35 Grad. (Bei 19 Grad gemittelter Außentemperatur wird der Heizbetrieb komplett eingestellt, dies ist jedoch wieder eine andere Einstellung) Bei -14 Grad oder weniger beträgt die Vorlauftemperatur 65 Grad. Dazwischen wird linear interpoliert. Für die Fußbodenheizung ist definiert: Bei 20 Grad gemittelter Außentemperatur 25 Grad Vorlauf, bei -10 Grad gemittelter Außentemperatur 40 Grad Vorlauf. Bei 18 Grad gemittelter Außentemperatur wird die Fußbodenheizung abgeschaltet.

Diese Werte wurden durch einiges Ausprobieren und natürlich durch die Auswertung der über den eBus abgegriffenen Daten so gewählt. Zwei wichtige Kenngrößen sollen hierbei minimiert werden: Zum einen der Energieverlust, der bei einer zu hoch gewählten Vorlauftemperatur unnötig hoch ausfällt, und zum anderen die Anzahl der Brennerstarts, denn jeder Brennerstart bedeutet ein wenig Verschleiß. Wie kommt es zu unnötig vielen Brennerstarts? Wenn die Vorlauftemperatur zu hoch gewählt ist, werden die Räume zu warm und die lokalen Thermostaten regeln gegen. Damit wird die Heizanlage die Wärmeenergie nicht mehr los, die Vorlauftemperatur erhöht sich weiter, bis schließlich abgeschaltet wird. Nachdem die Vorlauftemperatur dann wieder unter den von der Heizkurve vorgegebenen Wert gefallen ist, beginnt das Spiel von neuem. Man kann noch Einfluss nehmen, indem man die Hysterese verändert (standardmäßig 7 Kelvin) und die Taktsperre variiert (standardmäßig 7 Minuten); ich habe sie auf den Maximalwert von 30 Minuten erhöht.

Ohne die Auswertung des eBus würde ich mich blind fühlen. Ich müsste immer wieder in den Heizungsraum rennen und mich durch ein unübersichtliches Menü quälen, um die Anzahl der Brennerstarts abzulesen. Die Parameter über den eBus nicht nur auszulesen, sondern auch auf ein Diagramm aufzutragen, macht die Sache viel einfacher. Die Diagramme werden mithilfe von munin erstellt.

Die Brenner- und Pumpenleistung an einem Tag

Die “Auswüchse” treten immer dann auf, wenn das Warmwasser wieder aufgewärmt werden muss. Ansonsten sieht man an diesem Diagramm sehr schön, dass die Heizung zwar mit dem niedrigstmöglichen Wert von 25% heizt, was einer Heizleistung von 6kW entspricht. Aber es wird so gut wie nicht getaktet, wodurch der Verschleiß geringer wird und auf eine nicht ganz verkehrte Einstellung hindeutet.

Direkt korreliert sind natürlich die Werte für die Vorlauftemperatur, die man auf dem folgenden Diagramm ersehen kann:

Vorlauftemperatur der Heizungsanlage am Tag

Interessant ist auch, diesen Verlauf über das Jahr verteilt zu sehen:

Vorlauftemperatur der Heizungsanlage im Jahr

Man sieht, dass mit den kälter werdenden Tagen die Vorlauftemperatur steigt. Interessant ist auch, die Soll- und Isttemperaturen der Fußbodenheizung zu betrachten:

ebus_fussboden-day.png

Die Fußbodenheizung hat eine sehr hohe Latenz und man muss mit viel Geduld ausprobieren, welche Werte sich als praxistauglich erweisen. Die Auswertung des eBus hilft hier nur bedingt, jedoch ist es schon interessant zu sehen, wie der Istwert mal mehr und mal weniger stark um den Sollwert schwankt.

Wirklich energiesparend war die Auswertung beim Warmwasser, jedenfalls zeitweise. Es gibt etwas, das nennt sich Antilegionellenfunktion. Die Idee hierbei ist, dass das Warmwasser regelmäßig auf über 70 Grad erhitzt wird, während die Umwälzpumpe läuft und so die Legionellen abgetötet werden. Dafür kann man dann eine ansonsten recht niedrige Warmwassertemperatur wählen. Nach Rücksprache mit dem Chef der Heizungsfirma stellte ich die Warmwassertemperatur auf einen Wert kleiner 55 Grad. Über den eBus sah ich, dass Abends um halb Zehn nocheinmal ein – völlig unnötiges – Aufheizen stattfand und andererseits am Abend auch ohne Aufheizen genügend Wärmeenergie vorhanden war. So konnte ich die Zeit des Warmwassers so einstellen, dass täglich nur zwei oder maximal drei Aufheizvorgänge notwendig waren. Ohne den eBus wäre ich hier wirklich “blind” gewesen und hätte jede Menge Energie verschwendet.

Jedoch – ich traute dieser Antilegionellenschaltung nie vollständig, zumal sie an manchen Wochen ohne Erklärung nicht anlief und ich dann genervt und manuell selbst zur Heizung laufen und zeitweilig die Temperatur verstellen musste. Ich belas mich dann hin und wieder zu dem Thema und schließlich las ich an verschiedenen Stellen, dass eine Antilegionellenschaltung eventuell nicht nur nicht wirke, sondern gar kontraproduktiv sein könne, da sie eventuell resistente Legionellen hervorrufe. Ich entschloss mich also nach schönen Wochen des Energiesparens schweren Herzens, die Legionellenschaltung durch ein kontinuierlich auf über 55 Grad erhitztes Wasser zu ersetzen. Trotzdem ist der Blick auf den eBus hier eine Hilfe, da man gut sehen kann, wie hoch der Wärmeverlust bei verschiedenen Warmwassertemperaturen ist, und ob sie die Reduktion der Hysterese auf 3K und eine Absenkung von 60 auf 58 Grad lohnen würde.

Warmwassertemperatur mit und ohne Antilegionellenfunktion

Warmwassertemperatur mit und ohne Antilegionellenfunktion. Man sieht leider ob der geringen “Abtastrate” die von der Antilegionellenfunktion hervorgerufenen Peaks hier nicht mehr.

IT-Sicherheit

Auch ein Wort hierzu: Der eBus-Konverter hängt an seinem eigenen vlan, auf das ansonsten nur die eBus-VM zugreifen kann. Dennoch besteht natürlich ein gewisses Risiko, dass die Switches oder die VM kompromittiert werden und jemand von außen die Heizung lahmlegen kann. Im Zweifelsfalle muss ich halt dem eBus-Konverter den Strom wegnehmen und hoffen, dass niemand über den eBus auf das Primäre EEPROM der Heizung schreiben konnte ;-)

Ich fühle mich jetzt nicht unwohl deswegen, aber wenn ich nachts im Bett liege und es schön warm ist, habe ich das durchaus als mögliches, wenn auch unwahrscheinliches Szenario im Hinterkopf.

Fazit

Es lohnt, sich mit dem eBus zu beschäftigen. Ohne die Auswertung der Daten vom eBus würde ich mich jetzt im Bezug auf die Heizung richtig blind fühlen. Was mir noch fehlt, ist eine vollständige Auflistung aller möglichen Kommandos, so dass ich alles dekodieren kann. Und als nächstes würde ich natürlich gerne die Heizkurven und weitere Parameter auch über den eBus schreiben können.

An allen Wandheizkörpern hängen Thermostate von Homematic, ich würde gerne eine Logik implementieren, dass bei Unterschreiten einer bestimmten Durchflussmenge die Heizung automatisch zentral abgeschaltet wird. Oder auch, dass abhängig von der gemittelten Raumtemperatur (adé, “Referenzraum”) die Heizkurven angepasst werden. Möglichst ohne den Flash-Speicher der Heizung abzunutzen.

Mal schaun. Jetzt erstmal bis zum Sommer warten mit weiteren Experimenten. :-)

Ach ja, ich habe auch ein zweites eBus-Konvertermodul bestellt. Damit möchte ich gelegentlich mal eine Heizungssteuereinheit getrennt von der Heizung in Betrieb nehmen und beobachten, was sie so für Daten auf den eBus schreibt. Auch überlege ich, vermittels zwei Konvertern den eBus über Ethernet zu “verlängern”. Dazu gekommen bin ich bis jetzt noch nicht…

Bei Anmerkungen zu diesem Text bin ich unter hc-ebus hcesperer.org zu erreichen. Alle im Text verlinkten Bilder sind (C) 2021, Hans-Christian Esperer und stehen unter der Creative Commons-Lizenz CC BY-SA.