Zurück zum Blog
23. September 2026Messtechnik / Home Assistant

Holz-Backofen: Die Steuerung gibt ihr Display ab und bekommt eine LED-Matrix

ESP32-S3RP2350HUB75LED-MatrixMAX31856ThermocoupleHolzbackofenESP-IDFMQTTHome Assistant
Holz-Backofen: Die Steuerung gibt ihr Display ab und bekommt eine LED-Matrix
Sicherheitshinweis — Nachbau auf eigene Gefahr

Nachbau auf eigene Gefahr. Die Beschreibung ist eine persönliche Dokumentation, keine geprüfte Bauanleitung — Eignung für deinen Anwendungsfall musst du selbst prüfen.

Zu klein, sobald man am Ofen arbeitet

Im Mai habe ich hier die erste Version meiner Backofen-Steuerung vorgestellt: ein ESP32-S3 mit Touch-Display, zwei Thermoelemente in Kuppel und Boden. Im Sommer wurde das Display größer, zunächst 3,5 Zoll, und Anfang September dann 4,3 Zoll auf einem ESP32-P4. Auf dem Schreibtisch sah es gut aus. Am Ofen hat es zwei Backtage gedauert, bis mir klar wurde, dass das nicht funktioniert. Die Software lief fehlerfrei. Doch wer Brot einschießt oder Glut ausräumt, steht nicht 40 cm vor dem Gehäuse, sondern zwei, drei Meter daneben, mit dem Schieber in der Hand. Aus der Entfernung wirkt ein 4,3-Zoll-Panel wie ein heller Fleck. Ein noch größeres Display am Gehäuse hätte wenig geändert, denn das Gehäuse sitzt dort, wo die Kabel der Fühler hinkommen, und nicht dort, wo ich hinschaue. Also habe ich die Frage anders gestellt: Warum muss das Messgerät überhaupt etwas anzeigen?

Messen und Anzeigen getrennt

Das System umfasst nun zwei Geräte. Die Basis ist ein ESP32-S3 (DevKitC-1 mit 16 MB Flash und 8 MB PSRAM), der in einem geschlossenen Gehäuse am Ofen montiert ist. An ihm hängen zwei K-Typ-Thermoelemente, jeweils angeschlossen über einen MAX31856. Ich habe die Firmware aus dem P4 übernommen und die komplette Display-Schicht entfernt, etwa 2.300 Zeilen für Oberfläche, Schriften und Boot-Animation. Der Umzug bestand größtenteils aus Löschen. Die Pins sind die gleichen wie beim alten S3, die Fühlerplatine ist ohne Umlöten umgezogen. Die Basis ist das Gehirn: Programmfenster, Backzeit-Vorschlag, Abkühlvorhersage, Aufzeichnung, Web-Oberfläche, MQTT für Home Assistant. Das war eine bewusste Wahl. Die Abkühlphase eines Holzofens erstreckt sich über einen ganzen Tag, und wenn die Rechnung in der Anzeige stehen würde, wäre die Kurve verschwunden, sobald ich die Anzeige entferne. Die Fernanzeige hört nur zu. Die Basis sendet alle 2 Sekunden ihren vollständigen Status per UDP-Broadcast ins Netzwerk, genau das gleiche JSON, das auch die Weboberfläche erhält. Es gibt keinen Broker und keinen Router dazwischen. Die Basis erstellt dafür dauerhaft einen eigenen Hotspot. Den braucht sie ohnehin: wenn der Router im Garten nicht reicht, verbindet sich mein Telefon dort. Die Anzeige akzeptiert keine Befehle. Sie sendet lediglich alle 30 Sekunden ein Lebenszeichen zurück, damit die Basis weiß, dass jemand zuhört. ESP-NOW habe ich mir angeschaut und verworfen. Es hätte den Hotspot nicht ersetzt, sondern einen zweiten Funkweg hinzugefügt. Außerdem ist das Paket mit rund 415 Byte größer als die 250 Byte, die ESP-NOW pro Nachricht mitnimmt. Der wichtigere Grund war aber ein anderer: UDP kann mein Rechner auch. Ein kleines Python-Skript spielt die Basis nach, mit Aufheizen, Zielfenster, zu heiß, Fühler weg und Funkabriss. Damit ist die komplette Anzeige am Schreibtisch entstanden, ohne ein einziges Mal anzufeuern.
Weboberfläche der Basis: Programm Brot ausbacken, Backzeit-Vorschlag, Kuppel bei 185 °C, Boden bei 149 °C, Verlauf und Abkühlvorhersage

