OT Thing – Das universelle WiFi-OpenTherm Interface
Inspiriert durch die großartigen Projekte OTGW, DIYLESS Open Therm und Laxilef’s OTGateway entstand der Wunsch nach der Eigenentwicklung eines OpenTherm Interfaces 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
- Anschlußmöglichkeit für 1wire Sensoren, etwa zusätzliche Temperaturfühler etc.
- Anschlußmö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
- Gateway: 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.

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 TX | GPIO 1 |
OpenTherm Master RX | GPIO 3 |
OpenTherm Slave TX | GPIO 7 |
OpenTherm Slave RX | GPIO 6 |
Schaltregler +24 V für Slaveinterface enable | GPIO 10 |
Bypass-Relais mit LED | GPIO 20 |
LED | GPIO 21 |
LED | GPIO 2 |
LED | GPIO 8 |
Digitaleingang Schraubklemme | GPIO 5 |
1wire data | GPIO 4 |
Firmware
Reset/Config Taster für ca. 2 s gedrückt halten, damit wird das OT Thing in den Konfigurationsmodus versetzt. Die Status-LED blinkt nun immer 2x. Mit einem WiFi fähigem Gerät mit dem Access Point OT Thing
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 OT Thing mit dem eigenen Netzwerk zu verbinden.
OpenTherm
- Master: Das OT Thing steuert eine am Anschluss „Boiler“ angeschlossene Therme. Das OT Slaveinterface (Anschluss „Room-unit“) bleibt inaktiv
- Repeater: OpenTherm Master- und Slaveinterface sind aktiv. Kommandos des Thermostats 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 OT Thing überschrieben werden.
- Bypass: Angeschlossene Therme und Thermostat werden elektrisch direkt miteinander verbunden, in die Kommunikation wird nicht eingegriffen.
- 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 OT Thing zu testen.
Außentemperatur
Hier wird ausgewählt aus welcher Quelle das OT Thing die Außentemperatur bezieht, um die Kesseltemperatur mit Hilfe 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 Thermoastatköpfe entfernen
- Über die beiden Betriebsparameter die Vorlauftemperatur soweit absenken dass der schwierigste Raum noch die eingestellte Temperatur erreicht, dann Marker speichern
- Steilheit und Niveau so einstellen dass die Kurve durch die Marker läuft

MQTT Topics
Auf folgende MQTT Topics reagiert das OT Thing 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/set
otthing/<SHORTMAC>/chMode2/set
auto
: Im OT ModusMaster
wird die Vorlaufsolltemperatur mittels Außentemperatur und Heizkurve berechnet. Im OT Modus Gateway wird die Vorlaufsolltemperatur welche das Raumthermostat sendet verwendet.heat
: Vorlaufsolltemperatur wird auf den empfangenen Wert aus dem Topicotthing/<SHORTMAC>/chSetTemp1/set
bzw.otthing/<SHORTMAC>/chSetTemp2/set
gesetztoff
: Heizkreis ist 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 vrwendet werden soll.
otthing/<SHORTMAC>/roomTemp1/set
otthing/<SHORTMAC>/roomTemp2/set
Raumsolltemperatur
Mit Hilfe 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
otthing/<SHORTMAC>/outsideTemp/set
Setzen der Außentemperatur aus der das OT Thing entsprechend der Heizkurve die Vorlauftemperatur berechnet und an die Therme schickt.
Brauchwassersolltemperatur
otthing/<SHORTMAC>/dwhSetTemp/set
Setzen der Brauchwassersolltemperatur.
Integration in Home Assistant
Sobald der MQTT Broker im OT Thing 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:





