Gefahr durch Schimmelpilze
Diese Gefahr bleibt häufig lange Zeit unerkannt und wird erst bemerkt, wenn die Schimmelflecken sichtbar werden.
Die Ursache ist in vielen Fällen, dass sich an kalten Stellen Feuchtigkeit niederschlägt und dem Schimmel ideale
Bedingungen für sein Wachstum schafft.
Feuchtigkeit aus der Luft kondensiert an kalten Flächen, wenn die Oberflächentemperatur den Taupunkt der feuchten Luft unterschreitet.
Wer eine HomeMatic Hausautomation besitzt, kann Vorbeugen!
In diesem Artikel möchte ich beschreiben, wie ich mit der entsprechenden Programmierung der CCU die Gefahr der Schimmelbildung rechtzeitig erkenne.
Schritte:
- Messung der Temperatur und Feuchte im Raum. (z.B. mit dem FunkWandthermostat).
- Messung der Außentemperatur
- Ermittlung der Kältebrücken im Raum. (Offline mit IR Oberflächenmessung)
- TCL Programm zur Berechnung des Taupunktes als cgi
- HM Script zur Berechnung des Taupunktes und Schätzung der Wandtemperatur
- Visualisierung des Taupunktes und der Schimmelgefahr.
- Kü - Küche (2 Buchstaben für den Raum)
- Kü.TH - FunkWandthermostat Küche mit Temperatur und Humidity (Feuchtigkeit)
- Kü.Taupunkt - Systemvariable: berechneter Taupunkt in der Küche
- Kü.Schimmel - Systemvariable: Schimmelgefahr mit den Werten "keine Gefahr;Warnung;Alarm"
- Te.TH - Aussenmessung auf der Terasse mit Temperatur und Humidity (Feuchtigkeit).
Das TCL Script habe ich auf meiner CCU im Verzeichnis /usr/local/etc/config/addons/www/visu/ unter dem Namen Taupunkt.cgi gespeichert.
Da in der HM Script Sprache die mathematischen Funktionen log und exp nicht zur Verfügung stehen,
wurde TCL zur Lösung der Aufgabe gewählt.
Code: Alles auswählen
#!/bin/tclsh
##
# Taupunkt.cgi
# Script zur Berechnung des Taupunktes aus Temperatur und Feuchte
# Aufruf: http://127.0.0.1/addons/xxx/Taupunkt.cgi?Temperatur=xxx&Feuchte=xxx
# Beispiel: http://127.0.0.1/addons/visu/Taupunkt.cgi?Temperatur=20.0&Feuchte=50.0
# Script im Verzeichnis: /usr/local/etc/config/addons/www/visu/
# Die Rückgabe des Ergebnisses erfolgt in einem simplen Textformat: ("text/plain")
# Status;Temperatur;Feuchte;Taupunkt
# Ausgabe: OK;20.0;50.0;9.3
# Bei einer Temperatur von 20.0 °C und einer relativen Feuchte von 50.0 %
# ergibt sich ein Taupunkt von 9.3 °C
#
# Zum Testen kann die Funktion mit einem Browser auf einem anderen Rechner aufgerufen werden.
# Die lokale Adresse 127.0.0.1 ist dann durch die IP der CCU (z.B. 192.168.100.5) zu ersetzen.
##
load tclrega.so
source [file join $env(DOCUMENT_ROOT) cgi.tcl]
if { [catch {
##############################################################################
# Einsprungpunkt #
##############################################################################
cgi_eval {
cgi_input
set Temperatur 20.0
set Feuchte 50.0
catch { import Temperatur }
catch { import Feuchte }
cgi_content_type "text/plain"
cgi_http_head
}
set Feuchte1 [expr $Feuchte / 100.0]
set xz [expr ( 234.67 * 0.434292289 * log(6.1*exp((7.45*$Temperatur) / (234.67 + $Temperatur)* 2.3025851)* $Feuchte1/6.1))]
set xn [expr ( 7.45 - 0.434292289 * log(6.1*exp((7.45*$Temperatur) / (234.67 + $Temperatur)* 2.3025851)* $Feuchte1/6.1))]
set Taupunkt [expr $xz / $xn]
set Tau1 [expr int(($Taupunkt + 0.05) * 10.0)/10.0]
puts -nonewline "OK;$Temperatur;$Feuchte;$Tau1"
} errorMessage] } then {
puts "Content-Type: text/plain"
puts ""
puts "ERROR $errorMessage"
}
Durch Scannen der Oberflächen mit einem IR Thermometer mit integriertem Laserpointer wird die kälteste Stelle ermittelt.
Ermittlung eines Isolationsfaktors Fi für die Abschätzung der Wandtemperatur.
Tw - Wandtemperatur Kältebrücke
Ta - Aussentemperatur
Ti - Innentemperatur
Mit den Messdaten ergibt sich der Faktor Fi zu:
Fi = (Tw - Ta) / (Ti - Ta)
Fi = (13.8 -2.9) / (21.6-2.9)
Fi = 0.588
Dieser Faktor wird im HMScript zur Abschätzung der Wandtemperatur benötigt, da
die Wandtemperatur sich abhängig von Ti und Ta ändert.
HM Script für jeden Raum (Beispiel Küche):
Code: Alles auswählen
! Berechnung des Taupunktes und der Schimmelwarnung
string stdout;
string stderr;
object oTHi = dom.GetObject("Kü.TH");
object oTi = oTHi.DPByHssDP("TEMPERATURE");
object oHi = oTHi.DPByHssDP("HUMIDITY");
object oTaupunkt = dom.GetObject("Kü.Taupunkt");
object oSchimmel = dom.GetObject("Kü.Schimmel");
object oTHa = dom.GetObject("Te.TH");
object oTa = oTHa.DPByHssDP("TEMPERATURE");
var Ta = oTa.Value(); ! Temperatur aussen
var Ti = oTi.Value(); ! Temperatur innen
var Hi = oHi.Value(); ! Humidity (Feuchtigkeit) innen
var WT = Ta + (Ti - Ta) * 0.588; ! Berechnung der Wandtemperatur. Isolationsfaktor ist anzupassen
string url="http://127.0.0.1/addons/visu/Taupunkt.cgi?Temperatur=" # Ti # "&Feuchte=" # Hi;
system.Exec("wget -O - " # url, &stdout, &stderr);
if (stdout.Length() > 0)
{
if ( stdout.StrValueByIndex(";", 0) == "OK")
{
var Taupunkt = stdout.StrValueByIndex(";", 3).ToFloat();
oTaupunkt.Variable(Taupunkt);
}
}
! Schimmelwarnung
! 0 - keine Gefahr
! 1 - Warnung
! 2 - Alarm
if (WT > (Taupunkt + 2.0)) { oSchimmel.Variable(0);}
else {
if ((Taupunkt + 1.0) < WT) { oSchimmel.Variable(2);}
else { oSchimmel.Variable(1);}
}
Die Variable Kü.Taupunkt wird berechnet.
Die Variable Kü.Schimmel wird gesetzt:
0 - keine Gefahr wenn die geschätzte Wandtemperatur mehr als 2 °C über dem Taupunkt liegt.
1 - Warnung wenn die geschätzte Wandtemperatur zwischen 1°C bis 2 °C über dem Taupunkt liegt.
2 - Alarm wenn die geschätzte Wandtemperatur unter oder bis zu 1 °C über dem Taupunkt liegt.
So sieht das Ergebnis in der Visualisierung aus:
Bei Auftreten einer Schimmel Warnung oder eines Schimmel Alarms können über die HomeMatic weitere Aktionen eingeleitet werden.
Weitere Anregungen und Kommentare nehme ich gerne entgegen.
Die hier gezeigten Scripte können frei verwendet werden. Jegliche Haftung ist ausgeschlossen.
Viel Spaß beim experimentieren.
Smutje