64×32 Punkte, drei Farben

Die Anzeige besteht aus einem Raspberry Pi Pico 2 W und einem HUB75-LED-Panel von Waveshare: 64×32 Punkte im Raster mit 2,5 mm, also 160×80 mm. Das Panel wird mit der Protomatter-Bibliothek von Adafruit angesteuert. Ursprünglich war dafür ein Interstate 75 W von Pimoroni vorgesehen, das bereits Pegelwandler und HUB75-Stecker besitzt. Das ist aber in ein anderes Projekt gewandert, und der Pico, auf dem ich die Anzeige programmiert habe, ist einfach geblieben. Das Panel erhält ein eigenes 5-V-Netzteil, über den Pico lässt es sich nicht versorgen. Die Ziffern haben eine Höhe von etwa 35 mm. Sie sind gut lesbar, doch die eigentliche Information steckt in der Farbe. Aus ein paar Metern Entfernung lässt sich keine Ziffer mehr erkennen, aber jeder sieht sofort, ob die Anzeige blau, grün oder rot ist. Blau bedeutet: noch nicht so weit. Grün bedeutet: im Zielfenster des gewählten Programms. Rot bedeutet: zu heiß, und nur das ist rot. Kuppel und Boden werden jeweils einzeln bewertet. Es gibt kein Blinken; ein blinkendes Panel im Augenwinkel lenkt nur ab. Wenn ein Backtimer läuft, steht die Restzeit rechts oben und darunter ein Balken, der sich von links nach rechts orange füllt. Er ist orange und nicht rot, weil ein Balken, der auf Rot zuläuft, wie eine Warnung wirken würde. Der Timer verdrängt keine der beiden Temperaturen. Das war mir wichtig, denn genau während des Backens entscheidet der Boden darüber, ob etwas verbrennt oder nicht. Wenn der Ofen kalt ist, wechselt das Panel auf einen zweiten Screen mit Uhrzeit, Umgebungstemperatur und Luftfeuchte sowie drei kleinen Balken, die die Verbindung zur Basis anzeigen. Der Wechsel erfolgt ab 50 °C, zurück erst bei unter 45 °C, und beide Zustände müssen jeweils eine Minute anhalten. Sobald ein Timer gestartet wird, kommt sofort der Ofen-Screen. Die Helligkeit kann über die Weboberfläche der Basis oder in Home Assistant eingestellt werden; die Anzeige liest sie aus jedem Paket.
LED-Matrix mit Kuppel und Boden in Rot, zu heiß für das gewählte Programm, rechts ein 30-Minuten-Timer
Die LED-Matrix zeigt beide Temperaturen in Grün im Zielfenster, während der Timer-Balken teilweise orange gefüllt ist

Warum der Umgebungsfühler an der Anzeige hängt

