OTthing – Das universelle WiFi-OpenTherm Interface

Inspiriert durch die Projekte OTGW, DIYLESS Open Therm und Laxilef’s OTGateway entstand der Wunsch nach der Eigenentwicklung eines OpenTherm Interfaces inklusive Firmware mit folgenden Anforderungen:

  • Kompaktes günstiges Ein-Leiterplatten-Design in SMD Technik
  • Integriertes OpenTherm Master- sowie Slaveinterface
  • Einfache Stromversorgung über USB-C Buchse
  • Kompaktes Gehäuse
  • Anschlussmöglichkeit für 1wire Sensoren; etwa zusätzliche Temperaturfühler etc.
  • Anschlussmöglichkeit eines Impulsgebers oder einer Gabellichtschranke zur Erfassung der Kondensatbildung in Brennwertgeräten
  • Automatischer Bypass, so dass der herkömmliche Betrieb über das Raumthermostat einfach und ohne Änderung der Verkabelung wiederherstellbar ist
  • Auswählbare Betriebsarten zur kompletten Steuerung der Therme durch das OT Thing, oder lediglich die Erfassung aller Betriebsdaten und Messwerte
  • Ausgabe von Messwerten über MQTT mit automatischer Integration in Home Assistant
  • Quelloffene Hardware sowie Firmware, um eigene Erweiterungen und Modifikationen zu ermöglichen

Das OT Thing kann durch das integrierte Master- und Slaveinterface in folgenden Betriebsarten verwendet werden:

  • Master: Die Therme wird vom OT Thing gesteuert. Über das Webinterface des OT Thing oder über die MQTT Schnittstelle können zahlreiche Betriebsparameter eingestellt und die Messwerte ausgewertet werden.
  • Repeater: Die Kommandos des angeschlossenen Raumthermostats werden zur angeschlossene Therme weitergeleitet und umgekehrt, so dass alle Messwerte und Einstellungen im Netzwerk zur Verfügung stehen.
  • Bypass: Das integrierte Relais verbindet direkt das angeschlossene Raumthermostat mit der angeschlossenen Therme, ohne dass in die Kommunikation eingegriffen wird. Bei Wegfall der Stromversorgung des OT Thing wird automatisch der Bypass-Modus aktiviert.

Anwendungen

  • Überwachung der Messwerte und Betriebsdaten
  • Überschreibung von ausgewählten Parametern des Raumthermostats
  • Außentemperaturgeführte Steuerung der Vorlauftemperatur
  • Autarke Steuerung als Master einer Gastherme oder Lüftungseinheit auch ohne Raumgerät

Die Schaltung im Überblick

  • Mikrocontroller Espressiv ESP32-C3 mit WiFi und Bluetooth
  • USB-C Buchse zur Stromversorgung, Programmierung und Diagnose
  • OpenTherm Master- und Slaveinterface
  • 24 V Step-Up-Wandler zur Versorgung des Thermostats am OpenTherm-Slave-Anschluss
  • Bypassrelais; Therme und Raumthermostat werden bei Ausfall des OT Thing direkt miteinander verbunden
  • 4 LEDs zur Statusanzeige
  • Reset- und Konfigurationsknopf
  • Anschluss für 1wire Sensoren
  • Anschluss für digitalen Schalteingang

Schaltplan

Anschlussbelegung CPU

OpenTherm Master TXGPIO 1
OpenTherm Master RXGPIO 3
OpenTherm Slave TXGPIO 7
OpenTherm Slave RXGPIO 6
Schaltregler +24 V für Slaveinterface enableGPIO 10
Bypass-Relais mit LEDGPIO 20
LEDGPIO 21
LEDGPIO 2
LEDGPIO 8
Digitaleingang SchraubklemmeGPIO 5
1wire dataGPIO 4

Firmware

Reset/Config Taster für ca. 2 s gedrückt halten. Damit wird das OTthing in den Konfigurationsmodus versetzt. Die Status-LED blinkt nun immer 2x. Mit einem WiFi-fähigen Gerät mit dem Access Point OTthing verbinden, das AP Passwort lautet 12345678. Mit einem Browser zur Adresse http://4.3.2.1 navigieren, um die Konfigurationsoberfläche des OT Thing zu öffnen.

