Zur Einsparung von Gas wollte ich die in der Wohnung vorhandene Gastherme Internetfähig machen. Ziel war dabei die Einsparung von Gas. Bisher habe ich dazu die vorhandene Zeiteinstellung genutzt und beim Verlassen der Wohnung die voraussichtliche Ankunftszeit eingestellt. Das führt jedoch dazu, dass die Wohnung entweder noch kalt ist, sofern man früher als erwartet zurück kommt oder unnötig geheizt wird, weil man später dran ist.

Ziel war es also die Heizung über das Internet fernsteuern zu können. Die Therme selbst wurde bis dahin mit einem Junkers Regler über die 1-2-4 Schnittstelle gesteuert.

Dieser sollte nun durch einen ESP32 mit Anbindung an den MQTT Server und Steuerung über eine Node-RED Instanz ersetzt werden. Zusätzlich sollten die Daten in Grafana visualisiert werden.

1-2-4 Schnittstelle

Über die Schnittstelle selbst finden sich verschiedene Angaben. Bekannt ist nur, dass es sie aus drei Leitungen besteht (24V, Signal, GND) und das Signal verschiedene Werte zwischen 0V (aus) und 24V (an) in Abhängigkeit von der Differenz zwischen Soll- und Raumtemperatur annehmen kann. Dabei kommt als Führungsgröße in meinem Fall die Temperatur in der Küche zum Einsatz. Da dort die meiste Zeit die Heizung aus ist, ist diese Regelung wenig sinnvoll. Einzige Funktion ist daher wahrscheinlich das Ein- und Ausschalten der Umwälzpumpe. Sobald diese läuft, misst die Therme selbst die Differenz zwischen der Vor- und Rücklauftemperatur und bestimmt entsprechend die Zündung der Gasflamme.

Ebenfalls bekannt ist, dass die Schnittstelle intern über einen Pull-Up verschaltet ist. Dieser hält die Datenleitung auf 24V, sofern kein Regler angeschlossen ist, sodass ohne Regler permanent geheizt wird.

Je weiter man sie in Richtung 0V zieht, umso weniger Leistung möchte man abrufen, da die Temperaturdifferenz geringer geworden ist.

Die Schaltung basiert im Wesentlichen auf einem Artikel aus dem FHEM Wiki. Es handelt sich dabei um einen einfachen Operationsverstärker, der als nicht-invertierender Verstärker beschaltet wird. Da selbst der Originalregler nicht vollständig auf 0V bzw. 24V kommt, kann auf eine symmetrische Versorgung verzichtet werden.

Wichtig war mir die im Artikel erwähnte Diode zu verbauen. Diese gewährleistet, dass der Originalregler weiterhin parallel angeschlossen bleiben kann. Bei einem Ausfall meines Reglers, kann dieser also weiterhin den Frostschutz gewährleisten. Zudem ermöglicht er auch die einfache manuelle Inbetriebnahme.

Hardware

Die Hardware basiert auf einem ESP32 NodeMCU. Dieser wird in die zwei Buchsenleisten auf der Lochrasterplatine gesteckt, auf der die Datenleitungen mit dem I2C Temperatursensor (BME280) verbunden sind. Außerdem werden die analogen Signale an der Operationsverstärker weitergegeben, der in meinem Fall ein vierfach OPV ist, wobei ich nur einen OPV verwende.

Software

Auf dem ESP läuft ein simpler Arduino Sketch, der sich auf den MQTT Server auf das Heizungs-Topic subscribed und die Befehle Standby (ja/nein) und die gewünschte Zieltemperatur entgegen nimmt. Außerdem sendet er regelmäßig den Betriebsstatus sowie Temperatur, Luftfeuchtigkeit und Luftdruck auf die entsprechenden Topics.

[Update 01.20.2021] Sowohl die Software und der Schaltplan sind nach einigen Nachfragen endlich unter https://github.com/RobinMeis/Junkers_1-2-4_ESP32 auf GitHub verfügbar. Die Schaltung hat sich als zuverlässig erwiesen. Lediglich die Software hatte bisher manchmal Probleme bei WLAN Reconnects. Die auf GitHub verfügbare Version sollte dieses Problem jedoch beheben.

Node-RED

Node-RED arbeitet am anderen Ende der MQTT Topics. Dort werden die ankommenden Daten permanent in eine Datenbank geschrieben. Dadurch können sie in einer Grafana Instanz visualisiert werden. Grafana übernimmt auch die Information über Ausfälle, falls keine Daten mehr kommen oder die Temperatur unter einen bestimmten Wert fällt.

Außerdem verbindet sich Node-RED mit der IoT Telegram Gruppe, in der sich alle berechtigten Nutzer befinden, die auf die IoT Geräte der Wohnung zugreifen dürfen. Wird dort der Befehl gesendet die Heizung ein oder auszuschalten, sendet Node-RED die entsprechenden Befehle auf den MQTT Server.

Mittlerweile nutze ich statt der Telegram Gruppe die in iOS integrierten Shortcuts. Dazu rufe ich über eine Automatisierung einen HTTP Endpunkt auf, der die notwendigen Nachrichten auf den MQTT Server publiziert. Dadurch wurde die Steuerung aus dem Internet deutlich komfortabler, zuverlässiger und sicherer.

Umgekehrt schickt auch Grafana die auftretetenden Probleme in diese Gruppe einschließlich der Anweisung, wie die Heizung manuell über den bestehenden Regler wieder in Betrieb genommen werden kann.

Node-RED Flow
Grafana Dashboard


Subscribe
Notify of
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Thorsten
4 years ago

Hi!
Das Ersetzen meines TR200 Reglers durch einen ESP32 war schon lange mein Wunsch. Bisher konnte ich aber keine eindeutigen Informationen zur 1-2-4 Schnittstelle finden. Es gibt die OP-Lösung vom FHEM-Forum und einige andere, die mit einem Transsistor und mehr oder weniger Widerständen arbeiten. Das mit dem OP funktioniert gut? Könntest du mir mehr Informationen zum Sketch und der Schaltung zur Verfügung stellen?

Patrick
4 years ago

Hallo Robin,

das ist ein wirklich spannendes Thema. Suche schon seit längerem nach einer preiswerten Lösung meine alte Junkers Therme smart zu machen.

Es wäre wirklich super wenn du den Aufbau der Schaltung noch etwas noob freundlicher erklären und/oder zum FHEM thread verlinkten könntest, damit auch weniger elektroversierte Leser in den Genuss deiner Lösung kommen können 😉

An deinem Arduino Sketch hätte ich natürlich ebenfalls großes Interesse!

Beste Grüße