Die Basis berechnet eine Abkühlvorhersage nach Newton: wann erreicht der Ofen 200 °C, wann 100 °C. Dafür benötigt sie die Umgebungstemperatur. Bislang war der SHT31 am Gehäuse der Steuerung angebracht. Jetzt befindet sich die Basis in einem geschlossenen Kasten, und ein Sensor im Inneren misst die Temperatur des Kastens. Mit diesem Wert wäre die Vorhersage unbrauchbar gewesen. Deshalb wurde der SHT31 an die Anzeige verlegt, die frei in der Luft hängt, an einem kurzen Kabel außerhalb ihres Gehäuses. Sein Wert wird mit dem Lebenszeichen zurück zur Basis gesendet. Das hat einen Preis, den ich bewusst akzeptiere: wenn die Anzeige aus ist, fehlen die Abkühlvorhersage und der Taupunkt. Dann bleiben die Felder leer und zeigen nicht den letzten alten Wert. Daneben ist ein DS3231-Uhrmodul montiert. Beim Umbau fiel mir auf, dass die Basis überhaupt keine Uhr hatte. Deshalb hießen die Aufzeichnungen seit Wochen up404.csv, benannt nach der Betriebszeit in Sekunden. Jetzt holt sich die Basis die Zeit über NTP; im Garten ohne Internet stellt die Web-Oberfläche sie beim Öffnen selbst, und die Anzeige nutzt den DS3231 als eigene Uhr für den Uhr-Screen.

Die verbrannte Pizza

Bei einem der beiden Backtage mit dem P4 zeigte das Display "bereit" an, und die Pizza war unten schwarz. Das Infrarot-Thermometer auf der Bodenplatte meldete deutlich höhere Werte als der Bodenfühler. Der Fühler misst korrekt, er ist nur an einer anderen Stelle platziert. Er steckt etwa 1 cm tief im Schamottestein, genau in der Mitte der Bodenplatte. Solange das Feuer brennt, wandert die Wärme von oben nach unten durch den Stein, sodass die Oberfläche heißer ist als der Punkt darunter. Mit der Wärmeleitfähigkeit dichter Schamotte geschätzt, liegen die Unterschiede je nach Feuer zwischen 20 und über 80 K. Dazu reagiert der Fühler verzögert: bis er eine Änderung an der Oberfläche wahrnimmt, vergehen ungefähr zehn Minuten. Sobald das Feuer raus ist und der Ofen durchzieht, verschwindet das Gefälle, und der Wert stimmt wieder. Für Brot und Kuchen ist er also geeignet, bei Pizza mit offenem Feuer liegt er zu niedrig. Das IR-Thermometer übertreibt ebenfalls, weil die glühende Kuppel auf den Boden strahlt und ein Teil dieser Strahlung zurück ins Messgerät gelangt. Die Wahrheit liegt irgendwo dazwischen. Eine feste Korrekturzahl habe ich bewusst weggelassen. Bei Pizza wäre sie passend, bei Brot nicht. Stattdessen prüft die Basis, wie schnell der Bodenwert ansteigt. Steigt er schnell, fließt viel Wärme, und dann erscheint der Hinweis "Backfläche heißer als angezeigt": in der Web-Oberfläche an der Bodenkachel, als kleines orangefarbenes Dreieck in der Bodenzeile der Matrix und als eigener Sensor in Home Assistant. Die Schwellenwerte dafür sind im Moment geschätzt. Die Aufzeichnung der verbrannten Pizza lag auf dem P4 und ist nicht mehr vorhanden.

Backtag mit Brot und Kuchen

Heute war wieder Backtag. Am späten Vormittag wurde angefeuert, die Kuppel erreichte 638 °C und der Boden 302 °C. Danach kam erst Brot, anschließend in der Nachwärme zwei Streuselkuchen. Die Anzeige hängt in Sichtweite, und die Farbe gibt die Information: Rot bedeutet warten, Grün bedeutet rein damit. Ich brauche die Zahlen nur, wenn es genauer sein soll. Der Kuchen war unten durchgebacken und nicht verbrannt, was nach der Pizza-Erfahrung für mich der eigentliche Test war. In Home Assistant erscheint der ganze Tag als ein Spitzenwert in der 7-Tage-Kurve. Die Abkühlvorhersage zeigte am Nachmittag bei 185 °C in der Kuppel noch etwa 9 Stunden bis zu 100 °C.
Zwei Brote liegen auf dem Holzschieber vor der offenen Ofentür
Vier fertige Brote liegen auf Schieferplatten
Zwei Streuselkuchen backen im Ofen
Streuselkuchen im Anschnitt mit durchgebackenem Boden
Home-Assistant-Dashboard mit Kuppel, Boden, Abkühlvorhersage und dem Backtag im Verlauf

