Wer kennt es nicht: beschlagene Spiegel und hohe Luftfeuchte nach dem Duschen. Doch wann lohnt es sich tatsächlich, das Bad zu lüften? Mit Homematic IP, einer CCU3, der Wetterstation, einem Thermostat im Bad und etwas Mathematik lässt sich diese Entscheidung automatisieren. In diesem Beitrag erfährst du, wie man ein Homematic Script erstellt, das anhand von Temperatur- und Feuchtigkeitswerten automatisch entscheidet, ob Lüften sinnvoll ist – und wie die Physik dahinter funktioniert.
Warum absolute Feuchte zählt
Die relative Luftfeuchtigkeit (z. B. 60 %) hängt stark von der Temperatur ab, was sie als Steuergröße ungeeignet macht. Kältere Luft kann weniger Wasser aufnehmen, weshalb winterliche Außenluft zwar eine hohe relative, aber sehr niedrige absolute Feuchte hat. Erst durch Erwärmen wird sie drinnen spürbar „trockener“. Deshalb vergleicht unser Script die absolute Luftfeuchtigkeit innen und außen.
Die Mathematik dahinter
Um die absolute Luftfeuchte zu berechnen, nutzen wir drei bekannte Formeln aus der Hygrometrie:
- Magnus-Formel (Sättigungsdampfdruck über Wasser):
e_s(T) = 6.112 * exp(17.62*T / (243.12 + T))
Hier ist T die Temperatur in °C und e_s(T) das Ergebnis in hPa. Sie beschreibt den maximal möglichen Wasserdampfdruck bei gegebener Temperatur.
Quelle: Wikipedia: Magnus-Formel - tatsächlicher Dampfdruck:
e = (RH / 100) * e_s(T)
RH ist die relative Feuchte in %, e ergibt den tatsächlichen Dampfdruck des Wasserdampfes in der Luft. - absolute Feuchte (in g/m³):
a = (216.679 * e) / (T + 273.15)
Diese Formel wandelt den Dampfdruck e in die absolute Masse an Wasserdampf um, die ein Kubikmeter Luft enthält.
Quelle: RechnerOnline: Luftfeuchtigkeit Umrechnung
Das Script berechnet für beide Seiten (innen und außen) die absolute Luftfeuchte und ermittelt deren prozentuale Differenz. Erst wenn die Innenluft mindestens 15 % „feuchter“ ist als die Außenluft, wird eine Lüftungsempfehlung ausgegeben. Diese Schwelle lässt sich in einer Variablen anpassen.
Funktionsweise des Scripts
Für die Berechnung benötigen wir Messwerte von zwei Homematic-IP-Geräten:
- HmIP-SWO-PL – Wetterstation (Außentemperatur & Luftfeuchtigkeit)
- HmIP-STHD – Thermostat (Raumtemperatur & Luftfeuchtigkeit)
Das Script liest die vier Messwerte aus, wendet die oben genannten Formeln an und schreibt zwei Systemvariablen:
Bad Lüften→ Bool (ob Lüften empfohlen ist)Bad Lüften Differenz→ Zahl (Prozentuale Feuchte-Differenz)
Voraussetzungen
- CCU3 oder RaspberryMatic
- beide Sensoren angelernt
- Systemvariablen
Bad Lüften(Logikwert) undBad Lüften Differenz(Zahl) erstellt
Das komplette Homematic-Script
! HomeMatic Script: Lüftungsauswertung mit Differenz-Speicherung
! ========== KONFIGURATION ==========
real FEUCHTE_DELTA_PROZENT = 15.0; ! Mindestdifferenz innen vs. außen in Prozent für Lüftungsempfehlung
string wetterstation_sn = "00123456789ABC"; ! Seriennummer Wetterstation
string thermostat_sn = "000123456789AB"; ! Seriennummer Thermostat
string sysvar_bool = "Bad Lüften"; ! Name der Variable ob gelüftet werden soll
string sysvar_diff = "Bad Lüften Differenz"; ! Name der Variable mit der Prozentualen Abweichung der Luftfeuchtigkeit.
object dp_temp_aussen = dom.GetObject("HmIP-RF." # wetterstation_sn # ":1.ACTUAL_TEMPERATURE");
object dp_hum_aussen = dom.GetObject("HmIP-RF." # wetterstation_sn # ":1.HUMIDITY");
object dp_temp_innen = dom.GetObject("HmIP-RF." # thermostat_sn # ":1.ACTUAL_TEMPERATURE");
object dp_hum_innen = dom.GetObject("HmIP-RF." # thermostat_sn # ":1.HUMIDITY");
object sysvar_boolobj = dom.GetObject(sysvar_bool);
object sysvar_diffobj = dom.GetObject(sysvar_diff);
if (!dp_temp_aussen || !dp_hum_aussen || !dp_temp_innen || !dp_hum_innen) {
WriteLine("FEHLER: Sensor-Datenpunkte nicht gefunden!");
if (!dp_temp_aussen) { WriteLine("- Außentemperatur fehlt"); }
if (!dp_hum_aussen) { WriteLine("- Außenfeuchte fehlt"); }
if (!dp_temp_innen) { WriteLine("- Innentemperatur fehlt"); }
if (!dp_hum_innen) { WriteLine("- Innenfeuchte fehlt"); }
quit;
}
if (!sysvar_boolobj) { WriteLine("FEHLER: Systemvariable '" # sysvar_bool # "' fehlt!"); quit; }
if (!sysvar_diffobj) { WriteLine("FEHLER: Systemvariable '" # sysvar_diff # "' fehlt!"); quit; }
real T_o = dp_temp_aussen.Value();
real RH_o = dp_hum_aussen.Value();
real T_i = dp_temp_innen.Value();
real RH_i = dp_hum_innen.Value();
! Magnus-Formel für Sättigungsdampfdruck (hPa)
real expo_o = (0.0 + (17.62 * T_o) / (T_o + 243.12));
real expo_i = (0.0 + (17.62 * T_i) / (T_i + 243.12));
real e_s_o_hPa = 6.112 * (expo_o.Exp());
real e_s_i_hPa = 6.112 * (expo_i.Exp());
real e_o_hPa = ((e_s_o_hPa * RH_o) / 100.0);
real e_i_hPa = ((e_s_i_hPa * RH_i) / 100.0);
real a_o = (216.679 * e_o_hPa) / (T_o + 273.15);
real a_i = (216.679 * e_i_hPa) / (T_i + 273.15);
real delta_pct = 100.0 * (a_i - a_o) / a_o;
boolean lueften = (delta_pct >= FEUCHTE_DELTA_PROZENT);
real RH_o_warm = 100.0 * (e_o_hPa / e_s_i_hPa);
WriteLine("Innen: " # T_i.ToString(1) # "°C " # RH_i.ToString(0) # "% rF");
WriteLine("Außen: " # T_o.ToString(1) # "°C " # RH_o.ToString(0) # "% rF");
WriteLine("AbsFeuchtInnen: " # a_i.ToString(2) # " g/m³");
WriteLine("AbsFeuchtAußen: " # a_o.ToString(2) # " g/m³");
WriteLine("Feuchte-Differenz: " # delta_pct.ToString(2) # " %");
if (lueften) {
WriteLine("✓ Lüften empfohlen, RH neu: " # RH_o_warm.ToString(1) # "%");
} else {
WriteLine("✗ Nicht lüften, RH neu: " # RH_o_warm.ToString(1) # "%");
}
sysvar_boolobj.State(lueften); ! Empfehlung als Bool
sysvar_diffobj.State(delta_pct.ToString(2)); ! Prozentwert mit 2 Nachkommastellen
Ergebnisse interpretieren
Nach der Ausführung werden zwei Werte in der CCU3 angezeigt:
- Bad Lüften → true, wenn Innenfeuchte mindestens FEUCHTE_DELTA_PROZENT% höher ist
- Bad Lüften Differenz → numerischer Wert der relativen Differenz
Mit diesen Informationen lassen sich weitere CCU3-Programme erstellen, z. B. eine automatische Benachrichtigung oder Anzeige auf einem Display.
Fazit
Dieses Homematic-Script nutzt bewährte physikalische Formeln, um die Lüftungsempfehlung datenbasiert zu treffen. Es ist leicht anpassbar, transparent in der Berechnung und erweitert das Smart‑Home um eine praxisnahe Funktion für Energieeffizienz und Schimmelprävention.
Quellen: Wikipedia: Magnus-Formel, RechnerOnline.de

Schreibe einen Kommentar