Außentemperatur von Home Assistant zum OT Thing übertragen
Als Quelle für die Außentemperatur welche das OT Thing zur Berechnung der Vorlaufsolltemperatur benötigt kann die Weatherintegration von Home Assistant benutzt werden. Folgende Automation übermittelt zyklisch die Außentemperatur an das OT Thing:
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
D10 | OT 1 | OpenTherm master receive. Zeigt den Pegelzustand des Empfangszweis. Aus = niedrige Spannung, Ein = hohe Spannung |
D13 | OT 2 | OpenTherm slave receive. Zeigt den Pegelzustand des Empfangszweis. Aus = niedriger Strom, Ein = hoher Strom |
D11 | Status | 1x blinken: Normalbetrieb, 2x blinken: WiFi AP aktiviert |
D12 | Ein = Relais aktiv, kein Bypass |
Monitoring mit dem Opentherm Monitor
Das OT Thing 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
Links
Haftungsausschluss
Es wird keinerlei Haftung für Schäden an Personen oder Gegenständen übernommen. Die Installation und der Betrieb des OT Thing erfolgt auf eigene Gefahr und Verantwortung.
Hallo,
Ich habe den Master-Modus aktiviert,
Der DHW-Setpoint wurde auf 100 gesetzt.
07:08:24.201507 T007d0000 Read-Data OpenTherm version Slave: 0.00
07:08:24.307623 B407d024d Read-Ack OpenTherm version Slave: 2.30
07:08:24.407923 T90012a30 Write-Data Control setpoint: 42.19
07:08:24.518474 B50012a30 Write-Ack Control setpoint: 42.19
07:08:24.618631 T90386400 Write-Data DHW setpoint: 100.00
07:08:24.729508 B50386400 Write-Ack DHW setpoint: 100.00
07:08:24.830132 T00000300 Read-Data Status: 00000011 00000000
07:08:24.955960 Bc000030a Read-Ack Status: 00000011 00001010
07:08:25.830146 T00000300 Read-Data Status: 00000011 00000000
07:08:25.943445 Bc000030c Read-Ack Status: 00000011 00001100
07:08:26.832630 T00000300 Read-Data Status: 00000011 00000000
07:08:26.941986 Bc000030c Read-Ack Status: 00000011 00001100
07:08:27.834006 T00000300 Read-Data Status: 00000011 00000000
07:08:27.944260 Bc000030c Read-Ack Status: 00000011 00001100
07:08:28.840563 T00000300 Read-Data Status: 00000011 00000000
07:08:28.948964 Bc000030c Read-Ack Status: 00000011 00001100
07:08:29.835727 T00000300 Read-Data Status: 00000011 00000000
07:08:29.945657 Bc000030c Read-Ack Status: 00000011 00001100
07:08:30.835395 T00000300 Read-Data Status: 00000011 00000000
07:08:30.946209 Bc000030c Read-Ack Status: 00000011 00001100
07:08:31.231244 T00112400 Read-Data Relative modulation level: 36.00
Was den Kessel sofort in die Warmwassererzeugung gezwungen hat und die Vorlauftemperatur auf steigend. Bei 90Grad habe ich das gestoppt.
2. Frage. Wie steuere ich die weiteren Ausgänge an?
Welche weiteren Ausgänge sind gemeint?
Ich meine die weiteren Klemmen, wie kann ich diese nutzen. Kann ich da nur einen Temperatursensor anschließen, oder könnte ich auch ein Relais ansteuern.
Hallo, und wo kommen die 100 her bei dhw. Ich habe 50 voreingestellt.
Schalten von Ausgängen ist derzeit nicht vorgesehen.
Tauchen die 100 C° auch nach einem reboot auf? Wie sieht das DHW Temp Kommando welches zur Therme geht im Log aus?
Hallo,
ich wollte den Heizkreis deaktivieren.
Ich habe das Topic:
otthing//chMode1/set
mit „auto“ oder mit „off“ beschrieben.
Ich habe das System im Gateway Modus.
Wo sehe ich hier eine Änderung?
Setzen von outsideTemp funktioniert.
Danke für die Info, der chMode wird im Moment im Gatewaymode nicht berücksichtigt, ich werde das denke ich so umsetzen dass der chMode off/heat den Modus des Theromstats überschreibt und auto den Modus des Thermostats übernimmt.
Top. Das wäre genau das erwartete
Version v2.0 steht ab sofort zur Verfügung. Bitte beachten: v1.x auf v2.x muss zwingend über den USB Port durchgeführt werden. Dazu kann der webflasher verwendet werden:
https://otthing.seegel-systeme.de/
Hallo, wo finde ich die Neuerungen in Version 2.0?
Update über USB ist übrigens echt doof, da das Teil
in der Heizung verbaut ist. Geht also nur mit Laptop und so …
Ja, geht technisch leider nicht anderes weil aus Speicherplatzgründen die Partitionen umgebaut werden mussten, aber es muss auch nur 1x über USB programmiert werden von Version 1.x auf >=2.x, danach kann wieder über die Weboberfläche aktualisiert werden.
Hier ist der Flasher: https://otthing.seegel-systeme.de/
Hallo,
beim Room set point habe ich ein Problem, wenn der über MQTT gesetzt wird.
Temperatur 12,1 Grad -> ok
Temperatur 12 Grad -> da macht er dann 121 Grad draus
Temperatur 13 Grad -> 1370 Grad
Temperatur 13,5 -> 13,5 Grad
Temperatur 22 -> 22 Grad
Temperatur 13 -> 13 Grad
Temperatur 15 -> 1569 Grad
Bei Zahlen mit Nachkomma kommt immer der richtige Wert an.
Ich nutze ioBroker und habe da die Werte per Hand als Number angelegt.
Hallo, danke für den Hinweis, das konnte ich bei mir bisher nicht beonachten. Könnten sie mir ihre Konfiguration zukommen lassen? Die lässt sich über die URL http:///config abrufen, und am besten den status noch dazu von der URL http:// /status
Schöne Grüße
S. Seegel
P.S. Die Firmware 1.7 steht nun als Release zur Verfügung
{„otMode“:2,“boiler“:{„dhwOn“:true,“dhwTemperature“:59,“heating“:[{„flow“:60,“roomSet“:20,“roomtempcomp“:0,“chOn“:true,“flowMax“:60,“exponent“:1.3,“gradient“:1.15,“offset“:5,“marker“:[],“roomsetpoint“:{„source“:0},“roomtemp“:{„source“:0}},{„flow“:30,“roomSet“:21,“roomtempcomp“:0,“chOn“:false,“flowMax“:60,“exponent“:1.3,“gradient“:1.4,“offset“:0,“marker“:[],“roomtemp“:{„source“:0},“roomsetpoint“:{„source“:0}}],“coolOn“:false},“outsideTemp“:{„source“:0,“apikey“:“undefined“,“lat“:null,“lon“:null,“interval“:null},“mqtt“:{„host“:“192.168.1.13″,“port“:1883,“user“:““,“pass“:““,“tls“:false}}
{„runtime“:62079,“freeHeap“:183092,“resetInfo“:1,“fw_version“:“1.7″,“wifi“:{„status“:3,“mode“:1,“ipsta“:“192.168.1.69″,“mac“:“9C:9E:6E:31:F3:A0″,“hostname“:“otthing“,“sta_ssid“:“myWlan24″,“rssi“:-78},“mqtt“:{„connected“:true,“basetopic“:“otthing/31F3A0″},“boiler“:{„status“:{„value“:“302″,“fault“:false,“ch_mode“:true,“dhw_mode“:false,“flame“:false,“cooling“:false,“ch2_mode“:false,“diagnostic“:false},“slave_config_member“:{„value“:“102″,“dhw_present“:true,“ctrl_type“:false,“cooling_config“:false,“dhw_config“:false,“master_lowoff_pumpctrl“:false,“ch2_present“:false},“memberId“:2,“dhwMax“:75,“dhwMin“:20,“rel_mod“:0,“flow_t“:44,“dhw_t“:60,“outside_t“:10,“connected“:true,“txCount“:5490,“rxCount“:5489},“thermostat“:{„ch_set_t“:52,“dhw_set_t“:50,“status“:{„value“:“300″,“ch_enable“:true,“dhw_enable“:true,“cooling_enable“:false,“otc_active“:false,“ch2_enable“:false},“txCount“:5489,“rxCount“:5490},“outsideTemp“:9.601,“heatercircuit“:[{„roomsetpoint“:20.501,“roomtemp“:22.101},{„roomsetpoint“:0,“roomtemp“:0}]}
Hallo,
die angezeigte Firmware bei meinem Gerät ist 1.7.
Auf Github ist allerdings 1.6. die neuste Version?
Wo finde ich diese?
Kann ich die IP-Adresse fest vergeben?
Hallo, die 1.7 ist im Moment nur als Quellcode in Github, ich lade die Firmwaredatei nächste Woche hoch. Die IP Adresse kann derzeit nicht manuell gesetzt werden, es steht nur DHCP zur Verfügung.
Hallo,
gibt’s eine Übersicht, welche der 4 LEDs welche Funktion hat?
Hallo, ich habe den Blogbeitrag erweitert so dass die Funktionen der LEDs beschrieben sind.
Danke, das nenne ich schnellen Service!