Was nicht lief

Die Aufzeichnung ist leer. Nach dem Backen wollte ich die CSV öffnen, und dort stand nur die Kopfzeile. Die Ursache war schnell gefunden: es handelt sich um ein Überbleibsel vom P4. Dort ließ das Schreiben in den Flash das Display flackern, deshalb bleibt die Datei während der gesamten Anfeuerung offen, und die Zeilen werden nur einmal pro Minute gesammelt geschrieben. Das Dateisystem LittleFS speichert den neuen Inhalt erst endgültig, wenn die Datei geschlossen oder ausdrücklich synchronisiert wird; ein einfaches Flush reicht nicht aus. Geschlossen wird die Datei erst, wenn der Ofen wieder unter 40 °C fällt, und das dauert bis morgen. Solange sieht jeder, der die Datei liest, nur die Kopfzeile, und bei einem Stromausfall geht die gesamte Aufzeichnung verloren. Die Basis hat kein Display mehr, das flackern könnte. Die Lösung besteht also in einer einzigen Zeile. Grün und Blau waren vertauscht. Beim ersten Einschalten des Panels waren die beiden Farben vertauscht, und zwar in beiden Bildhälften. Das Panel belegt seinen Stecker anders als die Zeichnung im Wiki des Herstellers. Nachdem vier Adern umgesteckt waren, stimmte es. Seitdem lasse ich vor dem ersten Betrieb eines neuen Panels immer erst das Testbild laufen. Das Testbild verschwand am Anfang übrigens nach einem Wimpernschlag, weil der zweite Prozessorkern die normale Anzeige einfach darübermalte. Ausgerechnet das Werkzeug, mit dem man eine Verdrahtung prüft, sah dadurch selbst wie ein Verdrahtungsfehler aus. Der Ofen selbst. Beim Brotbacken bemerkte ich, dass die Klappe in der Esse nicht vollständig schließt. Dadurch entweicht Wärme und vor allem Feuchtigkeit, die man beim Brotbacken im Ofen behalten möchte. Das ist kein Elektronikproblem, aber so etwas wird erst sichtbar, wenn man am Ofen steht und nicht am Schreibtisch.

Wie es weitergeht

Zuerst korrigiere ich die Aufzeichnung, weil mir ohne die CSV genau das Material fehlt, das ich als Nächstes benötige. Die Zielfenster für den Boden entstammen Rezepten und Praxisberichten, und dort bezieht sich "Boden" immer auf die Oberfläche, auf der der Teig liegt. Mein Fühler misst 1 cm darunter. Deshalb möchte ich die Fenster auf die Skala des Fühlers übertragen: Welcher Fühlerwert stand an, als das Brot oder die Pizza wirklich gut wurde? Dafür gibt es in der CSV seit Kurzem eine Spalte mit der Restzeit des Timers, damit man sehen kann, wann etwas im Ofen war. Das funktioniert allerdings nur, wenn ich den Timer auch wirklich starte, sobald das Backgut drin ist. Danach kümmere ich mich um die Klappe in der Esse. Und ein Foto der Basis im Gehäuse reiche ich nach, das habe ich heute vergessen.

Mehr technische Details zu diesem Projekt:

Zum Projekt →

Fragen zum Projekt? Schreib mir direkt:

Ich antworte innerhalb von 24–48h.

Mike Sobczinski
Mike Sobczinski
Ausbildung in Automatisierungs- und Computertechnik, hauptberuflich in der Halbleiterindustrie. Baut IoT-Lösungen mit ESP32, LoRa und Home Assistant — von der Firmware bis zum Dashboard.
Mehr erfahren →

Weiterlesen

Neue Beiträge mitbekommen?

Es gibt einen RSS-Feed — kein Newsletter, keine Anmeldung. Der Code zu den Projekten liegt auf GitHub.