Wer zur Miete wohnt und eine Fußbodenheizung in der Wohnung hat, kennt das Problem vielleicht auch. Im Winterurlaub dreht man die Heizung über die fest verbauten Raumthermostate herunter. Wenn man zurückkommt, ist die Wohnung kalt und braucht 1 bis 2 Tage, bis die gewünschte Temperatur wieder erreicht ist. Mit Kindern ist das immer etwas ärgerlicher. Daher habe ich mir Gedanken gemacht, wie ich die Fußbodenheizung smart mache, ohne die Raumthermostate ersetzen zu müssen. Der Plan ist, in jedem Raum einen kleinen, selbstgebauten Klima-Sensor zu platzieren. Er misst Temperatur und Luftfeuchtigkeit und stellt die Werte über eine REST-API im Heimnetz bereit. In einem späteren Ausbauschritt kommt dann eine zentrale Steuerung dazu. Sie steuert auf Basis dieser Messwerte die Stellmotoren am Heizkreisverteiler an. Ob das überhaupt möglich ist, muss ich mir noch erarbeiten. Dazu mehr in einem späteren Beitrag.
In diesem Artikel stelle ich den ersten Baustein vor: einen WLAN-Raumklima-Sensor auf Basis des ESP8266. Er bietet einen DHT22-Sensor, ein OLED-Display, eine Web-Oberfläche und eine Offset-Kalibrierung. Die WLAN-Einrichtung erfolgt komfortabel über einen Setup-Hotspot. Also genau so, wie man es gewohnt ist, wenn man so einen kleinen WiFi-Sensor in Betrieb nimmt. Wichtig war mir, dass die Zugangsdaten nicht im Quellcode enthalten sind.

ESP8266 room climate sensor DHT22 sensor OLED display
Die Hardware
Die Einkaufsliste ist bewusst kurz gehalten. Alle Komponenten sind Standard-Bauteile aus der Maker-Kiste:
- ESP8266 NodeMCU (oder Wemos D1 Mini)
- 1x oder 2x DHT22 / AM2302 Temperatur- und Luftfeuchtigkeitssensor
- OLED-Display SSD1306 mit 128×64 Pixel (I2C)
- Ein paar Jumper-Kabel und eine USB-Stromversorgung
Die Firmware erkennt beim Start automatisch, ob ein oder zwei DHT22 angeschlossen sind. Das ist praktisch, wenn man in einem Raum zusätzlich die Temperatur in Bodennähe oder direkt am Heizkreis erfassen möchte. Die Verdrahtung ist schnell erledigt. Der erste DHT22 hängt an D5 (GPIO14), der optionale zweite an D6 (GPIO12). Das OLED-Display wird per I2C an D1 (SCL) und D2 (SDA) angeschlossen.
Für die Gehäuse kommt natürlich der 3D-Drucker zum Einsatz. Wie auf dem Foto zu sehen, habe ich ein mehrteiliges Gehäuse mit Lüftungsschlitzen entworfen, damit die Luft frei am DHT22 zirkulieren kann. Das ist wichtig, denn ein geschlossenes Gehäuse würde die Messwerte deutlich verfälschen. Der kleine Turm mit dem Sensor sorgt zusätzlich dafür, dass der ESP8266 das Messergebnis nicht durch seine eigene Wärmeentwicklung verfälscht. Die einzelnen Bauteile des Gehäuses lassen sich separat drucken. So ist es möglich, diese farblich zu kombinieren. Jeder Raum bekommt auf Wunsch sein eigenes Farbschema.
WLAN-Einrichtung ohne Anpassung des Quellcodes
Ein Punkt war mir bei diesem Projekt besonders wichtig: Wenn in jedem Raum ein Sensor hängen soll, möchte ich nicht für jedes Gerät den Sketch anpassen und neu kompilieren. Deshalb stehen weder WLAN-Zugangsdaten noch der Gerätename im Quellcode. Stattdessen funktioniert die Einrichtung so, wie man es von Tasmota oder WLED kennt:
Nach dem ersten Flashen öffnet der ESP8266 automatisch einen eigenen WLAN-Hotspot mit dem Namen Klima-Setup-xxxxxx, wobei das Suffix aus der Chip-ID gebildet wird. So lassen sich auch mehrere Sensoren sehr angenehm einrichten. Verbindet man sich mit dem Hotspot, öffnet sich dank Captive Portal automatisch die Einrichtungsseite. Dort kann man nach verfügbaren WLAN-Netzwerken scannen. Anschließend wählt man das eigene Netz aus der nach Signalstärke sortierten Liste aus und gibt das Passwort ein. Die Zugangsdaten werden persistent im EEPROM gespeichert. Danach startet der Sensor neu und verbindet sich mit dem Heimnetz.
Auch an den Fehlerfall ist gedacht: Schlägt die WLAN-Verbindung beim Start fehl, öffnet der Sensor wieder seinen Setup-Hotspot. Das passiert zum Beispiel, wenn der Router gerade neu startet. Der Sensor versucht dann alle fünf Minuten automatisch einen erneuten Verbindungsaufbau mit dem hinterlegten WiFi. Er heilt sich also selbst, sobald das WLAN wieder verfügbar ist.

