IoT-Erweiterung der Regelung einer Junker-Therme (Teil 1: Schaltung)

https://oer-informatik.de/esp32-iot-heizung-hardware

tl/dr; (ca. 10 min Lesezeit): Eine Heizung mit nur einem Raumthermostat ist wenig flexibel, wenn dieser Raum mal nicht beheizt werden soll. Mithilfe eines ESP32 soll die vorhandene Regelung ergänzt werden um die Möglichkeit, weitere IoT-Thermostate auszulesen.

Das Gesamtprojekt ist in drei HowTos unterteilt: 1. die Hardware (dieser Teil), dazwischen ein Exkurs zur ESP-Vorbereitung und 2. die zugehörige Software.

Problemstellung

Heizungen können über ein Außenthermometer oder Raumthermostate geregelt werden. Bei kleineren Gasheizungen (“Gasetagenheizungen”) wird das häufig durch ein einzelnes Raumthermostat umgesetzt, dass idealerweise in dem Raum mit dem größten Wärmebedarf hängt. Der Heizkörper in diesem Raum ist normalerweise ohne Thermostat oder mit einem Thermostat in größter Einstellung versehen.

In meinem Fall ist dieser Raum das Esszimmer, was selten - und nur kurzzeitig benutzt wird. Je nach Tageszeit sollen unterschiedliche Räume beheizt werden, sodass ein reines Umhängen des Raumthermostats in einen anderen Raum keine Lösung war. Es musste also eine andere Lösung her.

Anforderungen an die neue Lösung

Hierbei stand im Vordergrund:

  • Alle Heizkörper (bzw. mindestens einer je Raum) sollen mit smarten Thermostaten ausgestattet werden, die auslesbar und fernbedienbar sind.

  • Die Heizung sollte nur anspringen, wenn ein Thermostat im Haus sowohl Wärmebedarf signalisiert als auch ein geöffnetes Ventil hat (also Wärme abnimmt).

  • Die Technik der Thermostate sollte möglichst energiesparend sein, damit sie mit Akkus/Batterien mindestens eine Saison betrieben werden können, ohne nachzuladen/zu wechseln.

  • Die neue Steuerung sollte parallel zur bisherigen Steuerung installiert werden können. Sollte es bei den IoT-Komponenten Probleme geben, möchte ich nicht frieren. Zudem sollte der Frostschutz sicherheitshalber über die alte Steuerung laufen.

Teilprojekt 1: Der elektronische Aufbau der neuen Regelung

Disclaimer

In eine bestehende Heizungsregelung einzugreifen wirft natürlich einige Fragen auf: letztlich schaltet man mit Gas und Strom zwei nicht ganz ungefährliche Energieträger. Die entworfene Schaltung erzeugt bei Fehlern hohe Investitionskosten (die Heizungsanlage) oder hohe Betriebskosten (Gas). Ich bitte daher, die folgenden Absätze eher als Ideensammlung zu betrachten und im Zweifel einen Profi zurate zu ziehen!

Ausgangslage: die bestehende Regelung

Ursprünglich war an die Heizung das recht einfache Raumthermostat Junckers TR-200 angeschlossen. Dieses kennt nur eine einfache Zeitschaltuhr und wurde von mir schnell durch das Junckers TR-100 ersetzt, was immerhin wochentagsspezifische Heizprofile und Urlaubsschaltung kennt.

Diese Regelung wird angeschlossen über drei Pins, die aus mir unbekannten Gründen mit 1-2-4 durchnummeriert werden:

  • Pin 1 = 24V

  • Pin 2 = Steuerleitung

  • Pin 4 = GND

Pin 2 ist also das Herzstück, über den das Raumthermostat den Wärmebedarf an die Heizung weitergibt. Das Internet ist voller Mutmaßungen, welche Werte der Steuerleitung zu welchem Heizverhalten führen. Ich nenne hier einfach mal die Thesen, die ich gefunden hatte:

  1. Pin 2 kleiner als 3V = aus; 24 V: 100% Heizleistung

  2. Pin 2 0-3V: “nicht gut”, 5V - 8V: Therme aus, 8-15V Regelbereich

  3. umgekehrt: 0V: volle Leistung, 24V = aus (um es gleich zu sagen: in meinem Fall: NEIN!)

  4. 3,2 \text{mA}: Therme aus, 0,2mA = 100% (konnte ich so auch nicht bestätigen)

  5. 7 \text{ kOhm} Pullup an der Therme zwischen Steuerleitung und 24V. Daraus folgt: wenn keine Steuerung angeschlossen gibt die Heizung 100%