Setup

WiFi

Mit dem scan Button werden alle verfügbaren WiFi Accesspoints gesucht und angezeigt, um das OTthing mit dem eigenen Netzwerk zu verbinden.

OpenTherm

  • Bypass: Angeschlossene Therme und Thermostat werden elektrisch direkt miteinander verbunden, in die Kommunikation wird nicht eingegriffen.
  • Master: Das OTthing steuert eine am Anschluss „Boiler“ angeschlossene Therme. Das OT Slaveinterface (Anschluss „Room-unit“) kann über die Option „enable slave interface“ zusätzlich aktiviert werden um z. B. die Raumsolltemperatur weiterhin vom Thermostat einstellen zu können.
  • Repeater: OpenTherm Master- und Slaveinterface sind aktiv. Kommandos des Raumthermostats werden ausgewertet, angezeigt, per MQTT gesendet und an die Therme weitergeleitet (Monitoring). Die empfangenen Antworten der Therme werden umgekehrt ebenfalls ausgewertet und zurück zum Thermostat weitergeleitet. Je nach Einstellung können bestimmte Kommandos vom OTthing überschrieben werden.
  • Test: Master- und Slaveemulation. Einem angeschlossenen Raumthermostat und/oder einer angeschlossenen Therme werden Testdaten geschickt. Ebenso können der Master- und Slaveanschluss des OT Thing direkt miteinander verbunden werden (Looptest), um die Open Therm Hardware des OTthing zu testen.
Override values

Im Modus master werden die jeweiligen vom angeschlossenen Raumthermostat gesendeten Werte verwendet. Im Modus repeater werden die jeweiligen Werte durch die errechneten oder vorgegebenen Werte vom OTthing verwendet.

Außentemperatur

Hier wird ausgewählt, aus welcher Quelle das OTthing die Außentemperatur bezieht, um die Vorlauftemperatur mithilfe der Heizkurveneinstellungen zu setzen.

Heizkreis 1 / 2

Einstellungen der Heizkurve. Kleine vereinfachte Einstellhilfe:

  • Auslegung anhand der vorhandenen Anlage einstellen
  • Die folgenden beiden Schritte jeweils bei einer Außentemperatur von ca. -5 °C und ca. 10 °C durchführen
  • Alle Heizkörperthermostate ganz (!) aufdrehen oder Thermostatköpfe entfernen
  • Über die beiden Betriebsparameter die Vorlauftemperatur so weit absenken, damit der schwierigste Raum noch die eingestellte Raumtemperatur erreicht, dann Marker speichern
  • Steilheit und Niveau so einstellen, dass die Kurve durch die Marker läuft
Room setpoint source
  • MQTT: Die Raumsolltemperatur wird über MQTT eingestellt
  • OT roomunit: Die Raumsolltemperatur wird über das angeschlossene Thermostat eingestellt
  • auto: Als Raumsolltemperatur wird der jeweils zuletzt veränderte Wert über MQTT oder das Raumthermostat verwendet
Raumtemperaturkompensation

Die Differenz aus Raummsolltemperatur und Raumisttemperatur kann mit einem einstellbaren Faktor zusätzlich auf die berechnete Vorlauftemperatur beaufschlagt werden. Als Quelle der Raumtemperatur kann ein MQTT Topic, ein 1wire Sensor oder die OpenTherm Raumeinheit ausgewählt werden.

MQTT Topics

Auf folgende MQTT Topics reagiert das OTthing, um Betriebsparameter zu setzen. Die Steuerelemente der Homeassistantintegration werden automatisch auf diese Topics konfiguriert und verwenden diese beim Ändern von Einstellungen in Home Assistant.

Modus für die Vorlaufsolltemperatur

otthing/<SHORTMAC>/chMode1/setotthing/<SHORTMAC>/chMode2/set
Vorlaufsolltemperatur
…/chModeX/setVorlaufsolltemperatur
autoBerechnung anhand Außentemperatur, Raumtemperatur und Heizkurve. Wenn Außentemperatur nicht zur Verfügung steht wie bei Mode heat
heatIm Webinterface eingestellter Wert flow set temperatur (default) oder über das MQTT Topic .../chSetTempX/set vorgegebener Wert
offHeizkreis deaktiviert