ESP8266 room climate sensor – WiFi setup
Gerätename über die Web-Oberfläche vergeben
Über die Einstellungsseite der Web-Oberfläche lässt sich zudem der Gerätename frei vergeben, zum Beispiel „Kinderzimmer“ oder „Büro“. Der Name erscheint auf dem OLED-Display, in der JSON-API, als Hostname in der FritzBox und als mDNS-Adresse im Netzwerk. Der Sensor im Kinderzimmer ist dann bequem unter http://kinderzimmer.local erreichbar. Deutsche Umlaute werden dabei automatisch in einen DNS-tauglichen Hostnamen umgewandelt. Der große Vorteil: Auf alle Sensoren wird exakt dieselbe Firmware geflasht. Die „Taufe“ erfolgt anschließend im Browser.
Offset-Kalibrierung direkt im Browser
In der Praxis zeigt sich schnell, dass DHT22-Sensoren untereinander gerne um ein paar Zehntelgrad abweichen. Für eine Heizungssteuerung ist das natürlich unschön, denn dort kommt es genau auf diese Zehntelgrad an 😉 Deshalb bietet die Web-Oberfläche für jeden Sensor eine Offset-Kalibrierung in 0,1-°C-Schritten. Über Plus- und Minus-Schaltflächen wird der Korrekturwert eingestellt. Er wird sofort persistent im EEPROM gespeichert und übersteht so auch einen Stromausfall. Ein Reset-Button setzt den Offset bei Bedarf wieder auf null.

ESP8266 room climate sensor – Offset config
Mein Tipp zur Kalibrierung: Alle Sensoren vor der Montage einige Stunden nebeneinander betreiben. Am besten an einem Ort ohne Zugluft und direkte Sonne. Danach gleicht man sie untereinander oder gegen ein Referenzthermometer ab. Erst dann werden die Sensoren in den Räumen verteilt.
OLED-Display und Live-Webseite
Das OLED-Display zeigt im Betrieb den Gerätenamen, die aktuelle Temperatur samt Luftfeuchtigkeit sowie die IP-Adresse des Sensors an. Bei zwei angeschlossenen Sensoren wechselt die Anzeige automatisch in eine kompakte Darstellung mit beiden Messwerten. Im Setup-Modus zeigt das Display stattdessen den Namen des Hotspots und die Adresse der Einrichtungsseite an. So weiß man also immer sofort, in welchem Zustand sich das Gerät befindet.
Ruft man die IP-Adresse oder die mDNS-Adresse im Browser auf, erscheint eine kleine Live-Webseite im Dark Mode. Sie aktualisiert sich alle drei Sekunden automatisch. Neben den Messwerten werden dort auch die WLAN-Signalstärke und die Laufzeit des Sensors angezeigt. Dazu kommen die bereits erwähnten Bedienelemente für die Offset-Kalibrierung.
Die REST-API: Das Herzstück für die Heizungssteuerung
Für die spätere Heizungssteuerung ist die JSON-API der wichtigste Teil des Projekts. Unter <IP-Adresse des Sensors>/api liefert jeder Sensor seine Messwerte in einem einfach auszuwertenden Format:
{
"name": "Kinderzimmer",
"setup_mode": false,
"sensor1": {
"present": true,
"temperature": 22.4,
"temperature_raw": 22.7,
"offset": -0.3,
"humidity": 45.0,
"valid": true
},
"sensor2": { ... },
"rssi": -58,
"uptime_s": 1234
}
Das Feld temperature enthält immer den bereits offset-korrigierten Wert. Zusätzlich stehen der Rohwert und der eingestellte Offset zur Verfügung. Das ist praktisch für das Logging. Da die API einen CORS-Header mitliefert, kann man direkt aus einer beliebigen Webanwendung per fetch() auf die Sensoren zugreifen. Ein schneller Test funktioniert auch von der Kommandozeile:
curl http://<IP-Adresse>/api
Auch die Offset-Kalibrierung lässt sich per API skripten. So kann man zum Beispiel nach einer Referenzmessung alle Sensoren automatisiert abgleichen:
curl "http://kinderzimmer.local/api/offset?sensor=1&set=-0.3"
3D Druck – Dateien
Die 3D-Druck-Dateien findet ihr auf der folgenden Seite.
URL: <noch einfügen>
Ausblick: Die Steuerung der Stellmotoren
Damit ist der erste Baustein der smarten Fußbodenheizung fertig. Im nächsten Schritt entsteht die eigentliche Steuerung am Heizkreisverteiler. Dort sollen die thermoelektrischen Stellantriebe der einzelnen Heizkreise angesteuert werden. Die Basis dafür sind die Ist-Temperaturen, die die Raumsensoren über ihre API liefern, und die hinterlegten Soll-Temperaturen pro Raum. Geplant ist eine zentrale Steuereinheit, die zyklisch alle Sensoren abfragt und die Ventile über Relais- oder MOSFET-Stufen schaltet. Auch Themen wie eine sinnvolle Hysterese, Zeitprogramme und die Trägheit der Fußbodenheizung werden dabei eine Rolle spielen.
Sobald die Steuerung steht, folgt dazu ein eigener Artikel. Bis dahin verrichten die kleinen bunten Sensoren schon einmal ihren Dienst und sammeln fleißig Messwerte in allen Räumen.
Viel Spaß beim Nachbauen! Bei Fragen freue ich mich wie immer über einen Kommentar.











Recent Comments