These 1 und 2 und 5 liegen recht dicht beieinander und klangen am plausibelsten (wurden auch häufig genannt). Nach etwas Recherche hatte ich mich entschieden, einfach nachzumessen - und konnte so die am häufigsten geäußerte Vermutung bestätigen:

Messung bei 18° C Raumtemperatur

  • Thermostat eingestellt auf 16,5°C: 340mV

  • Thermostat eingestellt auf 17,5°C: 10,8V

  • Thermostat eingestellt auf 18°C: 11-15V

  • Thermostat eingestellt auf 18,5°C: 17-19V

  • Thermostat eingestellt auf 19°C: 20V

Das Thermostat zieht demnach die Steuerleitung gegen 0V, wenn kein Wärmebedarf besteht. Oberhalb der 15V scheint ein Wärmebedarf signalisiert zu werden. Die Maximalspannung bei meiner Messung betrug 20V.

Information zu bestehenden Lösungen und bestehenden Techniken

Wie immer quillt das Internet über mit Webseiten, die hierzu Ideen haben (seit heute: eine mehr). Die meisten Informationen zum Ersatz des Raumthermostats verdanke ich den folgenden Projektdarstellungen:

Darüber hinaus gab es noch Lösungen über Optokoppler, Schaltungen mit eigenen Relais und und und…

Anforderungen an den Schaltungsaufbau:

Bevor ich das Layout überlege, sollte ich noch einmal präzisieren, wie ich mir das wünsche:

  • Die alte Regelung soll parallel laufen - daher sollte die neue Regelung mit einer Diode von der Steuerleitung getrennt werden.

  • Die Logik und Schaltung soll später ein ESP32 übernehmen (dann bleibe ich flexibel, was die Wahl der Technik angeht). Details, woher dieser seine Informationen bekommt, folgen unten.

  • Der ESP32 soll direkt über die 24V des 1-2-4-Busses betrieben werden.

  • Die 0-24V für die Steuerleitung soll über den Analog-Out des ESP erzeugt werden (ich habe mich für eine OP-Variante entschieden).

  • Alle Leitungen sollten intern mit Schmelzsicherungen abgesichert werden: better be safe than sorry

  • LEDs sollen den Zustand der Heizung signalisieren (Heizung aus, an, maximal).

  • Ein Temperaturfühler für Vor- und Rücklauftemperatur, z.B. DS 18S20: wäre nett, brauche ich aber nicht.

  • 3-poliger Schalter zur kompletten Trennung der neuen Regelung: wäre gut, falls mal was nicht klappt (Spoiler: habe ich nicht realisiert)

  • Ein Temperaturfühler im Raum wäre nett, aber ich will ja ohnehin nur dann die Heizung aktivieren, wenn ein Ventil offen ist. Ich brauche ihn also nicht.

Die Informationen für den Aufbau wären so weit zusammengetragen, aus den vielen Möglichkeiten habe ich mich für meine Richtung entschieden (ESP32 & OP). Es wird Zeit, die Schaltung zu entwerfen!

Entwurf der Schaltung

Basierend auf den obigen Quellen habe ich mich für eine Schaltung auf Basis eines ESP32 entschieden, der per OP die gewünschte Spannung an der Steuerleitung anlegt.

Ich habe die Schaltung per Falstad (bearbeitbarer Link, Link zur Datei) entworfen. Links ist der Bereich der neuen Regelung als Box dargestellt: Der ESP32 legt ein Potenzial an die Leitung ganz links an “Eingangssignal aus MCU”. Daneben folgt die OP-Schaltung, danach die Diode, die den gemeinsamen Betrieb von alter und neuer Steuerung absichert. An der Grenze der neuen Steuerung sind die Sicherungen.

Rechts daneben als Box findet sich das alte bestehende Thermostat. Ich habe es vereinfacht als Poti simuliert, dass die Steuerleitung auf 0V oder 4V zieht.

Ganz rechts liegt schließlich die Box, die die Therme repräsentiert. Die gemessenen 7kOhm Pullup habe ich neben der Spannungsquelle als einzige Bauteile hierfür angenommen.

Schaltplan der neuen Steuerung
Schaltplan der neuen Steuerung

Diese Konstellation habe ich für drei möglichen Betriebsszenarien simuliert:

  1. Das alte Thermostat meldet Wärmebedarf, der ESP nicht: Die Diode sperrt.