Vorlaufsolltemperatur

Wenn die gewünschte Vorlauftemperatur überschrieben oder nicht automatisch berechnet werden soll.

otthing/<SHORTMAC>/chSetTemp1/set
otthing/<SHORTMAC>/chSetTemp2/set

Aktuelle Raumtemperatur

Wird nur benötigt, wenn die Raumtemperaturkompensation verwendet werden soll.

otthing/<SHORTMAC>/roomTemp1/set
otthing/<SHORTMAC>/roomTemp2/set

Raumsolltemperatur

Mithilfe der gewünschten Raumtemperatur wird aus den Heizkurvenparametern die erforderliche Vorlauftemperatur berechnet und zur Therme gesendet.

otthing/<SHORTMAC>/roomSetpoint1/set
otthing/<SHORTMAC>/roomSetpoint2/set

Außentemperatur

Wird nur benötigt wenn die Außentemperatur nicht von einer anderen Quelle (Außenfühler an der Therme, Open Weather, …) bezogen wird. Aus der Außentemperatur berechnet das OT Thing anhand der Heizkurve die Vorlauftemperatur.

otthing/<SHORTMAC>/outsideTemp/set

Brauchwassersolltemperatur

otthing/<SHORTMAC>/dwhSetTemp/set

Setzen der Brauchwassersolltemperatur.

Integration in Home Assistant

Sobald der MQTT Broker im OTthing konfiguriert ist und Nachrichten von Therme und/oder Thermostat empfangen werden, werden automatisch entsprechende Discoverynachrichten an Home Assistant gesendet, so dass alle Sensoren ohne weitere Einrichtung angezeigt werden:

Dashboard in Home Assistant

Außentemperatur von Home Assistant zum OTthing übertragen

Als Quelle für die Außentemperatur, die das OTthing zur Berechnung der Vorlaufsolltemperatur benötigt, kann die Weatherintegration von Home Assistant benutzt werden. Folgende Automation übermittelt zyklisch die Außentemperatur an das OTthing welches daraus die Vorlaufsolltemperatur errechnen kann:

alias: OTThing Außentemperatur
description: ""
trigger:
  - platform: time_pattern
    seconds: /30
condition: []
action:
  - service: mqtt.publish
    metadata: {}
    data:
      qos: "0"
      retain: false
      payload: "{{ state_attr(\"weather.home\", \"temperature\") }}"
      topic: otthing/31F374/outsideTemp/set
    enabled: true
mode: single

Funktion der LEDs

D10OT 1OpenTherm master receive. Zeigt den Pegelzustand des Empfangszweigs. Aus = niedrige Spannung, Ein = hohe Spannung
D13OT 2OpenTherm slave receive. Zeigt den Pegelzustand des Empfangszweis. Aus = niedriger Strom, Ein = hoher Strom
D11Status1x blinken: Normalbetrieb, 2x blinken: WiFi AP aktiviert
D12Ein = Relais aktiv, kein Bypass

Monitoring mit dem Opentherm Monitor

Das OTthing leitet alle auf der OpenTherm-Schnittstelle gesendeten und empfangenen Daten auf dem TCP Port 25238 weiter, so dass mit dem praktischen Tool Opentherm Monitor von Schelte Bron aus dem otgw Projekt die Daten visualisiert werden können.

Firmwareupdate

Die aktuelle Firmware findet sich hier, und kann über das Webinterface des OT Thing mit einem Browser aktualisiert werden. Achtung: Ein Update von Version 1.x auf 2.x muss zwingend über den USB Anschluss durchgeführt werden. Dazu eignet sich der OT Thing Webflasher.

Shop

OTthing Firmware und Hardware auf GitHub

Beitrag im Home Assistant Forum

Haftungsausschluss

Es wird keinerlei Haftung für Schäden an Personen oder Gegenständen übernommen. Die Installation und der Betrieb des OTthing erfolgen auf eigene Gefahr und Verantwortung.