Lüften nach Zahlen
Taupunkt statt Bauchgefühl: ein Smart-Home-Aufbau mit ESPHome, Home Assistant und Grafana — und eine Strömungs-Hypothese, die wir am Ende nachmessen.
Innen
Dein Raum
Außen
Draußen vorm Fenster
Außenluft ist trockener — Lüften transportiert Feuchte zuverlässig raus.
Rechnung: Magnus-Formel (a=17.62, b=243.12 °C). Kühlwunsch-Schwelle je Nutzung: Wohnen ab 24 °C (dringend ab 26 °C — Orientierungswert angelehnt an ASR A3.5, die formal für Arbeitsstätten gilt; DIN EN ISO 7730 liefert das Behaglichkeitsmodell PMV/PPD, keine feste Gradzahl), Schlafen ab 19 °C. CO₂/Luftqualität ist ein dritter, hier ungemessener Faktor.
Der Taupunkt ist die einzige ehrliche Metrik
Die relative Feuchte auf dem Baumarkt-Hygrometer ist genau das: relativ zur Temperatur. Luft mit 20 °C und 60 % enthält deutlich mehr Wasser als Luft mit 10 °C und ebenfalls 60 %. Wer im Winter lüftet, „weil's drinnen zu feucht ist", ohne die absoluten Werte zu kennen, holt sich im Zweifel mehr Wasser rein.
Was zählt, ist der Taupunkt Td (oder die absolute Feuchte in g/m³) — die Temperatur, bei der die Luftfeuchte kondensieren würde. Die Lüftungsentscheidung fällt über die Taupunktdifferenz zwischen innen und außen:
Δᵀd > 0 → Taupunkt draußen niedriger → Fenster auf, Feuchte geht raus.
Δᵀd ≤ 0 → draußen ist mehr Wasser in der Luft → Fenster zu, sonst lüftest du feuchter.
Wichtig: Das gilt fürs Feuchtemanagement — nicht als Gesamturteil. Bei 30 °C drinnen und 20 °C draußen sagt der Taupunkt vielleicht „zu", real willst du aber kühlen und lüftest trotzdem. Temperatur (Kühlbedürfnis) und CO₂ sind eigene Ziele, die die reine Feuchte-Entscheidung überlagern. Das Widget oben rechnet die Feuchte- und die Temperaturachse deshalb zusammen und meldet den Zielkonflikt, statt eine Achse zu verschweigen.
Thermische Trägheit & der Feuchte-Rebound
Luft ist schnell getauscht — ein kurzes Stoßlüften reicht. Aber Wände, Massivholz, Teppiche und das fette Stoffsofa sind massive Feuchte- und Wärmespeicher. Nach dem Schließen der Fenster „atmen" sie das gespeicherte Wasser zeitverzögert wieder in die frische Luft aus: die relative Feuchte kriecht zurück. Wärmelasten (Server, PCs, Personen) laden diese Speicher stetig nach.
Automatisierungen dürfen nicht sofort nach dem Fensterschließen wieder Alarm schlagen. Es braucht Hysterese und Zeitverzögerungen, sonst nervt das System mit Dauer-Lüftungshinweisen, während der Raum noch akklimatisiert.
In Home Assistant: die Thermal-Comfort-Integration
Damit du Taupunkt & absolute Feuchte nicht als Template-Sensoren von Hand basteln musst, rechnet die HACS-Integration Thermal Comfort deine vorhandenen Temperatur-/Feuchte-Sensoren automatisch um: installieren, HA neu starten, unter Einstellungen → Geräte & Dienste hinzufügen, Sensorpaar je Raum wählen — fertig sind die Taupunkt-Entitäten. Für jeden Raum plus den Außensensor wiederholen. Das ist das Fundament für wasserdichte Lüftungs-Trigger.
Vom Prototyp am Schreibtisch zum unsichtbaren Node
Basis ist der ESP32. Fürs Prototyping das klobige, aber ehrliche Devkit V1 — viele GPIOs, simpler USB-Flash. Für den dauerhaften, unauffälligen Wohnraum-Einsatz die kompakten Super-Mini C3/S3.
Der C3 Super Mini ist bei vielen Klonen für ein schwaches Antennen-Layout bekannt → WiFi-Reichweite/Stabilität. Für einen fest platzierten Node okay, aber nicht als „tief im Möbel versteckt" einplanen. Vorher am Zielort die Signalstärke prüfen.
Erweiterte Sensorik: BME680 + AGS10
Der BME680 ist der I²C-Allrounder: Temperatur, Feuchte, Druck plus ein summierter Gaswiderstand. Über den BSEC-Algorithmus (ESPHome: bme68x_bsec2_i2c) wird daraus ein IAQ-Index. Der AGS10 ergänzt dedizierte TVOC-Werte in ppb — auf flüchtige organische Verbindungen kalibriert.
Die kritische Randbedingung beim Kombinieren: Der AGS10 verlangt einen langsamen Bus (frequency: 15kHz). Hängen BME680 und AGS10 am selben I²C-Bus, gilt diese Frequenz für alle Teilnehmer. Der BME680 verträgt das, aber der Wert muss explizit gesetzt sein — sonst redet der AGS10 nicht.
IAQ ist eine weiche Metrik, kein harter Trigger: BSEC braucht Burn-in/Kalibrierung (Accuracy-Status Stabilizing → Uncertain → Calibrating → Calibrated), das „CO₂-Äquivalent" ist ein geschätzter Wert aus dem Gaswiderstand, nicht echtes CO₂. Die Bosch-BSEC-Lizenz verbietet zudem das Verteilen kompilierter Firmware-Binaries.
Tür-/Fensterkontakte als harte Gatekeeper
Die genauesten Luftdaten sind wertlos, wenn Automatisierungen gegen die Physik anarbeiten. Kontaktsensoren sind binäre Gatekeeper: Bei offenem Fenster wird eine Heizungssteuerung geblockt und ein Umluft-Luftreiniger pausiert — egal was der AGS10 gerade meldet. Jede Schwellenwert-Logik wertet erst aus, wenn die Fensterbedingung sauber steht.
Platzierung — sonst misst du Müll
Sensoren nicht über Heizkörpern, nicht neben Netzteilen, nicht direkt über einem schlecht belüfteten ESP32 (Eigen-/Fremderwärmung verfälscht Temperatur & Feuchte). Direkte Sonne und Zugluft (Fensterrahmen, Klimaanlagen-Strom) ausschließen — die Werte werden sonst hochvolatil. Ziel: Atemhöhe, ~1,0–1,5 m, an massiver Innenwand. Bodennähe staut Kaltluft, Deckenmontage die wärmsten Schichten.
Wo die Daten liegen — und wer entscheidet
Die native HA-Datenbank (SQLite Standard, MariaDB bei viel Historie) ist die Single Source of Truth für Live-Zustände, Dashboards und die direkte Ausführung der Automatisierungen. Für Langzeit & visuelle Analyse gehen Temperatur, Feuchte und VOC parallel nach InfluxDB, aufbereitet in Grafana.
In Grafana ausschließlich InfluxQL (kein Flux). Aggregation, Berechnung und zeitliche Gruppierung passieren strikt in Grafana, auf Basis definierter Timings — für performante, exakt getaktete Auswertung der Historie.
Welcher Außenwert entscheidet — zwei Sensoren nach Sonnenstand
Ein einzelner Außensensor an einer besonnten Fassade misst durch Strahlungsfehler zu warm: Die Sonne heizt Gehäuse und die anliegende Luftschicht auf, die gemessene Temperatur liegt über der echten Lufttemperatur, die relative Feuchte entsprechend zu tief. Für die Temperaturachse (lohnt Kühlen?) verfälscht das massiv — für die Feuchteachse weniger, weil die absolute Wassermenge sich durch Erwärmung nicht ändert, aber die lokal aufgeheizte Grenzschicht zieht auch den berechneten Taupunkt leicht mit.
Lösung: zwei Außensensoren an unterschiedlich orientierten Fassaden (z. B. Ost und West). Home Assistant nutzt für die Entscheidung den Sensor auf der verschatteten Seite — das ist zugleich die Seite, über die du bei praller Sonne ohnehin lüften willst.
Vormittag: Die Sonne steht im Osten — die Ostfassade wird besonnt, ihr Sensor misst zu warm. Home Assistant nimmt den West-Sensor.
Umsetzung: sun.sun liefert azimuth (Himmelsrichtung) und elevation (Höhe über Horizont). Über den Azimut bestimmst du die besonnte Fassade und wählst per Template-Sensor den verschatteten Außensensor. Robuste Kurzform ohne Geometrie: den kühleren der beiden Sensoren nehmen — der besonnte ist praktisch immer der wärmere, das deckt den Strahlungsfehler unabhängig von der Fassaden-Ausrichtung. Bei elevation unter der Horizontnähe (Dämmerung/Nacht) gibt es keinen Strahlungsfehler — dann ist die Wahl egal, Mittelwert genügt.
Knallt die Sonne direkt aufs geöffnete Fenster, ist kühlere Außenluft trotzdem kein guter Deal — der Strahlungseintrag durch die Scheibe überwiegt. Querlüftung über die Schattenseite ist dann die bessere Wahl: genau die Fassade, deren Sensor nach obiger Logik gerade die Entscheidung trägt.
Die kombinierte Lüfter-Logik
Trigger: VOC über Schwelle (z. B. TVOC > 1000 ppb) oder Δᵀd signalisiert, dass Außenluft trockener ist als innen.
Bedingung: Ein Ablüfter braucht Zuluft — Start nur bei geöffnetem Fenster. (Sauber trennen: der Umluft-Luftreiniger aus Teil 02 pausiert bei offenem Fenster; der Ablüfter hier braucht es offen. Verschiedene Geräte, verschiedene Regel.)
Aktionen:
Fenster schließt im Betrieb → Ablüfter sofort aus. Nicht wegen „gefährlichem Unterdruck" (den erzeugt ein Zimmerlüfter nicht — das ist nur bei raumluftabhängigen Feuerstätten ein Thema), sondern weil ein Ablüfter ohne Zuluft schlicht wirkungslos gegen die Wand arbeitet.
Regulärer Stopp: sobald die VOC-Werte wieder normal sind oder Δᵀd keinen sinnvollen Austausch mehr hergibt.
Die Türspalt-Hypothese
Die Idee: Ein Türspalt verengt den Querschnitt, die Luft beschleunigt (Kontinuität), es entsteht ein gerichteter Freistrahl, der tief in den Nachbarraum zieht und warme Luft mitreißt. Klingt nach Venturi — und die lokale Geschwindigkeit steigt tatsächlich.
Der Haken: Für den Luftaustausch zählt nicht die Geschwindigkeit v, sondern der Volumenstrom Q. Q = v·A gilt mit festem Q im geschlossenen Rohr. Bei natürlicher Lüftung ist Q aber nicht festgelegt — der Strömungswiderstand bestimmt ihn. Ein Türspalt ist eine Drossel: er erhöht v lokal, senkt aber Q insgesamt. Für maximalen Luftwechsel gilt also nüchtern: Tür weit auf, nicht angelehnt.
Schmaler Spalt: Es „zieht" spürbar (amber), aber der Luftwechsel Q (teal) ist klein.
Der Freistrahl / das Mitreißen (Entrainment) existiert — aber es verbessert die Durchmischung innerhalb eines Raums, nicht den Gesamt-Luftwechsel zwischen Räumen. Für Querlüftung bleibt entscheidend: Luv-Fenster (Wind zugewandt) und Lee-Fenster (abgewandt) weit auf, dazwischen möglichst wenig Widerstand.
Ventilatoren wirken am besten im vorhandenen Druckgefälle: als Abluftgebläse direkt am Lee-Fenster, um den Sog durch die Wohnung zu verstärken — nicht wahllos im Raum aufgestellt.
Nachmessen statt glauben
Die Annahme aus Teil 04 lässt sich sauber prüfen — auf zwei Wegen, die sich gegenseitig verifizieren.
A · Datenlage aus den Sensoren
Vergleiche die Steilheit der Entfeuchtungs- oder TVOC-Kurve zwischen zwei Szenarien: Tür offen vs. Tür angelehnt. In Grafana per InfluxQL, Aggregation und zeitliche Gruppierung direkt im Panel.
Die Kurve fällt bei offener Tür steiler ab (mehr Volumenstrom). Fällt sie bei angelehnter Tür steiler — dann hätte die Venturi-These recht und wir müssten umdenken. Genau darum wird gemessen.
B · Physikalisch am Türspalt
- Strömung sichtbar machenRäucherstäbchen oder Nebelröhrchen vor den Spalt (keine E-Zigarette — das Aerosol ist schwerer als Luft und sinkt, statt der Strömung zu folgen). Gerader Abzug = laminar, Verwirbelung = turbulent.
- Geschwindigkeit messenAnemometer direkt in den Spalt: Luftgeschwindigkeit v in m/s.
- Volumenstrom berechnenAus v und der freigegebenen Spaltfläche A ergibt sich der tatsächlich ausgetauschte Volumenstrom — die Größe, auf die es ankommt.
Q = Volumenstrom · v = gemessene Luftgeschwindigkeit · A = Querschnittsfläche des Spalts. Erst der Vergleich der Q-Werte (offen vs. angelehnt) entscheidet die Hypothese — nicht das Gefühl, dass es im Spalt „schneller zieht".