Schaltplan der neuen Steuerung, alte Regelung zieht die Steuerleitung auf 23V
Schaltplan der neuen Steuerung, alte Regelung zieht die Steuerleitung auf 23V
  1. Sowohl altes Thermostat als auch ESP melden keinen Wärmebedarf:
Schaltplan der neuen Steuerung, die Steuerleitung liegt auf 18mV
Schaltplan der neuen Steuerung, die Steuerleitung liegt auf 18mV
  1. Das alte Thermostat meldet keinen Wärmebedarf, der ESP aber schon: Die Diode leitet.
Schaltplan der neuen Steuerung, neue Regelung zieht die Steuerleitung auf 20V
Schaltplan der neuen Steuerung, neue Regelung zieht die Steuerleitung auf 20V

Das sieht ja schonmal ganz erfolgversprechend aus. Nächster Schritt: Bauteile bestellen!

Bauteilliste

Folgende Bauteile habe ich benötigt:

  • 24V Schmelzsicherungen (3 Stück, 100mA)
  • Spannungsregler z.B. LM2596S
  • Kondensatoren 2x 100 nF
  • Widerstände 100 \Omega, 10 k\Omega, 100 k\Omega
  • Diode, 24V, 100mA (z.B.: 1N4001)
  • Operationsverstärker, z.B. LM358
  • ESP32
  • Lochrasterplatine

Aufbau auf der Lochrasterplatine

Die bestehenden Komponenten passen gerade auf eine 7x9cm Lochrasterplatine. Auch ohne große Lötbegabung habe ich eine funktioniernde Schaltung aufbauen können. Das erstellte Fritzing-Schema hilft sehr bei der Positionierung der einzelnen Bauteile. Unter diesem Link findet sich die Fritzing-Datei in bearbeitbarer Form.

Entwurf der Lochrasterplatine mit Fritzing
Entwurf der Lochrasterplatine mit Fritzing

Tatsächlich bin ich mit dem realisierten Aufbau für meine Begriffe recht nah am Entwurf geblieben:

Realisierte Platine
Realisierte Platine

Testen der Platine

Da die Platine am Ende mit der Heizung verbunden wird, ist die korrekte Funktion sehr wichtig. Ich habe daher gewissenhafter als bei anderen Arduino-Projekten die einzelnen Potenziale nachverfolgt und die jeweiligen Widerstandswerte gemessen. Bloß gut: in einem Fall hatte mit der Perspektivwechsel (Draufsicht in Fritzing vs. Druntersicht beim Löten) ein Schnippchen geschlagen.

Nach dem Anlegen der Betriebsspannung (ohne installierte Software) wurde dann nochmal gemessen. Na klar: eine LED war verkehrt herum. Wir oft muss sowas eigentlich passieren?!?

Trotz allem: eingebaut hab ich die Platine erst, nachdem ich mit aufgespielter Software die einzelnen Szenarien am Labornetzteil durchgemessen hatte.

Fazit

Der elektronische Teil des Projekts ist somit abgeschlossen. Wenn man sich dann erst einmal für eine Lösung entschieden hat, ist der Aufbau der Platine gar nicht so schwer. Im Wissen, dass diesmal meine warme Wohnung zur Disposition steht, war ich beim Aufbau doch etwas nervöser als üblich.

Die Simulation mit Falstad und der Entwurf des Aufbaus mit Fritzing haben mir eine ganze Menge Probleme erspart. Denn ein paar Nerven müssen ja noch übrig bleiben für die Software-Seite des Projekts…

Die aufgebaute und (provisorisch) angeschlossene Platine, darunter die ursprüngliche Regelung
Die aufgebaute und (provisorisch) angeschlossene Platine, darunter die ursprüngliche Regelung

Quellen und offene Ressourcen (OER)

Die Ursprungstexte (als Markdown), Grafiken und zugrunde liegende Diagrammquelltexte finden sich (soweit möglich in weiterbearbeitbarer Form) in folgendem git-Repository:

https://gitlab.com/oer-informatik/mcu/iot-therme.

Sofern nicht explizit anderweitig angegeben sind sie zur Nutzung als Open Education Resource (OER) unter Namensnennung (H. Stein, oer-informatik.de) freigegeben gemäß der Creative Commons Namensnennung 4.0 International Lizenz (CC BY 4.0).

Creative Commons Lizenzvertrag

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: