FHEM Forum

FHEM - Anwendungen => Heizungssteuerung/Raumklima => Thema gestartet von: peterk_de am 30 November 2014, 01:19:38

Titel: HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 30 November 2014, 01:19:38
Einführung

Leider existieren viele Anleitungen zum Thema Raumklima und Schimmelvermeidung, die schlichtweg falsch sind und fundamentale Grundlagen und Zusammenhänge ignorieren oder aber aus Zeiten stammen, wo Berechnungen und Regelungen, die mit Systemen wie FHEM heute ganz einfach sind, unmöglich waren. Interessant ist, dass diese veralteten Hinweise sogar noch in aktuellen Normen und Richtlinien beschrieben werden. Mit FHEM und einigen Sensoren, die vermutlich zu jeder Grundausrüstung eines Smart-Homes gehören, kann Schimmel aber sehr viel effektiver verhindert werden.


Basics und Begriffe

Um zu wissen, wie man in einem konkreten Raum vorgehen muss, ist ersteinmal etwas grundlegendes Wissen nötig. Daher hier zunächst ein paar wenige und aufs Wesentliche vereinfachte Infos zu Taupunkten, relativer Luftfeuchte und Schimmel:


Temperaturänderungen und relative Luftfeuchte

Erwärmt man Luft, bleibt die absolute Luftfeuchte gleich, während die relative Luftfeuchtigkeit sinkt. Kühlt man sie ab, steigt die relative Luftfeuchte. Aber um wieviel? Leider ist der Zusammenhang nicht linear, so dass man das ausrechnen muss. Da ich das nirgends fertig gefunden habe, habe ich hier http://www.wetterochs.de/wetter/feuchte.html die nötigen Formeln gefunden, umgestellt und in folgende Funktion für die 99_myUtils.pm gegossen:


sub shiftRelHumidity($$$)
# Uses a pair of relative humidity and temperature ($r1, $T1) to calculate the relative
# humidity on spots with same absolute humidity of the air but different temperature $T2.
#
# Useful to calculate the relative humidity near the surface of cold walls. Therefore, use the rel.
# humidity of the room ($r1 in percent), the room Temperature ($T2 in degrees of C) and the temperature
# of the surface of the wall ($T2 in degrees of C). Returns the rel. humidity on the surface in pct then.
{
  my ($T1, $r1, $T2) = @_;
  my $r2 =  ($r1 * 10**((7.62*$T1)/(234.175+$T1))*(273.15+$T2)) / ( 10**((7.62*$T2)/(234.175+$T2))*(273.15+$T1));
  return $r2;
}


Benutzungsbeispiel 1: Wir haben 20 Grad bei 50% rel. Luftfeuchte. Wir heizen die Luft auf 25°C - wie hoch ist dann die relative Luftfeuchte? Dazu in die FHEM-Kommandozeile eingeben:

{shiftRelHumidity(20,50,25)}
Ergebnis ist dann die relative Luftfeuchte bei 25 Grad - nur noch 37%!

Mit echten Messwerten geht es natürlich auch:
{shiftRelHumidity(ReadingsVal("Innenfuehler","temperature",""),ReadingsVal("Innenfuehler","humidity",""),25)}

Was passiert mit der Luftfeuchtigkeit beim Lüften?

Beim Lüften kommt es im Idealfall zum vollständigen Luftaustausch mit der Außenluft. Die Luft von außen ersetzt die Luft im Raum und behält dabei ihre absolute Feuchtigkeit. Allerdings ändert sich meistens ihre Temperatur und damit wie oben beschrieben ihre relative Luftfeuchtigkeit. Berechnen können wir diese Änderung der relativen Feuchte daher praktischerweise wieder über die Funktion shiftRelHumidity - und zwar so, als ob wir die Außenluft auf Innentemperatur aufheizen bzw. abkühlen.

Beispiel: Draußen sind 21 Grad und es ist schwül bei 85% rel. Luftfeuchte. Wir wollen diese Außenluft in den 17 Grad warmen Keller lassen. Wie hoch wäre dann dort die Luftfeuchte? Dazu in die FHEM-Kommandozeile eingeben:

{shiftRelHumidity(21,85,17)}
Ergebnis 108% - oha! Schlechte Idee, da läufts quasi sofort von den Wänden, wir haben den Taupunkt dort unterschritten.

Klappt natürlich auch wieder mit echten Messwerten:
{shiftRelHumidity(ReadingsVal("Aussenfuehler","temperature",""),ReadingsVal("Aussenfuehler","humidity",""),ReadingsVal("Innenfuehler","temperature",""))}

Wann wächst Schimmel?
Oder: warum die Taupunkttemperatur ungeeignet ist, dies zu beurteilen.

Nach der Theorie zur Luftfeuchtigkeit nun aber zum Schimmel. Schimmel braucht Wasser, um wachsen zu können. Möchte man einschätzen, ob in einem Raum Schimmelgefahr besteht, könnte man auf die Idee kommen, das mit FHEM-Bordmitteln über das Taupunkt-Modul ,,dewpoint" zu machen. Wenn der Taupunkt der Raumluft über irgendeiner Oberflächentemperatur liegt, dann liegt dort die rel. Luftfeuchte bei über 100% und es kondensiert dort das Wasser, die Fläche wird nass und es schimmelt. Man müsste also nur die Taupunkttemperatur Td(Raumtemperatur, rel. Raumluftfeuchte) mit der Wandtemperatur vergleichen.

Diese Variante per Taupunkt ist aber bezüglich Schimmel leider nur die halbe Miete: Laut verschiedenen Quellen wächst Schimmel schon viel früher - ohne kondensierten, flüssigen Wasserfilm, allein durch eine hohe relative Luftfeuchte von über 70-80%, und nicht erst 100% wie bei Taupunkttemperatur. Der genaue Wert der relativen Luftfeuchte, ab wann Schimmel wächst, wurde in Studien ermittelt und ist u.A. abhängig von der Sorte des Schimmels, dem Oberflächenmaterial - und der jeweiligen Oberflächentemperatur! Wir können diese kritische Luftfeuchte selbst ausrechnen (in die Datei 99_myUtils.pm einfügen):


sub schimmelfreiMaxHum($)
# Maximal erlaubte relative Luftfeuchte (in 0...100%) in Oberflächennähe, so dass kein Schimmel-Myzelwachstum
# Auftritt. Annahme: optimales Substrat und Myzelwachstum und Sporenwachstum für alle im
# Bau auftretenden Pilze unterbunden, d.h. keine biol. Aktivität.
# Parameter: Temp. der Oberfläche in Grad Celsius
#
{
  my ($Temp) = @_;
  if ($Temp <= 0) {return 100;}
  my $rHmax = 70+20.1*(0.87**$Temp);
  return $rHmax;
}


Beispiele für die FHEM-Kommandozeile:

{schimmelfreiMaxHum(25)}
- Ergebnis 70%, d.h. bei 25 Grad Oberflächentemperatur wächst Schimmel dort ab 70% rel. Luftfeuchte.

{schimmelfreiMaxHum(10)}
- Ergebnis 75%, d.h. bei 10 Grad Oberflächentemperatur wächst Schimmel dort ab 75% rel. Luftfeuchte.

Für Räume, die keine besonders kalten Flächen / Wände haben, haben wir damit im Prinzip schon die Lösung: Es ist die relative Luftfeuchte im Raum unter dem folgendermaßen errechneten Wert zu halten:
{schimmelfreiMaxHum(ReadingsVal("Raumthermometer","temperature",15))}

Problem: Kalte Wände / Kältebrücken.

Problematisch ist, wenn es im Raum kalte Oberflächen gibt - denn an diesen steigt ja wie oben beschrieben durch die Abkühlung der Luft die relative Luftfeuchtigkeit an. Je nach Bausubstanz und Außentemperatur kann eine Außenwand z.B. extrem kalt sein. In meinem Bad (Altbau, denkmalgeschützt, dicke Ziegelwände, ungedämmt) zeigt das Infrarotthermometer durchaus mal 15 Grad in den Fensterzargen - bei draußen gerade einmal 10 Grad. Sagen wir als Beispiel, wir haben:

- 22°C Raumtemperatur
- 55% rel. Luftfeuchtigkeit im Raum
- 15°C Wand-Oberflächentemperatur in der Fensterzarge (mit einem Infrarotthermometer gemessen)

Wir bemühen damit unserere Funktion von oben - {shiftRelHumidity(21,55,15)} - und erhalten 79% rel. Luftfeuchte an der 15 Grad warmen Wand. Uups. Die Funktion {schimmelfreiMaxHum(15)} sagt uns, dass es bei 15 Grad an der Wand aber schon bei 72% schimmelt. Was tun?

Ab welcher Temperatur schimmelt es? Der "Schimmelpoint".

Wir können die kritische Temperatur, ab der es schimmelt, ausrechnen. Wie oben beschrieben, wächst der Schimmel schon bevor das Wasser von der Wand läuft, so dass uns da die Taupunkttemperatur nicht weiterhilft. In der Literatur findet man deshalb auch den Td(80), das ist der "Taupunkt" mit 80% statt 100% relativer Luftfeuchte. Aber wie oben ausgerechnet, sind 80% bei den meisten Temperaturen schon zu viel.

Hier ist deshalb eine weitere Funktion für die Datei 99_myUtils.pm, die auch einfach eine Temperatur ausrechnet - und zwar eine, unter der es wirklich schimmelt, sozusagen also der "Schimmelpoint" unter Berücksichtigung des temperaturabhängigen Schimmelwachstums. Dazu werden die obige Funktionen genutzt (sind also auch in der 99_myUtils.pm nötig!):


sub schimmelfreiMinTemp($$$) {
# Liefert die minimale Temperatur, bei der es - ausgehend von der aktuellen Luftfeuchte im Raum - nicht schimmeln würde.
# Liegt die kälteste Stelle im Raum darüber, besteht keine Schimmelgefahr.
# Liegt die kälteste Stelle im Raum darunter, müsste diese auf die errechnete Temperatur erwärmt werden, so dass es nicht schimmelt.
# Parameter:
# $curTemp - Aktuelle Raumtemperatur in Grad C
# $curHum - Aktuelle rel. Luftfeuchte im Raum in %rH
# $tempLimit (optional) - max. Temperatur, die die Funktion zurückliefert (falls der Rückgabewert z.B. als Heiz-Solltemperatur dient)
  my ($curTemp,$curHum,$tempLimit) = @_;
 
  if (!$tempLimit) {$tempLimit = 100;}

  my $testT=0;
  my $schimmelFrei = 0;
  while ($testT < $tempLimit && !$schimmelFrei) {

     $schimmelFrei = (shiftRelHumidity($curTemp, $curHum, $testT) < schimmelfreiMaxHum($testT));
     
     $testT+=0.1;
  }
  return $testT;
}


Das wenden wir jetzt einmal auf unser Beispiel von oben - 22°C Raumtemperatur, 55% rel. Luftfeuchtigkeit, 15°C Grad Wandtemperatur - an:

{schimmelfreiMinTemp(22,55,100)}

Ergibt 17,7°C, das heißt unsere 15 Grad kalte Wand ist 2,7 Grad zu kalt und würde schimmeln. Mit echten Messwerten geht's natürlich auch wieder:

{schimmelfreiMinTemp(ReadingsVal("Raumthermometer","temperature",15),ReadingsVal("Raumhygrometer","humidity",100),100)}

Kalte Wände - Wandtemperatur ermitteln - Variante 1: Messen

Wenn wir den Raum per Entfeuchter trocknen wollen, müssen wir noch mehr tun, denn wir wissen zwar bislang über die Funktion schimmelfreiMinTemp, wie kalt die Wand sein darf - kennen aber die tatsächliche Wandtemperatur nicht.

Perfekt wäre nun natürlich, einen Oberflächentemperatursensor an der kältesten Stelle der Wand zu platzieren und den Wert direkt zu messen. Wer es ganz genau machen will und seinen Luftentfeuchter wirklich sparsam einsetzen will, der sollte das auch so tun - dann kann man aber dort idealerweise auch gleich kontinuierlich die Luftfeuchtigkeit messen und diese auf einen unkritischen Wert regeln - der Zielwert dieser Regelung wäre dann:

{schimmelfreiMaxHum(ReadingsVal("Wandthermometer","temperature",15))}

Das vergleicht man dann mit dem Messwert des Hygrometers an der Wand und schaltet den Entfeuchter an, wenn die gemessene Luftfeuchte darüber ist. Hat man nur ein Wandthermometer und ein Raumhygrometer mit Raumthermometer, kann man wieder die Funktion shiftRelHumidity verwenden, um die tatsächliche Luftfeuchtigkeit in Wandnähe zu errechnen:

{shiftRelHumidity(ReadingsVal("Raumfuehler","temperature",""),ReadingsVal("Raumfuehler","humidity",""),ReadingsVal("Wandthermometer","temperature",15))}

Im Keller oder an Außenwänden, die durch eine dicke Schrankwand nicht richtig beheizt werden können und so schimmelgefährdet sind, kommt man um einen Wandtemperaturfühler nicht herum. Ich experimentiere hierzu gerade mit Funk-Heizkostenverteilern. Diese sind a) gebraucht extrem billig - 2-3 Euro, b) haben sehr genaue Temperatursensoren, c) die Batterien halten ewig, d) sie haben eine sehr große Funkreichweite und e) messen wirklich die Oberflächentemperatur und nicht die Raumtemperatur, wie es Standard-Raumsensoren tun.

Kalte Wände - Wandtemperatur ermitteln - Variante 2: Ohne Sensor kontinuierlich schätzen

Es geht im Fall von "normalen" Außenwänden aber auch ganz gut ohne Wandtemperaturfühler. Was sich bei mir als ziemlich genau herausgestellt hat, ist die Wandtemperatur kontinuierlich zu schätzen - und zwar in Abhängigkeit von Innen- und Außentemperatur. Hierzu ist es nötig, eine kleine Messreihe mit einem Infrarotthermometer zu machen: Gemessen wird hiermit die Oberflächentemperatur der Wand an der kältesten Stelle, die sich im Raum finden lässt - also z.B. in der Fensterzarge. Zusätzlich benötigen wir die Innentemperatur des Raumes und die Außentemperatur, die FHEM zu dieser Zeit gemessen hat - die kann man ja nach der Messung im FileLog / DBlog nachschauen.

Aus diesen 3 Werten berechnen wir uns einen "Isolationsfaktor" K:

K = (Oberflächentemperatur - Außentemperatur) / (Innentemperatur - Außentemperatur)

Wichtig ist es, die Messung durchzuführen, wenn es draußen richtig schön kalt ist (schön spät Abends / nachts bei Minusgraden) und die Raumtemperatur längere Zeit konstant war - direkt nach dem Aufheizen des Bades bei 15 Grad Außentemperatur ergibt das ganze also eher keine genauen Werte. Die Außentemperatur sollte idealerweise auch konstant sein, aber das ist sie nunmal nicht, daher kann das ganze nicht perfekt funktionieren - aber für unsere Zwecke durchaus ausreichend. Die Messung solltet ihr aber auf jeden Fall ein paar mal wiederholen (6-7 mal zu verschiedenen Zeiten, am besten an mehreren Tagen),  ggf. Ausreißer wegwerfen und dann K mitteln. Sollte K bei euch nicht sonderlich konstant sein - was je nach Bausubstanz / Beheizung durchaus möglich ist - nehmt tendentiell eher einen kleineren Wert, geht also von schlechterer Dämmung aus, wenn ihr sicher sein wollt, dass es nicht schimmelt. Bei mir ergaben sich für meine Altbauwohnung Werte zwischen 0,67 und 0,70 - Mittelwert ist 0,68, den verwende ich seitdem.

Über den Wert können wir nun mit folgender Funktion für die 99_myUtils.pm künftig die Wandtemperatur jederzeit aus Innen- und Außentemperatur schätzen:


sub wallSurfaceTemp($$$)
# Estimates the temperature of the inner wall surface given the outside Temperature in degrees of C as $Tinside,
# the outdoor-temperature $Toutside in degrees of C and an insulation Factor $Kinsulation with K = 1 (theoretical perfect insulation, e.g. vacuum) and
# K = 0 (no insulation at all, means: less than a sheet of paper). You have to calculate K on your own by measuring inside-, outside-, and wall-temperature,
# preferably by averaging multiple measurements on cold days with constant heating of the room.
{
  my ($Tinside, $Toutside, $Kinsulation) = @_;
  my $Tsurface =  ($Tinside * $Kinsulation) + ($Toutside * (1 - $Kinsulation));
  return $Tsurface;
}


Wirklich genau ist die Methode wie gesagt nicht und unterliegt gewissen Schwankungen. Sie ist inspiriert durch diesen Artikel hier (und auf das für uns nötigste weiter vereinfacht): http://www.u-wert.net/u-wert-messen/ - dort sind auch die prinzipiellen Nachteile dieser Schätzung diskutiert worden. Ich habe meine Messreihe vor knapp einem Jahr durchgeführt und immer mal wieder das Ergebnis  mit der realen Wandtemperatur verglichen: Die Abweichung lag maximal bei 1,5 Grad, normalerweise stimmte sie aber auf +/- 0,5 Grad genau. Damit kann ich gut leben ;-) Möglicherweise funktioniert das bei euch nicht so gut - einfach testen.


Userreadings für unkritische Räume

Die neuen "Grenzwerte" können wir nun z.B. in die UserReadings unseres Wandthermostaten packen. Die Beispiele hier sind direkt zum Kopieren in das Feld für das UserReadings-Attribut:

Unterhalb welcher Temperatur irgendwo im Raum schimmelt es? Also, wie warm muss z.B. die Fensterzarge mindestens sein?

schimmelfreiMinTemp { sprintf("%.1f",schimmelfreiMinTemp(ReadingsVal("Raumthermometer","temperature",15),ReadingsVal("Raumhygrometer","humidity",100),100)) }


Wie hoch ist die max. zulässige rel. Luftfeuchte im Raum, ohne dass es schimmelt, wenn man davon ausgeht, dass alle Oberflächen mindestens etwa Raumtemperatur haben?

schimmelfreiMaxHumRoom { sprintf("%.1f",schimmelfreiMaxHum(ReadingsVal("Raumthermometer","temperature",15))) }


Würde Lüften jetzt gerade den Raum trockner machen?

lueftenMoeglich {(ReadingsVal("Raumhygromometer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenthermometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A") )+3))?"ja":"nein" }


Erwärmt/Kühlt man die Luft außen auf Raumtemperatur, wie wäre dann ihre rel. Luftfeuchte innen?

aussenHumidityEqInnen {sprintf("%.1f",shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenhygromometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A")))}


Userreadings speziell für kritische Räume mit geschätzter Wandtemperatur

Die nachfolgenden Beispiele gehen von problematischen Räumen aus, die eine Schätzung der Wandtemperatur erforderlich machen. Bitte aber den K-Faktor wie oben beschrieben immer anpassen! Ich habe darauf geachtet, dass die Readings nicht aufeinander aufbauen, dadurch sind die Definitionen leider recht lang:

Geschätzte Wandtemperatur:

wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("kuechenthermometer","temperature",15),ReadingsVal("aussenthermometer","temperature",0),0.68)) },


Geschätzte Luftfeuchtigkeit an der Wand:

wandHumidity { sprintf("%.1f", shiftRelHumidity( ReadingsVal("kuechenthermometer","temperature",17), ReadingsVal("kuechenthermometer","humidity",90), wallSurfaceTemp( ReadingsVal("kuechenthermometer","temperature",15), ReadingsVal("aussenthermometer","temperature",0), 0.68) ) ) }


Wie hoch ist die max. zulässige Luftfeuchte in Wandnähe, ohne dass es schimmelt?

schimmelfreiMaxHumWall { sprintf("%.1f",schimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("Raumthermometer","temperature",15),ReadingsVal("Aussenthermometer","temperature",0),0.68))) }


Das Whole-In-One-Reading: Kann die kalte Wand gerade schimmeln? (in Abhängigkeit von Innen/Außentemperatur, Isolationsfaktor und Luftfeuchte innen unter Berücksichtigung des Temperaturabhängigen Schimmelwachstums)?

schimmelGefahr {(shiftRelHumidity(ReadingsVal("Raumthermometer","temperature",17),ReadingsVal("Raumhygromometer","humidity",90), wallSurfaceTemp(ReadingsVal("Raumthermometer","temperature",15), ReadingsVal("Aussenthermometer","temperature",0),0.68))>schimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("Raumthermometer","temperature",15),ReadingsVal("Aussenthermometer","temperature",0),0.68))?"ja":"nein")}



Gegenmaßnahmen

Zu wissen, wann es schimmelt, ist das eine. Doch wenn man festgestellt hat, dass die Luftfeuchtigkeit zu hoch ist, muss diese runter. Alle Maßnahmen haben Vor- und Nachteile - ein grober Überblick:




Beispiel DOIF: Entfeuchtersteuerung in kritischen Räumen

Nun könnt ihr die ganzen Userreadings in Plots einfügen, euch z.B. Warnungen bei wandHumidity > schimmelFreiMaxHum schicken lassen oder das ganze auch per DOIF z.B. zur Entfeuchterregelung benutzen:


define di_bad.luftentfeuchter DOIF ([bad.thermometer:wandHumidity] > ([bad.thermometer:schimmelfreiMaxHum] + 3)) (set bad.luftentfeuchter_Sw on) DOELSEIF ([bad.thermometer:wandHumidity] < [bad.thermometer:schimmelfreiMaxHum]) (set bad.luftentfeuchter_Sw off)


Hier regele ich einen Luftentfeuchter an einem Homematic Zwischenstecker mit Leistungsmessung genau so, dass die Wand immer unter der kritischen Luftfeuchte bleibt (mit 3% Hysterese). Ihr müsst dann nur noch einen Luftentfeuchter finden, der diese Art des Ein-/Ausschaltens per "Steckerziehen" mitmacht und ein wenig mit der Hysterese spielen, so dass es für euren Raum passt. Ich verwende übrigens einen comfee MDF2-16DEN3 - ein sehr preiswerter Luftentfeuchter, der nicht wie viele andere die Eigenart hat, nach Stromwiederkehr einfach auszubleiben. Er genehmigt seinem Kompressor danach zwar eine kurze Zwangspause, läuft dann aber wieder an.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: TomWest am 01 Dezember 2014, 13:52:40
Hi,

vielen Dank für das ausführliche HowTo. Ich habe ähnliche Gegebenheiten, bin aber zur Zeit eher dabei, eine Kombination aus Aufheizung und Zwangsbelüftung bei passender äußerer Luftfeuchtigkeit zu realisieren. Warum sind passende Wärmetauscher so teuer ...

Bis dann,
Thomas
Titel: HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 02 Dezember 2014, 01:47:52
Hi Tom,

Zur Belüftungssteuerung kannst du das natürlich genauso verwenden.

- Einschalten des Lüfters wäre dann eine logische "Und" Verknüpfung aus Lüftungsbedarf und Lüftungsmöglichkeit: Wenn beides gegeben, dann soll der Lüfter angeschaltet werden.

- Den Lüftungsbedarf in Hinblick auf Schimmelgefahr ermittelt man in meinem/deinem Szenario so wie oben beschrieben deutlich genauer als per reiner Taupunktberechnung.

- Die Lüftungsmöglichkeit kannst du problemlos über den Taupunktvergleich innen/außen mit FHEM-Bordmitteln ermitteln, dazu brauchst du meine Formeln nicht. Es geht aber natürlich auch mit meiner shiftRelHumidity-Funktion. Ich nutze letztere, um mir eine Benachrichtigung zu schicken, wenn das Fenster wieder zu kann, da die Luftfeuchte nicht weiter Absinken wird:


attr bad.fenster userReadings  wandTemp { ... siehe Eingangsposting ... },
wandHumidity { ... siehe Eingangsposting ... }, lueftenMoeglich {(ReadingsVal("bad.thermometer","humidity","N/A") > (shiftRelHumidity(ReadingsVal("aussenthermometer","temperature","30"),ReadingsVal("aussenthermometer","humidity","100"), ReadingsVal("bad.thermometer","temperature","N/A") ) + 2))?"ja":"nein" }

define di_Bad DOIF ([bad.fenster] eq "offen" and [bad.thermometer:lueftenMoeglich] eq "nein") (set pushover msg 'Lüften fertig' 'Lüften bringt jetzt nichts mehr, Fenster zu!')


Ausgenutzt wird hierbei, dass zwischen Innen- und Außenluft der gleiche Effekt eintritt, wie beim abkühlen der Raumluft an den kalten Wandstellen: Die Luft von außen ändert die Temperatur wenn sie hereinkommt; ihre Wassermenge (das heißt, ihre absolute Luftfeuchte) bleibt aber konstant. Dadurch ändert die Außenluft im Raum ihre relative Luftfeuchte (wenn es im Raum wärmer ist, sinkt sie ab). Und genau das rechnet die Funktion shiftRelHumidity aus.

Ist wie gesagt äquivalent zur Taupunktmethode und sollte auch für einen Ventilator prima funktionieren als nötige Bedingung zum Einschalten.

- Das Bad zu heizen statt zu Lüften wäre dann nötig, wenn Lüftungsbedarf besteht, aber NICHT die so ermittelte Lüftungsmöglichkeit besteht.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 21 Dezember 2014, 22:31:38
Kleines Update: Die Berechnung der Funktion shiftRelHumidity() lag bei großen Temperaturdifferenzen ein paar Prozent daneben (der Effekt der Luftfeuchteänderung war durchgängig schwächer als ich es in Wirklichkeit beobachtet habe). Schuld waren die in einer meiner verwendeten Quellen aufgeführten Koeffizienten der Magnus-Formel; ich habe die im Eingangsposting jetzt in jene aus der Wikipedia korrigiert, nun passt es.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: nesges am 25 Januar 2015, 19:09:42
Sehr interessant! Ich war mal so frei: http://www.fhemwiki.de/wiki/Energiesparende_Schimmelbek%C3%A4mpfung_/_Luftentfeuchtung_in_kritischen_R%C3%A4umen
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: amunra am 27 Januar 2015, 22:42:10
Hallo peterk_de,
DANKE, wirklich sehr sehr interessant - ich lasse das mal bei mir, parallel in einer leicht abgewandelten (inhaltlich gleich) Version, laufen....
Anbei ein paar infos....
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 27 Januar 2015, 23:13:50
Cool, freut mich dass das wer gebrauchen konnte :-) Bei mir läuft das Entfeuchten nach wie vor zuverlässig.

Nur das mit dem Warnen, wann genug gelüftet ist (bzw. sich eine Entlüftersteuerung ausschalten sollte) - da habe ich Probleme bei kalten Außentemperaturen. Liegt aber offensichtlich nicht an meinen Formeln: Ich habe festgestellt, dass mein verwendetes Homematic-Raumthermometer der "Flaschenhals" ist. Wenn es draußen sehr kalt und trocken ist und die Luftfeuchte im Raum dann beim Lüften entsprechend stark absinkt (z.B. auf berechnete und über ein anderes Hygrometer auch tatsächlich gemessene 30% rH), kommt das Teil einfach nicht hinterher und fällt nur so auf 40% ab und auch das nur seeeeeehr gemächlich. Dadurch zündet natürlich das Benachrichtigungs-DOIF nicht und denkt, "es ist im Raum noch zu feucht, bitte weiterlüften".

Ich bin also grad auf der Suche nach einem bissel schnelleren/über breiterem Messbereich genauerem FHEM-kompatiblen Hygrometer... Irgendwas, was mit dem Klassiker-Schimmel-Hygrometer von TFA Dostmann mithalten kann ...

@amunra passt das denn mit den Wandtemperaturen? Haste mal nachgemessen? :-)
Titel: HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: amunra am 28 Januar 2015, 00:14:28
Hallo peterk_de,

sorry für die Kurzfassung.
Laut der aktuellen Werte müsste ich hier nur noch lüften/heizen - bin aber im Moment noch recht entspannt, da ich mich noch in der Justier-phase befinde (warte auf konstante Bedingungen).
Bei mir im Haus (Bj. 1957 keine Dämmung) sind die errechneten Wandtemepratur-Werte besser als die gemessenen (mit (http://www.amazon.de/gp/product/B001FC0QYM?psc=1&redirect=true&ref_=oh_aui_detailpage_o02_s01) zum Teil -2 °C (und ungünstiger)).
Ich denke, dass diese aber noch nicht zu 100% valide sind - Gründe hierfür sind die aktuell schwankenden Aussentemperaturen (teilweise von -2 bis +7°C).
Im Schnitt komme ich "grob" auf deine ISO Werte von 0,65. (Ach ja, Fenster (Bj. ca.? 1990 Doppelverglast) sind nicht wirklich das Problem, zumindest nicht laut Tempmessung - Wände im Aussenbereich sind da problematischer...)
Ferner nutze ich mehrere HM-CC-TC's von Homematic, die mich nachhinein ein wenig geägert haben. Die (ja!, mehrere) scheinen ca. 10-12% mehr rel. Luftfeuchtigkeit anzuzeigen (messen)  als tatsächlich IST - ein offset habe ich bisher nicht gefunden (dem wirke ich im Moment rechnerich entgegen). Verifiziert habe ich das ganze mit anderen Sensoren, zuverlässig und recht schnell erwies sich der neu erworbene Raumthermostat HM-TC-IT-WM-W-EU.
Den Sensor (Raumtehrmostat) habe ich testweise auch, über mehrere Stunden (Tage) in die nähe der Wand palziert mit dem Ergebniss, Abweichung: Temp ca. +!3-4°C und bis zu !-30% Luftfeuchtigkeit.
Interessant sind im Memoment die enormen Unterschieden zwischen Wohnraum (ca. 21°C ca. 45-50% Luftfeuchte) und Kellerräume (die eher Problematischen Räume mit ca. 14-16°C 70-90% Luftfeuchte). Im Keller darf ich offensichtlich im Moment nicht lüften....
VG
P.S: Ich melde mich wieder mit neuen Erkenntnissen....
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: daschauher am 03 Juni 2015, 16:04:04
Hallo peterk_de,

super Arbeit die Du da geleistet hast. Hut ab und vielen Dank!!
Ich habe mir deinen Post schon lange für später vorgemerkt.
Heute bin ich nun endlich soweit dazu gekommen. Gezwungener massen quasi.
Da ich im Keller gerade nen ziemlich hohen Feuchtigkeitswert habe und es draussen noch feuchter ist, wollte ich es genau wissen wie die verhältnisse sind. Und bisher habe ich es über den Taupunkt gemacht, was aber nicht immer so genau past...
Den Temperaturkoeffizienten habe ich schonmal im Februar ermittelt.
Nun ist es aber warm und laut den Formeln ist die Kellerwand wärmer als der Raum. Das mag bei den Aussenmauern so sein, aber sicher nicht bei den Mauern im Erdreich.
Meine frage ist nun wie ich das am besten mache? Einen neuen Temperaturkoeffizienten ermitteln, für den Sommer und im Winter auf einen anderen umschalten oder ganz anders? Wie würdest du das machen?

Grüsse
Markus
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 13 Juni 2015, 12:46:34
Hi daschauher,

ich glaube, du hast das Problem schon richtig erkannt, das ganze kann natürlich nur bei Außenmauern funktionieren, wenn du als Außentemperatur die der Umgebungsluft draußen nimmst. Das Erdreich kann ja signifikant andere Temperaturen aufweisen als die Luft außen - vor allem wenn es wie gerade sehr schnell warm geworden ist und der Keller sehr tief liegt.

Da wird dir auch ein anderer Koeffizient leider nicht helfen - die Wärmeleitung in der Kellerwand findet ja schließlich von Innenraum zu Erdreich statt. Du müsstest also irgendwo im Garten einen Temperaturfühler vergraben, und zwar so tief, dass er in Höhe des Kellerbodens liegt. Das wäre dann ne gute Näherung der Außentemperatur für die Formel. Aber da ist es in deinem Fall wirklich einfacher, die Wandtemperatur innen selbst zu messen und die Formel gar nicht zu verwenden. Dann hast du es ganz genau.

Mit der Formel kann es aber nicht klappen - die vernachlässigt sämtliche "Speicherung" von Wärme, sowohl in der Wand selbst als auch in deren Umgebung. Das ist bei Luft drumherum kein Problem, weil die eine sehr geringe Wärmespeicherfähigkeit hat, so dass das vernachlässigter ist - Erdreich hat aber leider eine ziemlich große...
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: daschauher am 13 Juni 2015, 17:50:41
Hallo peterk_de,

vielen dank für die umfangreiche Antwort. Auch wenn es nicht viel weiter hilft, aber zumindest weiß ich jetzt das ich in diese Richtung erst gar keine versuche Unternehmen brauche. Danke!

Vg
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Hauswart am 16 Juni 2015, 09:37:39
Vielleicht für den ein oder anderen interessant: http://www.elv.de/Perfektes-Klima-mit-dem-Arduino/x.aspx/cid_726/detail_51160
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: SonnenSimon am 06 Dezember 2015, 22:27:30
Hallo zusammen,

wundervolle Arbeit & Dokumentation hier! Danke!
(eine Alternative wäre natürlich den Funksensor direkt an die kälteste Stelle zu packen - aber dann weiß man halt die Raumtemperatur nicht mehr..)

und noch perfekter wirds, wenn man die Temperaturabhängigkeit des Schimmelwachstums mit berücksichtigt:
http://www.ibp.fraunhofer.de/content/dam/ibp/de/documents/Publikationen/Fachzeitschriften/gefaehrdungsklassenfuerschimmelpilzetcm45-34971.pdf
(Bild 1, relativ am Ende des pdfs - oder gleich Bild 2)
-> zB: Grenze des Schimmelpilzwachstums: Tapete bei 20°C: 76%rF ; Tapete bei 5°C: 85%rF

Wer hat Bock das einzubauen? Bei mir könnts ne Weile dauern..

Beste Grüße,
Simon
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 07 Dezember 2015, 19:11:47
@SonnenSimon: Ist ja Hammergenial!!!

Dann sind die 70%rH, die ich bei mir angesetzt habe, ja definitiv auf der sicheren Seite, aber unter Umständen auch viel zu vorsichtig gewählt (insbesondere wenn die Wandtemperatur niedrig ist) ...

Ich will noch nix versprechen, aber ich finde das sehr spannend und schau es mir mal genauer an ... bei mir schimmelt seit ich das habe zwar nix mehr, aber ich finde es sehr verlockend, die Stromrechnung für den Entfeuchter so noch weiter zu drücken ^^
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 07 Dezember 2015, 20:47:42
So, hier ist es - der kniffligste Teil war es, die Formeln herauszufinden, die in dem Paper ja leider nicht angegeben waren. Ich hab die aber recht genau aus den Kurven der Diagramme rekonstruieren können. Das hier kommt in die myUtils.pm:


sub schimmelfreiMaxHum($)
# Maximale Relative Luftfeuchte (in 0...100%) in Wandnähe, so dass kein Schimmel-Myzelwachstum
# Auftritt. Annahme: optimales Substrat und Myzelwachstum und Sporenwachstum für alle im
# Bau auftretenden Pilze unterbunden, d.h. keine biol. Aktivität.
# Parameter: Temp. in Grad Celsius
#
{
  my ($Temp) = @_;
  if ($Temp <= 0) {return 100;}
  my $rHmax = 70+20.1*(0.87**$Temp);
  return $rHmax;
}



Und das sollte dann recht einfach oben anzuknüppern sein: Statt in dem DOIF direkt eine feste Rel. Wand-Luftfeuchtigkeit als Grenzwert abzufragen, einfach schimmelfreiMaxHum($Wandtemp) verwenden. Kann ich bei Bedarf auch oben mal noch erweitern. Done.

P.S. Wen nur die laut dem Paper gesundheitsgefährlichen Schimmelarten (Annahme: optimales Substrat und kein Myzelwachstum) interessieren, der nimmt statt der genannten einfach die folgende Formel:


my $rHmax = 77+23*(0.90**$Temp);
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Berndd am 09 Februar 2016, 21:54:09
Hallo peterk_de,
habe gerade angefangen mich damit zu beschäftigen, finde das Wiki sehr schlüssig und nachvollziehbar ... soweit ich bisher dazu in der Lage war.

Eine Frage: Ich habe vor (im Keller kommt es ja nicht überall auf Schönheit an) einen "Standard" Temperatur/Feuchte-Sensor (LaCrosse Typ) an der kühlsten Stelle an die Wand zu dübeln. Deshalb die Frage: Wie schätzt Du das ein, könnte es Deine k-Wert Ermittlung ersetzen? Oder sollte man evtl den Sensor raus "operieren" und dichter an die Wand setzen?

Danke,
Bernd

P.S. Habe ja noch den Traum, die feuchte Kellerluft ins Erdgeschoss zu blasen ... im Wohnzimmer läuft ein Raumluftbefeuchter ...

Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 09 Februar 2016, 22:45:48
Hi Bernd,

kommt auf den Sensor an - bevor du ihn aufmachst, würde ich mal mit nem Infrarotthermometer gucken, ob er die Wandtemperatur genügend genau mitbekommt. Normalerweise sind die Dinger aber in Richtung Wand gut isoliert (sie sollen ja eben die Raumluft messen). Den nackten Sensor direkt aufs Mauerwerk zu packen ist daher sicher das Optimum und definitiv besser als das Schätzen per k-Wert (was bei Kellerwänden sowieso nicht klappt).

Die Kalte Luft aus dem Keller zu holen ... bringt nix. Vor allem im Sommer nicht. Vorausgesetzt, du hast da keine besonderen Feuchtigkeitsquellen drin (Wäscheständer oder so), ist die Luft da unten absolut genauso feucht, wie die bei dir im Wohnzimmer (kommt ja letzten endes beide Luft von außen)  Bläst du die ins Warme Wohnzimmer, ist sie danach relativ genauso trocken wie die bisherige Luft im Wohnzimmer. Das ist ja grad der Witz mit der relativen Luftfeuchte ... Und außerdem, für jeden Kubikmeter, den du aus dem Keller herausbeförderst, kommt von irgendwoher ein anderer Kubikmeter her, der abkühlt und sich dann in der rel. Luftfeuchte bis zur auskondensation steigert ...also leider nur sinnvoll wenn das z.B. dein Wäschetrockenraum ist.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Berndd am 09 Februar 2016, 23:28:53
Zitat von: peterk_de am 09 Februar 2016, 22:45:48
...
Den nackten Sensor direkt aufs Mauerwerk zu packen ist daher sicher das Optimum und definitiv besser als das Schätzen per k-Wert (was bei Kellerwänden sowieso nicht klappt).
Ich werde mal auf der Bastelseite nachfragen ...

Zitat
...
Die Kalte Luft aus dem Keller zu holen ... bringt nix.
...
Danke, ich habe überhaupt kein Gefühl dafür. Lasse mir nun bei allen Sensoren auch die absolute Luftfeuchtigkeit anzeigen (Modul dewpoint), dann merkt man wo tatsächlich mehr Wasser ist.
Hatte mich gerade gefragt, wie ich das mit der Wandtemperatur verknüpfe und fand dann Dein Wiki... allerdings hatte ich mit perl noch nie was zu tun ...

Hätte übrigens nicht gedacht, dass jetzt, bei Regen die abs. Luftfeuchtigkeit im Keller grösser ist als draussen. Dieses Diagramm fand ich nicht schlecht, um sich die Verhältnisse vorzustellen, das hilft vielleicht manchem, wie mir, die Zusammenhänge zu verstehen:
http://www.ib-rauch.de/bautens/formel/feuchte-luft.gif (http://www.ib-rauch.de/bautens/formel/feuchte-luft.gif)

Falls ich erwas zu Wandtemperatur-Messung finde melde ich mich hier.

Gute Nacht,
Bernd


Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 10 Februar 2016, 12:57:43
Zitat von: Berndd am 09 Februar 2016, 23:28:53
Hätte übrigens nicht gedacht, dass jetzt, bei Regen die abs. Luftfeuchtigkeit im Keller grösser ist als draussen.

In dem Fall bringt natürlich ein Ventilator, der es dir ins zu trockene Wohnzimmer bläst, etwas, also wenn du die absolute Feuchte vergleichst. Ich kenne nun dein Keller nicht, aber je nach Wandbeschaffenheit kann die Kellerwand ein super Feuchtigkeitsreservoir sein. Oder gar aus dem Erdreich Wasser nach innen diffundieren lassen, was dann schon in die Kategorie "Baumangel" fallen würde.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Berndd am 14 Februar 2016, 20:24:40
Technoline auseinander gebaut:
http://forum.fhem.de/index.php/topic,49067.0.html
Gruss,
Bernd
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 17 Januar 2017, 23:01:50
Vielen Dank für die tolle Vorarbeit!  :)

Ich habe gerade sämtliche userReadings hinzugefügt und bekomme in sämtlichen Räumen Schimmelwarnungen. So sieht mein userReading aus:

wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("UM.Klimasensor","temperature",0),0.68)) },

wandHumidity { sprintf("%.1f", shiftRelHumidity( ReadingsVal("BZ.Klimasensor","temperature",17), ReadingsVal("BZ.Klimasensor","humidity",90),

wallSurfaceTemp( ReadingsVal("BZ.Klimasensor","temperature",15), ReadingsVal("UM.Klimasensor","temperature",0), 0.68) ) ) }

lueftenMoeglich {(ReadingsVal("BZ.Klimasensor","humidity","N/A") >(shiftRelHumidity(ReadingsVal("UM.Klimasensor","temperature","30"),ReadingsVal("UM.Klimasensor","humidity","100"), ReadingsVal("BZ.Klimasensor","temperature","N/A") )+10))?"ja":"nein" }

aussenHumidityEqInnen {sprintf("%.1f",shiftRelHumidity(ReadingsVal("UM.Klimasensor","temperature","30"),ReadingsVal("UM.Klimasensor","humidity","100"), ReadingsVal("BZ.Klimasensor","temperature","N/A")))}

schimmelfreiMaxHum { sprintf("%.1f",schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("UM.Klimasensor","temperature",0),0.68))) }

schimmelGefahr {(shiftRelHumidity(ReadingsVal("BZ.Klimasensor","temperature",17),ReadingsVal("BZ.Klimasensor","humidity",90), wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15), ReadingsVal("UM.Klimasensor","temperature",0),0.68))>schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("UM.Klimasensor","temperature",0),0.68))?"ja":"nein")}



Den Koeffizienten habe ich noch nicht geändert, da ich diesen mangels Thermometer noch nicht messen konnte. Im Anhang findet sich ein Foto mit den Werten, die bei mir errechnet werden. Sind die Werte plausibel?
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 18 Januar 2017, 14:21:22
Die sehen sehr plausibel aus. Und danach, dass es draußen sehr kalt ist ;) Allerdings hast du jetzt dann wohl mit meinem Koeffizienten gearbeitet, also einem, der dem meiner Kältebrücken im Bad entspricht. Ich hoffe für dich, dass du bessere Bausubstanz hast ^^ .

Aber ja, bei mir läuft bei den aktuellen Minusgraden und 55% Luftfeuchte im Bad der Entfeuchter an, und das leider zu recht :(
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 18 Januar 2017, 14:32:11
Ohjaaa es ist kalt für Bonner Verhältnisse, -5 Grad.  :D

Vollkommen richtig, ich habe deinen Koeffizienten genommen, aber zum Wochenende werde ich meinen eigenen messen/berechnen. Es graut mir ehrlich gesagt vor dem Ergebnis...

Könntest du dir noch mein DOIF angucken?


define BZ.Lueften.Automatik DOIF
([BZ.Klimasensor:schimmelGefahr] eq "ja" and [BZ.Klimasensor:lueftenMoeglich] eq "ja" and [BZ.Fenster:state] eq "closed") (set BZ.Lueften Lüften zwingend notwendig) (set Pushover msg 'Lüften im Bad notwendig!')
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "ja" and [BZ.Klimasensor:lueftenMoeglich] eq "ja" and [BZ.Fenster:state] eq "open") (set BZ.Lueften wird gelüftet)
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "nein" and [BZ.Klimasensor:lueftenMoeglich] eq "nein" and [BZ.Fenster:state] eq "closed") (set BZ.Lueften Lüften sollte vermieden werden)
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "nein" and [BZ.Klimasensor:lueftenMoeglich] eq "nein" and [BZ.Fenster:state] eq "open") (set BZ.Lueften Fenster sollte geschlossen werden) (set Pushover msg 'Fenster im Bad schließen!')
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "ja" and [BZ.Klimasensor:lueftenMoeglich] eq "nein" and [BZ.Fenster:state] eq "closed") (set BZ.Lueften Lüften nicht möglich heizen?)
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "ja" and [BZ.Klimasensor:lueftenMoeglich] eq "nein" and [BZ.Fenster:state] eq "open") (set BZ.Lueften Fenster schließen Lüften bringt nichts mehr!) (set Pushover msg 'Fenster im Bad schließen! Lüften bringt nichts!')
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "nein" and [BZ.Klimasensor:lueftenMoeglich] eq "ja" and [BZ.Fenster:state] eq "closed") (set BZ.Lueften Lüften möglich aber nicht nötig!)
DOELSEIF ([BZ.Klimasensor:schimmelGefahr] eq "nein" and [BZ.Klimasensor:lueftenMoeglich] eq "ja" and [BZ.Fenster:state] eq "open") (set BZ.Lueften wird gelüftet ist aber nicht nötig!)


Es soll mich entsprechend der Gegebenheiten, darüber informieren, was zu tun ist. Was macht man eigentlich, wenn Schimmelgefahr besteht und man nicht lüften sollte, weil "lueftenMoeglich" nein ausgibt?

Könnte man noch einen Auskühlschutz einbauen? Gerade bei den aktuellen Temperaturen, will man ja nur solange lüften, wie es tatsächlich notwendig ist, ohne dass die Temperatur zu weit absinkt.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 18 Januar 2017, 15:19:52
Zitat von: Spezialtrick am 18 Januar 2017, 14:32:11
Ohjaaa es ist kalt für Bonner Verhältnisse, -5 Grad.  :D

Vollkommen richtig, ich habe deinen Koeffizienten genommen, aber zum Wochenende werde ich meinen eigenen messen/berechnen. Es graut mir ehrlich gesagt vor dem Ergebnis...

Könntest du dir noch mein DOIF angucken?


Das sieht soweit sehr vernünftig aus. Insbesondere die Fallunterscheidung mit allen Kombinationen aus Schimmelgefahr und "Lüften möglich" macht sehr viel Sinn und mache ich im Prinzip ganz ähnlich. Ich habe allerdings noch andere Variablen mit reingenommen (Entfeuchter, Präsenz, Luftqualität/VOC) - das ist eine übelst lange myUtils.pm-Funktion geworden, die ich hier lieber keinem zumuten will ;)

Zitat
Was macht man eigentlich, wenn Schimmelgefahr besteht und man nicht lüften sollte, weil "lueftenMoeglich" nein ausgibt?

Das ist genau der Punkt, wo man entweder Zwangsheizen oder per Luftentfeuchter entfeuchten sollte. Kommt vor, ist aber recht selten. Bei uns läuft der Entfeuchter eigentlich nur, weil wir zu faul sind, im Bad nach dem Duschen alle 1-2 Stunden das Fenster aufzureißen und wieder zu schließen. Denn du musst ja nicht denken, dass es mit  10 min Lüften nach dem Duschen getan ist. Da sind die Luftwerte zwar erstmal wieder super, aber die Handtücher und die Dusche noch nicht trocken, so dass du nach spätestens ner Stunde wieder die Schimmelwarnung bekommen wirst ;(

Zitat
Könnte man noch einen Auskühlschutz einbauen? Gerade bei den aktuellen Temperaturen, will man ja nur solange lüften, wie es tatsächlich notwendig ist, ohne dass die Temperatur zu weit absinkt.

Ja, aber kommt recht selten vor, dass du den brauchst. Grund ist derselbe wie oben: Je Kälter, desto trockener die Außenluft. Das würde also max. an nebligen Herbsttagen "greifen", im Winter kommt deine Meldung "Fenster schließen" ziemlich sicher vorher schon. Aber schaden kann es natürlich nicht, grad am Anfang in der Testphase.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 18 Januar 2017, 15:27:16
Ich poste es doch mal. Es läuft seit über einem Jahr auch stabil - meine generische Funktion für die myUtils.pm , die diverse Readings zum Thema Lüften für alle Räume mit Homematic-Thermostaten generiert. Es wird auch automatisch berücksichtigt, ob der Raum nen CO2- und/oder VOC-Sensor hat und ob "Sommermodus" (=Wohnung möglichst kühlen) oder "Heizmodus" (=Normalbetrieb) herrscht, was ich 2x im jahr über einen Dummy einstelle.

Vielleicht kannst du da ja ggf. interessante Regeln draus ableiten. Ist eigentlich selbsterklärend benannt.



sub calcLueftungsStates($$) {

   my ($NAME,$EVENT) = @_;

   if (!($NAME =~ /.*floorplan.*/)) {
      ##### Daten sammeln
     
      my $room;
     
      my $badOben = ($NAME =~ /.*bad.oben.*/);
      my $badUnten = ($NAME =~ /.*bad.unten.*/);
      my $schlafzimmer = ($NAME =~ /.*schlafzimmer.*/);
      my $wohnzimmer = ($NAME =~ /.*(wohnzimmer|stube).*/);
      my $kueche = ($NAME =~ /.*(kueche).*/);
      my $flur = ($NAME =~ /.*(flur|abstell).*/);
      my $kinderzimmer = ($NAME =~ /.*(kinderzimmer).*/);

      if ($badOben) {$room = 'bad.oben';}
      if ($badUnten) {$room = 'bad.unten';}
      if ($schlafzimmer) {$room = 'schlafzimmer';}
      if ($wohnzimmer) {$room = 'stube';}
      if ($kueche) {$room = 'kueche';}
      if ($flur) {$room = 'flur';}
      if ($kinderzimmer) {$room = 'kinderzimmer';}

      my $thermostat = "$room.wandthermostat_Weather";
     
      my $innenTemp=ReadingsVal($thermostat,"temperature",15);
      my $innenHum =ReadingsVal($thermostat,"humidity",90);
     
      my $aussenTemp=ReadingsVal("wohnung.aussenthermometer","temperature",0);
      my $aussenHum =ReadingsVal("wohnung.aussenthermometer","humidity","100");
     
      my $heizModus = ReadingsVal("wohnung.heizmodus","state","aus");
     
      my $fenster1 = ReadingsVal("$room.fenster","state","none");
      my $fenster2 = ReadingsVal("$room.fenster2","state","none");
     
      my $co2 = ReadingsVal("$room.co2","co2",0);
      my $voc = ReadingsVal("$room.raumluft","voc",0);
     
      ##### Neu berechnete Werte
     
      my $etwasOffen = (($fenster1 eq "open") || ($fenster2 eq "open"));
     
      my $wandTemp = wallSurfaceTemp($innenTemp,$aussenTemp,0.68);     
      my $wandHumidity = shiftRelHumidity($innenTemp, $innenHum, $wandTemp);
      my $aussenHumidityEqInnen = shiftRelHumidity($aussenTemp, $aussenHum, $innenTemp);
      my $schimmelfreiMaxHum = schimmelfreiMaxHum($wandTemp);
     
      my $schimmelGefahr = ($wandHumidity > $schimmelfreiMaxHum);
      my $luftZuTrocken = (!$schimmelGefahr && ($innenHum < 40));
      my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen);
     
      my $entfeuchterAn = ($schimmelGefahr && ($innenHum > 51)) && !$etwasOffen;
      my $entfeuchterAus = (($wandHumidity < ($schimmelfreiMaxHum - 3)) || ($innenHum < 50)) || $etwasOffen;     
     
      my $luftfeuchteOeffnenEmpfohlen    = ($schimmelGefahr &&  $lueftenSenktLuftfeuchte) || ($luftZuTrocken && !$lueftenSenktLuftfeuchte);
      my $luftfeuchteSchliessenEmpfohlen = ($schimmelGefahr && !$lueftenSenktLuftfeuchte) || ($luftZuTrocken && $lueftenSenktLuftfeuchte);

      my $kuehlenUeberTemp = 23;
      if ($badOben) {
        $kuehlenUeberTemp = 25;
      } elsif ($badUnten) {
        $kuehlenUeberTemp = 25;
      } elsif ($schlafzimmer) {
        $kuehlenUeberTemp = 22.5;
      } elsif ($wohnzimmer) {
        $kuehlenUeberTemp = 23;
      } elsif ($kueche) {
        $kuehlenUeberTemp = 24;
      } elsif ($kinderzimmer) {
        $kuehlenUeberTemp = 23;
      }
     
      my $kuehlenAufTemp = 21;
      if ($badOben) {
        $kuehlenAufTemp = 22;
      } elsif ($badUnten) {
        $kuehlenAufTemp = 20;
      } elsif ($schlafzimmer) {
        $kuehlenAufTemp = 21.5;
      } elsif ($wohnzimmer) {
        $kuehlenAufTemp = 21.5;
      } elsif ($kueche) {
        $kuehlenAufTemp = 20;
      } elsif ($kinderzimmer) {
        $kuehlenAufTemp = 21;
      }

     
      my $tempOeffnenEmpfohlen =  (   (($heizModus eq "Kühlen") && ($innenTemp > $aussenTemp) && ($innenTemp > $kuehlenUeberTemp))
                                   || (($heizModus eq "Heizen") && ($innenTemp < $aussenTemp))
                                  ) ;
     
      my $tempSchliessenEmpfohlen =  (   (($heizModus eq "Kühlen") && (
      (($innenTemp < $aussenTemp) && ($innenTemp > $kuehlenUeberTemp))
        || (($innenTemp > $aussenTemp) && ($innenTemp < $kuehlenAufTemp))
        )
      )
                                      || (($heizModus eq "Heizen") && ($innenTemp > $aussenTemp))
                                     );
                               
      my $luftgueteSensorVorhanden =  (($co2 ne '0') || ($voc ne '0'));
     
      my $luftgueteOeffnenEmpfohlen =  ((($co2 > 1500) || ($voc > 2000)) && $luftgueteSensorVorhanden);
      my $luftgueteSchliessenEmpfohlen = (($co2 < 600) && ($voc < 700) && $luftgueteSensorVorhanden);
     

      my $schliessenEmpfohlen;     
     
      if ($luftgueteSchliessenEmpfohlen || !$luftgueteSensorVorhanden) {
       
       
        if ($luftfeuchteSchliessenEmpfohlen && $tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = true;
        } elsif (!$luftfeuchteSchliessenEmpfohlen && !$tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = false;
        } else {
          if (!$luftfeuchteOeffnenEmpfohlen && !$tempOeffnenEmpfohlen) {
            $schliessenEmpfohlen = true; 
          } else {
            if (     ($luftfeuchteSchliessenEmpfohlen && ($heizModus eq "Heizen"))
                  || ($tempSchliessenEmpfohlen && ($heizModus eq "Kühlen"))
            ) {
              $schliessenEmpfohlen = true; 
            } else {
              $schliessenEmpfohlen = false;
            }
          }
       
        }
       
      } else {
        $schliessenEmpfohlen = false;
      }
     
     
      my $oeffnenEmpfohlen = (($luftfeuchteOeffnenEmpfohlen || $luftgueteOeffnenEmpfohlen || $tempOeffnenEmpfohlen)  && !$schliessenEmpfohlen) ;




      my $fenster1richtig = (($fenster1 eq "closed") && $schliessenEmpfohlen) || ($etwasOffen && $oeffnenEmpfohlen) || (!$oeffnenEmpfohlen && !$schliessenEmpfohlen);
      my $fenster2richtig = (($fenster2 eq "closed") && $schliessenEmpfohlen) || ($etwasOffen && $oeffnenEmpfohlen) || (!$oeffnenEmpfohlen && !$schliessenEmpfohlen);
     
      ##### Alle sinnvollen Werte als Readings setzen
     
      fhem("setreading $thermostat wandTemp ".sprintf("%.1f", $wandTemp));
      fhem("setreading $thermostat wandHumidity ".sprintf("%.0f", $wandHumidity));
      fhem("setreading $thermostat aussenHumidityEqInnen ".sprintf("%.0f", $aussenHumidityEqInnen));
      fhem("setreading $thermostat schimmelfreiMaxHum ".sprintf("%.0f", $schimmelfreiMaxHum));
     
      fhem("setreading $thermostat schimmelGefahr ".($schimmelGefahr?"ja":"nein"));   

      fhem("setreading $thermostat oeffnenEmpfohlen ".($oeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat schliessenEmpfohlen ".($schliessenEmpfohlen?"ja":"nein"));   

      fhem("setreading $thermostat luftfeuchteOeffnenEmpfohlen ".($luftfeuchteOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat luftfeuchteSchliessenEmpfohlen ".($luftfeuchteSchliessenEmpfohlen?"ja":"nein"));   

      fhem("setreading $thermostat luftgueteOeffnenEmpfohlen ".($luftgueteOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat luftgueteSchliessenEmpfohlen ".($luftgueteSchliessenEmpfohlen?"ja":"nein")); 

      fhem("setreading $thermostat tempOeffnenEmpfohlen ".($tempOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat tempSchliessenEmpfohlen ".($tempSchliessenEmpfohlen?"ja":"nein")); 
     
      fhem("setreading $thermostat fenster1richtig ".($fenster1richtig?"ja":"nein"));     
      if ($fenster2 ne "none") {
        fhem("setreading $thermostat fenster2richtig ".($fenster2richtig?"ja":"nein"));
      }
     
      if ($entfeuchterAn) {
        fhem("setreading $thermostat entfeuchter an");
      } elsif ($entfeuchterAus) {
        fhem("setreading $thermostat entfeuchter aus");
      }
  }
}


Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 18 Januar 2017, 15:50:51
Zitat von: peterk_de am 18 Januar 2017, 15:19:52
Ja, aber kommt recht selten vor, dass du den brauchst. Grund ist derselbe wie oben: Je Kälter, desto trockener die Außenluft. Das würde also max. an nebligen Herbsttagen "greifen", im Winter kommt deine Meldung "Fenster schließen" ziemlich sicher vorher schon. Aber schaden kann es natürlich nicht, grad am Anfang in der Testphase.

Ich glaube wir meinen etwas anderes, denn aktuell würde ich den Auskühlschutz gut gebrauchen können. ^^

Ich teste das DOIF aktuell im Badezimmer. Gewisse Zeit nach der Fensteröffnung wird keine Schimmelgefahr mehr gemeldet. Da die Außenluft jedoch eiskalt und trocken ist, lohnt sich das Lüften trotzdem weiterhin. Allerdings fällt die Raumtemperatur immer weiter, weil "lueftenMoeglich" auf "Ja" steht. Würde es hier nicht Sinn machen eine Mindesttemperatur als Auskühlschutz zu definieren? "lueftenMoeglich" greift doch erst, wenn die Außenluft die Raumluft feuchter machen würde?

Hier ist etwas ähnliches beschrieben:

https://forum.fhem.de/index.php?topic=60114.0 (https://forum.fhem.de/index.php?topic=60114.0)
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 18 Januar 2017, 19:48:35
Ach so meinst du das! OK das erledigen meine Regeln (siehe Code im vorigen Post) implizit automatisch mit. Im Heizbetrieb kannst du die im Prinzip runterbrechen auf "wenn (keine Schimmelgefahr ODER Lüften nicht möglich) UND Fenster offen dann Meldung Fenster bitte schließen". Dann brauchst du eigentlich nicht zusätzlich nach der Temperatur schauen.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: amunra am 19 Januar 2017, 21:41:50
Ich melde mich auch mal nach fast zwei Jahren zurück und möchte meinen Dank aussprechend, weil wir die problematischen Räume seit zwei Jahren, mit der hier vorgestellten Methode, gut im Griff haben.
Danke insbesondere an peterk_de für's Teilen....
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: herrmannj am 09 März 2017, 12:51:55
Auch von meiner Seite ganz herzlichen Dank an peterk_de für das Ausarbeiten der math und das Teilen hier !

Hintergrund: Bausubstanz relativ neu. Nun habe ich unser SZ umgestaltet und dabei eine dicke Schrankwand an die Außenmauer gestellt. Ein Bekannter hat mich dann aufmerksam gemacht das hier potentiell Probleme (hinter dem Schrank) entstehen können. Grob vereinfacht: ein voll gepackter Schrank isoliert die Wand so effektiv von der Heizung im Raum das auch gut gedämmte Mauern dahinter in den kritischen bereich auskühlen können.

Meiner Meinung nach ist der von peterk_de vorgestellt Ansatz wie das zu überwachen ist der einzig Richtige. Reine dewpoint Berechnungen greifen zu kurz. Im ersten Schritt installiere ich Temperaturfühler an der Wand dahinter plus Raumfühler (t+rh) und verwende die Formeln von peterk_de um das auszuwerten.

Nochmal: herzlichen Dank!.

vg
joerg
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Hauswart am 09 März 2017, 14:41:04
@peterk_de
Zitat von: peterk_de am 18 Januar 2017, 15:27:16
Ich poste es doch mal. Es läuft seit über einem Jahr auch stabil - meine generische Funktion für die myUtils.pm , die diverse Readings zum Thema Lüften für alle Räume mit Homematic-Thermostaten generiert. Es wird auch automatisch berücksichtigt, ob der Raum nen CO2- und/oder VOC-Sensor hat und ob "Sommermodus" (=Wohnung möglichst kühlen) oder "Heizmodus" (=Normalbetrieb) herrscht, was ich 2x im jahr über einen Dummy einstelle.

Vielleicht kannst du da ja ggf. interessante Regeln draus ableiten. Ist eigentlich selbsterklärend benannt.



sub calcLueftungsStates($$) {

   my ($NAME,$EVENT) = @_;

   if (!($NAME =~ /.*floorplan.*/)) {
      ##### Daten sammeln
     
      my $room;
     
      my $badOben = ($NAME =~ /.*bad.oben.*/);
      my $badUnten = ($NAME =~ /.*bad.unten.*/);
      my $schlafzimmer = ($NAME =~ /.*schlafzimmer.*/);
      my $wohnzimmer = ($NAME =~ /.*(wohnzimmer|stube).*/);
      my $kueche = ($NAME =~ /.*(kueche).*/);
      my $flur = ($NAME =~ /.*(flur|abstell).*/);
      my $kinderzimmer = ($NAME =~ /.*(kinderzimmer).*/);

      if ($badOben) {$room = 'bad.oben';}
      if ($badUnten) {$room = 'bad.unten';}
      if ($schlafzimmer) {$room = 'schlafzimmer';}
      if ($wohnzimmer) {$room = 'stube';}
      if ($kueche) {$room = 'kueche';}
      if ($flur) {$room = 'flur';}
      if ($kinderzimmer) {$room = 'kinderzimmer';}

      my $thermostat = "$room.wandthermostat_Weather";
     
      my $innenTemp=ReadingsVal($thermostat,"temperature",15);
      my $innenHum =ReadingsVal($thermostat,"humidity",90);
     
      my $aussenTemp=ReadingsVal("wohnung.aussenthermometer","temperature",0);
      my $aussenHum =ReadingsVal("wohnung.aussenthermometer","humidity","100");
     
      my $heizModus = ReadingsVal("wohnung.heizmodus","state","aus");
     
      my $fenster1 = ReadingsVal("$room.fenster","state","none");
      my $fenster2 = ReadingsVal("$room.fenster2","state","none");
     
      my $co2 = ReadingsVal("$room.co2","co2",0);
      my $voc = ReadingsVal("$room.raumluft","voc",0);
     
      ##### Neu berechnete Werte
     
      my $etwasOffen = (($fenster1 eq "open") || ($fenster2 eq "open"));
     
      my $wandTemp = wallSurfaceTemp($innenTemp,$aussenTemp,0.68);     
      my $wandHumidity = shiftRelHumidity($innenTemp, $innenHum, $wandTemp);
      my $aussenHumidityEqInnen = shiftRelHumidity($aussenTemp, $aussenHum, $innenTemp);
      my $schimmelfreiMaxHum = schlimmelfreiMaxHum($wandTemp);
     
      my $schimmelGefahr = ($wandHumidity > $schimmelfreiMaxHum);
      my $luftZuTrocken = (!$schimmelGefahr && ($innenHum < 40));
      my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen);
     
      my $entfeuchterAn = ($schimmelGefahr && ($innenHum > 51)) && !$etwasOffen;
      my $entfeuchterAus = (($wandHumidity < ($schimmelfreiMaxHum - 3)) || ($innenHum < 50)) || $etwasOffen;     
     
      my $luftfeuchteOeffnenEmpfohlen    = ($schimmelGefahr &&  $lueftenSenktLuftfeuchte) || ($luftZuTrocken && !$lueftenSenktLuftfeuchte);
      my $luftfeuchteSchliessenEmpfohlen = ($schimmelGefahr && !$lueftenSenktLuftfeuchte) || ($luftZuTrocken && $lueftenSenktLuftfeuchte);

      my $kuehlenUeberTemp = 23;
      if ($badOben) {
        $kuehlenUeberTemp = 25;
      } elsif ($badUnten) {
        $kuehlenUeberTemp = 25;
      } elsif ($schlafzimmer) {
        $kuehlenUeberTemp = 22.5;
      } elsif ($wohnzimmer) {
        $kuehlenUeberTemp = 23;
      } elsif ($kueche) {
        $kuehlenUeberTemp = 24;
      } elsif ($kinderzimmer) {
        $kuehlenUeberTemp = 23;
      }
     
      my $kuehlenAufTemp = 21;
      if ($badOben) {
        $kuehlenAufTemp = 22;
      } elsif ($badUnten) {
        $kuehlenAufTemp = 20;
      } elsif ($schlafzimmer) {
        $kuehlenAufTemp = 21.5;
      } elsif ($wohnzimmer) {
        $kuehlenAufTemp = 21.5;
      } elsif ($kueche) {
        $kuehlenAufTemp = 20;
      } elsif ($kinderzimmer) {
        $kuehlenAufTemp = 21;
      }

     
      my $tempOeffnenEmpfohlen =  (   (($heizModus eq "Kühlen") && ($innenTemp > $aussenTemp) && ($innenTemp > $kuehlenUeberTemp))
                                   || (($heizModus eq "Heizen") && ($innenTemp < $aussenTemp))
                                  ) ;
     
      my $tempSchliessenEmpfohlen =  (   (($heizModus eq "Kühlen") && (
      (($innenTemp < $aussenTemp) && ($innenTemp > $kuehlenUeberTemp))
        || (($innenTemp > $aussenTemp) && ($innenTemp < $kuehlenAufTemp))
        )
      )
                                      || (($heizModus eq "Heizen") && ($innenTemp > $aussenTemp))
                                     );
                               
      my $luftgueteSensorVorhanden =  (($co2 ne '0') || ($voc ne '0'));
     
      my $luftgueteOeffnenEmpfohlen =  ((($co2 > 1500) || ($voc > 2000)) && $luftgueteSensorVorhanden);
      my $luftgueteSchliessenEmpfohlen = (($co2 < 600) && ($voc < 700) && $luftgueteSensorVorhanden);
     

      my $schliessenEmpfohlen;     
     
      if ($luftgueteSchliessenEmpfohlen || !$luftgueteSensorVorhanden) {
       
       
        if ($luftfeuchteSchliessenEmpfohlen && $tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = true;
        } elsif (!$luftfeuchteSchliessenEmpfohlen && !$tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = false;
        } else {
          if (!$luftfeuchteOeffnenEmpfohlen && !$tempOeffnenEmpfohlen) {
            $schliessenEmpfohlen = true; 
          } else {
            if (     ($luftfeuchteSchliessenEmpfohlen && ($heizModus eq "Heizen"))
                  || ($tempSchliessenEmpfohlen && ($heizModus eq "Kühlen"))
            ) {
              $schliessenEmpfohlen = true; 
            } else {
              $schliessenEmpfohlen = false;
            }
          }
       
        }
       
      } else {
        $schliessenEmpfohlen = false;
      }
     
     
      my $oeffnenEmpfohlen = (($luftfeuchteOeffnenEmpfohlen || $luftgueteOeffnenEmpfohlen || $tempOeffnenEmpfohlen)  && !$schliessenEmpfohlen) ;




      my $fenster1richtig = (($fenster1 eq "closed") && $schliessenEmpfohlen) || ($etwasOffen && $oeffnenEmpfohlen) || (!$oeffnenEmpfohlen && !$schliessenEmpfohlen);
      my $fenster2richtig = (($fenster2 eq "closed") && $schliessenEmpfohlen) || ($etwasOffen && $oeffnenEmpfohlen) || (!$oeffnenEmpfohlen && !$schliessenEmpfohlen);
     
      ##### Alle sinnvollen Werte als Readings setzen
     
      fhem("setreading $thermostat wandTemp ".sprintf("%.1f", $wandTemp));
      fhem("setreading $thermostat wandHumidity ".sprintf("%.0f", $wandHumidity));
      fhem("setreading $thermostat aussenHumidityEqInnen ".sprintf("%.0f", $aussenHumidityEqInnen));
      fhem("setreading $thermostat schimmelfreiMaxHum ".sprintf("%.0f", $schimmelfreiMaxHum));
     
      fhem("setreading $thermostat schimmelGefahr ".($schimmelGefahr?"ja":"nein"));   

      fhem("setreading $thermostat oeffnenEmpfohlen ".($oeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat schliessenEmpfohlen ".($schliessenEmpfohlen?"ja":"nein"));   

      fhem("setreading $thermostat luftfeuchteOeffnenEmpfohlen ".($luftfeuchteOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat luftfeuchteSchliessenEmpfohlen ".($luftfeuchteSchliessenEmpfohlen?"ja":"nein"));   

      fhem("setreading $thermostat luftgueteOeffnenEmpfohlen ".($luftgueteOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat luftgueteSchliessenEmpfohlen ".($luftgueteSchliessenEmpfohlen?"ja":"nein")); 

      fhem("setreading $thermostat tempOeffnenEmpfohlen ".($tempOeffnenEmpfohlen?"ja":"nein"));   
      fhem("setreading $thermostat tempSchliessenEmpfohlen ".($tempSchliessenEmpfohlen?"ja":"nein")); 
     
      fhem("setreading $thermostat fenster1richtig ".($fenster1richtig?"ja":"nein"));     
      if ($fenster2 ne "none") {
        fhem("setreading $thermostat fenster2richtig ".($fenster2richtig?"ja":"nein"));
      }
     
      if ($entfeuchterAn) {
        fhem("setreading $thermostat entfeuchter an");
      } elsif ($entfeuchterAus) {
        fhem("setreading $thermostat entfeuchter aus");
      }
  }
}




Ersetzt dieser Code Beitrag 1? Oder inwiefern ergänzt dieser diesen bzw. wie rufst du diese Funktion auf?
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 09 März 2017, 15:12:42
Hallo zusammen,

@herrmann, danke für das Lob, freut mich dass ich mich für deine unermüdliche Arbeit etwas revanchieren konnte :-)

@hauswart nein. das ist nur als Beispiel gedacht. Ich nutze das in der 99_myUtils, um mir alle für's Lüften interessanten Werte zu berechnen. Spannend sind dabei insb. vielleicht folgende Zeilen:



      my $wandTemp = wallSurfaceTemp($innenTemp,$aussenTemp,0.68);      # Wandtemperatur innen. K-faktor anpassen!
      my $wandHumidity = shiftRelHumidity($innenTemp, $innenHum, $wandTemp);  # Rel. Luftfeuchtigkeit in Wandnähe
      my $aussenHumidityEqInnen = shiftRelHumidity($aussenTemp, $aussenHum, $innenTemp);  # Welche Luftfeuchtigkeit Innen nach vollst. Durchlüften wäre
      my $schimmelfreiMaxHum = schimmelfreiMaxHum($wandTemp); # Max. Rel. Luftfeuchte in Wandnähe, ab der es Schimmelt
     
      my $schimmelGefahr = ($wandHumidity > $schimmelfreiMaxHum); #Wahrheitswert: True bei Schimmelgefahr, false wenn nicht.
      my $luftZuTrocken = (!$schimmelGefahr && ($innenHum < 40));  #Wahrheitswert: True bei zu geringer Luftfeuchte
      my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen); #Wahrheitswert: True wenn Lüften zu trockenerer Luft führt
     
      my $entfeuchterAn = ($schimmelGefahr && ($innenHum > 51)) && !$etwasOffen; #Wahrheitswert für Entfeuchtersteuerung: Anschalten (=true) wenn Schimmelgefahr und Entfeuchter wirtschaftl. arbeitet (min. 50% rH)
      my $entfeuchterAus = (($wandHumidity < ($schimmelfreiMaxHum - 3)) || ($innenHum < 50)) || $etwasOffen; #Wahrheitswert für Entfeuchtersteuerung: Ausschalten (=true) mit Hysterese von 3% rH
     
      my $luftfeuchteOeffnenEmpfohlen    = ($schimmelGefahr &&  $lueftenSenktLuftfeuchte) || ($luftZuTrocken && !$lueftenSenktLuftfeuchte); # Wahrheitswert: Sollte bez. Luftfeuchte gelüftet werden?
      my $luftfeuchteSchliessenEmpfohlen = ($schimmelGefahr && !$lueftenSenktLuftfeuchte) || ($luftZuTrocken && $lueftenSenktLuftfeuchte);  # Wahrheitswert: Darf bez. Luftfeuchte NICHT gelüftet werden?


Wenn man die 5 Variablen

- $innenTemp
- $aussenTemp
- $innenHum
- $aussenHum und
- $etwasOffen (true oder false, je nachdem, ob ein fenster offen ist)

per ReadingsVal(...) befüllt, wie ich das weiter oben tue, bekommt man mit diesen Codezeilen so ziemlich alles, was man für's Lüften braucht an Variablen. Habs oben mal kommentiert, was die vielen aus erstaunlicherweise nur 5 Werten berechneten Variablen bedeuten. Man braucht dazu natürlich die im Eingangsposting aufgeschriebenen Funktionen.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 12 März 2017, 09:22:48
Anlässlich des neuen Interesses habe ich oben mal aufgeräumt, nen Wiki-Account beantragt, womit ich den Artikel auch mal auf stand bringen werde, und auch noch eine neue Funktion gebastelt, die vielleicht auch nützlich ist:

schimmelfreiMinTemp - unter welcher Temperatur es im Raum schimmelt, gegeben Raumtemperatur und Luftfeuchte - also sozusagen nicht der Dewpoint, sondern der "Schimmelpoint" ;-) Das hab ich fix numerisch gelöst, weil ich zu faul war, die Formel umzustellen, aber wir haben ja 2017 und 1GHz-Raspberrys und so ;)
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 12 März 2017, 11:59:02
Hallo Peter,

wollte gerade die neue Funktion testen, bekomme jedoch einen Fehler beim speichern der myUtils:

Bareword "false" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 73.

Viele Grüße!
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 12 März 2017, 12:07:58
Argh, wie ich perl liebe. Hab ich oben korrigiert, probier mal nochmal, sorry.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 12 März 2017, 12:19:11
Nun gehts!  :)

Steht das neue Userreadings "schlimmelfreiMinTemp" in Abhängigkeit zu den anderen Userreadings oder reicht es wenn man "schlimmelfreiMinTemp" ergänzt und die anderen Userreadings auf dem alten Stand belässt?
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 12 März 2017, 12:25:04
Nein, für das brauchst du eigentlich nur die ganzen Funktionen in den myUtils sowie die rohe Raumluftfeuchte und Raumtemperatur. Kann man also auch "Stand alone" verwenden.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 12 März 2017, 12:47:13
Nun erhalte ich noch einen weiteren Fehler für der Userreadings "schlimmelfreiMinTemp":

Error evaluating BZ.Klimasensor userReading schlimmelfreiMinTemp: syntax error at (eval 23333) line 1, at EOF

So siehts bei mir aus:

schlimmelfreiMinTemp { sprintf("%.1f",schlimmelfreiMinTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("BZ.Klimasensor","humidity",100),100) },
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 12 März 2017, 14:04:43
Da fehlte ne Klammer am Ende:


schimmelfreiMinTemp { sprintf("%.1f",schlimmelfreiMinTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("BZ.Klimasensor","humidity",100),100)) },


Ich hoffe jetzt haben wir alle Schusselfehler von mir gefunden :-D
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Spezialtrick am 12 März 2017, 15:19:22
Zitat von: peterk_de am 12 März 2017, 14:04:43
Ich hoffe jetzt haben wir alle Schusselfehler von mir gefunden :-D

Nun siehts sehr gut aus und das Reading meldet eine Temperatur.

Meinst du, dass es Sinn machen würde, den Vergleich von "schlimmelfreiMinTemp" und "wandTemp" in das All in One Reading "schimmelGefahr" einzubauen oder wäre es besser hierfür ein zusätzliches Reading vorzusehen? Letzteres hätte wohl den Vorteil, dass man unterscheiden könnte, ob zu Heizen oder zu Lüften ist.  ???
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: peterk_de am 12 März 2017, 16:09:03
Also das bisherige Reading "schimmelGefahr" ist vom Ergebnis her (ja/nein) mit dem Vergleich von "schimmelfreiMinTemp größer wandTemp" identisch (bis auf Rundungsfehler ;-). Nur der Rechenweg ist anders (es werden die rel. Feuchten verglichen und keine Temperaturen). Kannst du leicht prüfen und stimmt hoffentlich immer ^^.

Die Unterscheidung, ob Heizen oder Lüften kannst du damit allein nicht treffen. Dazu brauchst du noch das Reading "lueftenMoeglich". Z.B.: Wenn schimmelGefahr und LueftenMoeglich, dann Lueften, sonst Heizen (oder entfeuchten). Weil Heizen hilft bei Schimmelgefahr im Prinzip immer, Lüften aber nur, wenn die Luft draußen absolut trockener ist als drinnen.
Titel: Antw:HOWTO: Energiesparende Schimmelbekämpfung/ Luftentfeuchtung in kritischen Räumen
Beitrag von: Hauswart am 17 März 2017, 11:25:38
Zitat von: peterk_de am 12 März 2017, 09:22:48
Anlässlich des neuen Interesses habe ich oben mal aufgeräumt, nen Wiki-Account beantragt, womit ich den Artikel auch mal auf stand bringen werde, und auch noch eine neue Funktion gebastelt, die vielleicht auch nützlich ist:
Daumen hoch. Freue mich schon auf die fertige Lösung.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 23 März 2017, 13:44:44
So, ist jetzt oben alles fertig. Habe den Artikel ein wenig umstrukturiert - jetzt leistet er auch in "nicht kritischen" Räumen Hilfe :)

@herrmannj, du hast mich indirekt auf eine Idee gebracht ... die TechemHKV sind doch eigentlich DER perfekte Sensor für Oberflächentemperaturen.. Und der Preis .... ich hab grad 18 gebrauchte für 30 Euro (!) bei ebay bekommen ... ;D ;D ;D

Wenn sie da sind, werde ich mal berichten, wie sie sich als Wandtemperaturmesser schlagen ...
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: herrmannj am 23 März 2017, 20:33:18
 :)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: cmonty14 am 24 März 2017, 12:59:04
Hallo!

Ich habe mir vom "Lüftungsbüro Berlin" ein Lüftungs-Konzept für meine Eigentumswohnung erstellen lassen.
Dieses Konzept sieht für das Badezimmer (~ 6m^2) nur ein feuchtegesteuerte Abluft vor.

Frage:
Wenn ich die Möglichkeiten der hier vorgestellten Lösung "Richtig Lüften und Entfeuchten" ausschöpfe, welches Gerät zum Be-/Entlüften sollte ich dann im Badezimmer verbauen?

THX
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 24 März 2017, 13:31:54
Hi c.monty,

das sind ein bisschen wenig Angaben, um das sagen zu können. Wie sieht denn grob das Lüftungskonzept aus? Hast du Kältebrücken im Bad? (Wärmebildkamera oder Infrarotthermometer leihen)?

Pauschal gilt: Ohne Kältebrücken (also insbes. z.B. bei innenliegenden Bädern) ist gegen eine alleinige Regelung per Raumluftfeuchtigkeit prinzipiell nichts einzuwenden. Zielwert < 70% (oder besser, anhand der Raumtemperatur ermittelt wie oben beschrieben) und fertig.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: cmonty14 am 24 März 2017, 16:35:17
Zitat von: peterk_de am 24 März 2017, 13:31:54
Hi c.monty,

das sind ein bisschen wenig Angaben, um das sagen zu können. Wie sieht denn grob das Lüftungskonzept aus? Hast du Kältebrücken im Bad? (Wärmebildkamera oder Infrarotthermometer leihen)?

Pauschal gilt: Ohne Kältebrücken (also insbes. z.B. bei innenliegenden Bädern) ist gegen eine alleinige Regelung per Raumluftfeuchtigkeit prinzipiell nichts einzuwenden. Zielwert < 70% (oder besser, anhand der Raumtemperatur ermittelt wie oben beschrieben) und fertig.

Verstehe...
Ich habe keine Messungen zu Kältebrücken.
Aber das Bad ist ein innenliegendes Badezimmer mit 1 Aussenwand (ca. 2m Breit inkl. Fenster).
Im Anhang ein Bild des Grundrisses inkl. Belüftungskonzept.

THX
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 25 März 2017, 08:47:58
Hi Monty,

also eine komplett dezentrale Lüftungsanlage mit zentraler Steuerung. Da stellt sich mir in Zusammenhang mit FHEM zuerst die Frage, ob du da überhaupt eine Chance hättest, in die Regelung von extern einzugreifen (Schnittstelle) - hier kenne ich mich nicht aus, was es da an Systemen gibt. Was sicher immer geht, ist per FHEM das Bad zusätzlich zu überwachen (mit einem separaten Funk-Hygrometer) wie oben beschrieben und dann ggf. die Anlage nach einer Warnung manuell hochzudrehen.

Nur den Ablüfter im Bad losgelöst hochzufahren und ganz getrennt zu regeln, wenn du dort Schimmelgefahr detektierst, ist ungünstig, dann saugst du im schlimmsten Fall den Küchendunst einmal quer durch die Wohnung. Auch einen separaten Entfeuchter würde ich bei der Konzeption vermeiden, wenn der nötig wäre, wäre das eigentlich ein Armutszeugnis für die Lüftungsanlage. Generell traue ich so einer Firma aber zu, die Lüfter/Wärmetauscher etc. so zu dimensionieren, dass dein Bad in Abhängigkeit von Nutzung und Bausubstanz nicht schimmelt, denn das ist ja ihr Job.

Wie gesagt, ich würde auf jeden Fall aber noch schauen, ob du da kalte Wandstellen hast und wenn ja, die Planer darauf einmal gezielt ansprechen, denn dann müsste das entsprechend berücksichtigt werden und ist leider in aktuellen Normen etc. eher schlecht abgebildet. Eventuell kämen für dich dann aber auch auf jeden Fall zu bevorzugende (da auf Dauer günstigere) Bauliche Maßnahmen wie zusätzliche Dämmung in Frage.

LG!
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: stromer-12 am 25 März 2017, 11:28:50
Ist es Absicht das es "schlimmel" und nicht "schimmel" bei den Funktionen heißt?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 25 März 2017, 11:40:34
Da muss mir am Anfang mal die Rechtschreibkorrektur nen Streich gespielt haben ... aber schön dass das nach so langer zeit mal jemand merkt, habe es versucht überall zu korrigieren  ;D
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 03 Juni 2017, 15:46:17
Bis vor Kurzem hat alles sehr gut funktioniert. Allerdings erhalte ich seit Beginn des sehr warmen Wetter nun laufend Meldungen, dass ich die Fenster schließen soll.

Ich nehme an, dass es damit zusammenhängt, dass ich den K-Faktor noch nicht von Heiz- auf den Sommermodus umgestellt habe, den Peter hier beschrieben hat:

Zitat von: peterk_de am 18 Januar 2017, 15:27:16
Es wird auch automatisch berücksichtigt, ob der Raum nen CO2- und/oder VOC-Sensor hat und ob "Sommermodus" (=Wohnung möglichst kühlen) oder "Heizmodus" (=Normalbetrieb) herrscht, was ich 2x im jahr über einen Dummy einstelle.

Bei den aktuellen Temperaturen komme ich leider auch auf keine vernünftigen Werte. Teils liegen diese im negativen Bereich und teilweise großer 1.(s. Anhang)

Hat jemand eine Idee, wie ich aktuell an brauchbare K Wert komme?  ???
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 03 Juni 2017, 16:24:19
Hi Spezialtrick,

mit meinem "Sommermodus" hat das nichts zu tun. Du bist stattdessen leider an die "natürliche Grenze" des Verfahrens gestoßen. In deinem Beispiel liegt die Wandtemperatur unter Außen- und Innentemperatur, mit anderen Worten, es hat sich noch kein thermisches Gleichgewicht zwischen Wand und Luft eingestellt. Das dauert je nach Dicke der Wand recht lange, und bei den aktuell geringen Temperaturdifferenzen hat dieser Speichereffekt der Wand einen nicht mehr zu vernachlässigenden Anteil.

Generell kannst du deshalb bei diesem Wetter keinen K-Wert ermitteln, bzw. kommt Mist raus. Der K-Wert hat sich aber gegenüber dem Winter nicht verändert (der repräsentiert ja die Isoliereigenschaft der Wand). Deshalb solltest du zur Berechnung definitiv auch im Sommer den aus dem Winter nehmen (der im Winter ermittelte ist tendentiell der genauere Wert und deine ermittelten Werte sehen sehr plausibel aus). Also für den Sommer keinen neuen ermitteln.

Und dass du zu Beginn des warmen Wetters zu oft eine Schimmelwarnung bekommen hast: Das ist vermutlich leider korrekt! Warme Sommerluft kann unglaublich viel Wasser enthalten. Deine Wohnung ist noch nicht aufgeheizt (Innentemperatur niedrig), die warme  Außenluft kühlt ab und die relative Luftfeuchte steigt. Durch die verwendete Formel, die davon ausgeht, dass sich deine Wand sofort richtig miterwärmt, wird deine Wandtemperatur dann eher zu hoch geschätzt und du solltest  de facto ZU SELTEN Schimmelwarnungen bekommen...

Was du noch tun kannst: Die (mit dem Winter-K-Wert) geschätzte Wandtemperatur mit der tatsächlich gemessenen vergleichen. Dann kannst du den Speichereffekt in eine Grad-Celsius-messungenauigkeit umrechnen. Ich würde aber wetten, die liegt schlimmstenfalls bei max 2-3 Grad.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 04 Juni 2017, 18:13:23
Zitat von: peterk_de am 03 Juni 2017, 16:24:19
mit meinem "Sommermodus" hat das nichts zu tun.

Verstehe, mit dem Sommermodus unterscheidet du lediglich, ob die Wohnung gekühlt oder beheizt werden soll, korrekt?

Zitat von: peterk_de am 03 Juni 2017, 16:24:19
Du bist stattdessen leider an die "natürliche Grenze" des Verfahrens gestoßen. In deinem Beispiel liegt die Wandtemperatur unter Außen- und Innentemperatur, mit anderen Worten, es hat sich noch kein thermisches Gleichgewicht zwischen Wand und Luft eingestellt. Das dauert je nach Dicke der Wand recht lange, und bei den aktuell geringen Temperaturdifferenzen hat dieser Speichereffekt der Wand einen nicht mehr zu vernachlässigenden Anteil.

Generell kannst du deshalb bei diesem Wetter keinen K-Wert ermitteln, bzw. kommt Mist raus. Der K-Wert hat sich aber gegenüber dem Winter nicht verändert (der repräsentiert ja die Isoliereigenschaft der Wand). Deshalb solltest du zur Berechnung definitiv auch im Sommer den aus dem Winter nehmen (der im Winter ermittelte ist tendentiell der genauere Wert und deine ermittelten Werte sehen sehr plausibel aus). Also für den Sommer keinen neuen ermitteln.

Ok, dann belasse ich die K-Werte wie sie sind und versuche diese im kommenden Winter weiter zu verfeinern. Hatte im letzten Winter das Mittel aus nur drei Werte gebildet.

Zitat von: peterk_de am 03 Juni 2017, 16:24:19
Was du noch tun kannst: Die (mit dem Winter-K-Wert) geschätzte Wandtemperatur mit der tatsächlich gemessenen vergleichen. Dann kannst du den Speichereffekt in eine Grad-Celsius-messungenauigkeit umrechnen. Ich würde aber wetten, die liegt schlimmstenfalls bei max 2-3 Grad.

Ich weiß leider nicht genau wie ich das in FHEM berechnen könnte. Allerdings sind die Ungenauigkeiten größer:

Raum   gemessen   geschätzt
Wz          27.0           19.5
Ku           21.7           15.6
Bz           22.4           13,7

Liegt das noch an der "natürlichen Grenze des Verfahrens oder mache ich irgendetwas grundlegend falsch?



Ich habe mir deine oben gepostet Funktion angeguckt und wollte einige Dinge übernehmen. Dazu hätte ich noch eine Verständnisfrage. Der Teil "lueftenSenktLuftfeuchte" entspricht doch "lueftenMoeglich" oder?

Entsprechend dem Beitrag bestimmt sich "lueftenMoeglich" wie folgt:

lueftenMoeglich {(ReadingsVal("Raumhygromometer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenthermometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A") )+3))?"ja":"nein" }


Du bestimmst ""lueftenSenktLuftfeuchte" in deiner Funktion so:

my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen)

Könnte man "lueftenMoeglich" entsprechend auch so

lueftenMoeglich {(ReadingsVal("BZ.Klimasensor","humidity",0) > ReadingsVal("BZ.Klimasensor","aussenHumidityEqInnen",0))?"ja":"nein"}

bestimmen? Wie gesagt, als reine Verständnisfrage, um die anderen Teile deiner Funktion umzuschreiben.  8)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 04 Juni 2017, 21:17:14
Zitat von: Spezialtrick am 04 Juni 2017, 18:13:23

Raum   gemessen   geschätzt
Wz          27.0           19.5
Ku           21.7           15.6
Bz           22.4           13,7

Liegt das noch an der "natürlichen Grenze des Verfahrens oder mache ich irgendetwas grundlegend falsch?


Oha. Ich glaube fast da ist grundlegend was falsch, soweit lag das bei mir selbst bei meinen 50cm-Ziegelwänden nie daneben. Hast du diese Wandtemperaturen tatsächlich mit den Winter-K-Werten (Größer 0, kleiner 1) berechnet? Wenn der K-Wert zwischen 0 und 1 liegt, muss übrigens immer eine Wandtemperatur herauskommen, die zwischen aktueller Innen- und Außentemperatur liegt (bei K=0.5 ist es genau der Mittelwert zwischen Innen und Außen). Das kann ich mir insbesondere bei den geschätzten 13,7 Grad und der aktuellen Wetterlage aber nicht vorstellen. Deshalb meine Vermutung, dass da bei dir irgendwas nicht stimmt. Aber um das sagen zu können: Kannst du noch die Innen- und Außentemperaturen während dieser 3 Messungen rekonstruieren und den verwendeten K-Wert?

ZitatIch habe mir deine oben gepostet Funktion angeguckt und wollte einige Dinge übernehmen. Dazu hätte ich noch eine Verständnisfrage. Der Teil "lueftenSenktLuftfeuchte" entspricht doch "lueftenMoeglich" oder?

Entsprechend dem Beitrag bestimmt sich "lueftenMoeglich" wie folgt:

lueftenMoeglich {(ReadingsVal("Raumhygromometer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenthermometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A") )+3))?"ja":"nein" }


Du bestimmst ""lueftenSenktLuftfeuchte" in deiner Funktion so:

my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen)

Könnte man "lueftenMoeglich" entsprechend auch so

lueftenMoeglich {(ReadingsVal("BZ.Klimasensor","humidity",0) > ReadingsVal("BZ.Klimasensor","aussenHumidityEqInnen",0))?"ja":"nein"}

bestimmen? Wie gesagt, als reine Verständnisfrage, um die anderen Teile deiner Funktion umzuschreiben.  8)

Japp, das ist korrekt geschlussfolgert, ich habe das nur so umständlich geschrieben, damit die Userreadings nicht voneinander abhängen, so dass man die auch einzeln verwenden kann.
Titel: HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 04 Juni 2017, 21:44:50
Zitat von: peterk_de am 04 Juni 2017, 21:17:14
Oha. Ich glaube fast da ist grundlegend was falsch, soweit lag das bei mir selbst bei meinen 50cm-Ziegelwänden nie daneben. Hast du diese Wandtemperaturen tatsächlich mit den Winter-K-Werten (Größer 0, kleiner 1) berechnet? Wenn der K-Wert zwischen 0 und 1 liegt, muss übrigens immer eine Wandtemperatur herauskommen, die zwischen aktueller Innen- und Außentemperatur liegt (bei K=0.5 ist es genau der Mittelwert zwischen Innen und Außen). Das kann ich mir insbesondere bei den geschätzten 13,7 Grad und der aktuellen Wetterlage aber nicht vorstellen. Deshalb meine Vermutung, dass da bei dir irgendwas nicht stimmt. Aber um das sagen zu können: Kannst du noch die Innen- und Außentemperaturen während dieser 3 Messungen rekonstruieren und den verwendeten K-Wert?

Ja, bei allen Sensoren sind die Winter-K-Werte enthalten. Diese liegen zwischen 0,49 und 0,85. Ich habe sämtliche Daten in einem Excel Sheet. (s.Anhang) Ein K-Feld habe ich markiert, sodass du auch die Rechnung sehen kannst.

wandTemp habe ich so im userreadings stehen:

wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("UM.Klimasensor","temperature_offset",0),0.54)) },

Vllt. haber ich ja irgendwas übersehen.

Zitat von: peterk_de am 04 Juni 2017, 21:17:14
Japp, das ist korrekt geschlussfolgert, ich habe das nur so umständlich geschrieben, damit die Userreadings nicht voneinander abhängen, so dass man die auch einzeln verwenden kann.

Ok. Perfekt. Muss man denn eine Reihenfolge bei den Readings einhalten?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 06 Juni 2017, 19:50:37
Hallo spezialtrick,

ich meinte die Innen/Außentemperaturen zu diesen Werten, die du gepostet hast:

Raum   gemessen   geschätzt
Wz          27.0           19.5
Ku           21.7           15.6
Bz           22.4           13,7

Nehmen wir mal das Badezimmer mit 13,7 Grad Schätztemperatur: Das würde bei K=0,54 bedeuten, dass 13,7 Grad etwa der Mittelwert aus dem Reading deines Außensensosr und deinem Raumsensor sein müssten. Haut das hin?

Zur Reihenfolge der Userreadings: Keine Ahnung, vermutlich ist die ist die aber nicht klar definiert und zufällig (da Intern als hash gespeichert). Ich würde es immer vermeiden, dass Userreadings aufeinander aufbauen. Denn wenn du in der Berechnung eines Userreadings ein anderes auswertest, rechnet er manchmal (wahrscheinlich sogar immer, weiß grad nicht wie das genau implementiert ist) mit dessen alten Wert. Also wenn dein Userreading "Wandtemperatur" von 17 auf 18 Grad steigt, und du ein weiteres Userreading "SchimmelGefahr" hast, wo ReadingsVal(Wandtemperatur) benutzt wird, wird dann trotzdem mit 17 Grad gerechnet, und erst beim nächsten mal mit 18 Grad.

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 08 Juni 2017, 21:45:10
Zitat von: peterk_de am 06 Juni 2017, 19:50:37
Hallo spezialtrick,

ich meinte die Innen/Außentemperaturen zu diesen Werten, die du gepostet hast:

Raum   gemessen   geschätzt
Wz          27.0           19.5
Ku           21.7           15.6
Bz           22.4           13,7

Nehmen wir mal das Badezimmer mit 13,7 Grad Schätztemperatur: Das würde bei K=0,54 bedeuten, dass 13,7 Grad etwa der Mittelwert aus dem Reading deines Außensensosr und deinem Raumsensor sein müssten. Haut das hin?

Achso, nein die Werte habe ich leider nicht mehr, weil sie schon von der Datenbank gerundet worden sind. Der von dir errechnete K-Wert stimmt exakt und steht genau so in meinem Userreadings drin. Nur leider stimmten die gemessen Werte nicht mit den geschätzten überein. Das spricht doch dafür, dass der K-Wert nicht wirklich korrekt sein kann, oder?  ???

Aktuelle Werte aus dem Badezimmer:

Außentemperatur: 22,4°
Innentemperatur: 25,1°
tatsächliche Wandtemperatur: 22,7°
geschätzte Wandtemperatur: 13,6°
K=0,54

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 08 Juni 2017, 23:04:44
OK, wie ich vermutet habe. Bei diesen Temperaturen und diesem K-Wert MUSS eine geschätzte Wandtemperatur zwischen 22,4 und 25,1 Grad rauskommen. Warum tut es das bei dir nicht ... ich tippe mal ins Blaue: Komma statt Punkt beim K-Wert? ;)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 09 Juni 2017, 14:19:58
Punkt statt Komma wars schon mal nicht.  :D

Ich habe aber einen Unterschied gefunden. Dein wandTemp Reading lautet:

wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("kuechenthermometer","temperature",15),ReadingsVal("aussenthermometer","temperature",0),0.68)) },


und meins komischerweise:

wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("BZ.Klimasensor","temperature",15),ReadingsVal("UM.Klimasensor","temperature_offset",0),0.54)) },


Nun komme ich auf folgende Werte:

Außentemperatur: 23,5°
Innentemperatur: 25,2°
tatsächliche Wandtemperatur: 24,4°
geschätzte Wandtemperatur: 24,3°
K=0,54

Sieht ziemlich gut aus. :) Frage mich aber trotzdem wo das "offset" herkommt. Selbst ausgedacht habe ich mir das sicher nicht.  :D


Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 09 Juni 2017, 17:19:44
Das war mir selbst schon aufgefallen, aber ich dachte es wäre ein Userreading von dir. Wo das herkommt wirdt wahrscheinlich wenn dann nur du selbst ergründen können ;-) Jedenfalls: Schön, dass es jetzt so genau klappt, Physik fetzt halt :-)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Spezialtrick am 09 Juni 2017, 21:12:45
Zitat von: peterk_de am 09 Juni 2017, 17:19:44
Das war mir selbst schon aufgefallen, aber ich dachte es wäre ein Userreading von dir. Wo das herkommt wirdt wahrscheinlich wenn dann nur du selbst ergründen können ;-) Jedenfalls: Schön, dass es jetzt so genau klappt, Physik fetzt halt :-)

Ich kann mich ehrlich gesagt nicht entsinnen, ein offset für meinen Außensensor gesetzt zu haben.  :o

Ich habe nun nochmal alle userreadings kontrolliert und sämtlich "schlimmel" Fehler beseitigt. Nun scheint es gut zu funktionieren und Fhem erlaubt mir das Lüften der Wohnung.  ;D

Lediglich dieser Fehler verbleibt im Log:

2017.06.09 21:07:16 1: PERL WARNING: Argument "N/A" isn't numeric in numeric gt (>) at (eval 5541) line 1.
2017.06.09 21:07:16 3: eval: {(ReadingsVal("WZ.Klimasensor","humidity","N/A") >(shiftRelHumidity(ReadingsVal("UM.Klimasensor","temperature","30"),ReadingsVal("UM.Klimasensor","humidity","100"), ReadingsVal("WZ.Klimasensor","temperature","N/A") )+10))?"ja":"nein" }


Hast du dafür noch eine Lösung?

ZitatPhysik fetzt halt :-)

Ich glaube das können wir so festhalten.  :D
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 09 Juni 2017, 22:06:35
Ja. Perl meckert, dass "N/A" keine Zahl ist und nicht verglichen werden kann. Es kommt hier her:

ReadingsVal("WZ.Klimasensor","humidity","N/A")

oder hier her:

ReadingsVal("WZ.Klimasensor","temperature","N/A")

In beiden Fällen ist es der "Fallback-Wert" für die Funktion ReadingsVal, falls diese ein Reading nicht findet.

Kurzgesagt: Deinem WZ.Klimasensor fehlt das Reading temperature oder humidity oder beides.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 12 Juni 2017, 13:05:51
Hallo Peter,
ich leide seit Jahren auch enorm unter der Feuchtigkeit im Keller im Wochenendhaus.
Hier wurde wohl auch beim BAu geschlampt, aber die Tonnen Trockengranulat kosten enorme Summen Geld.
Der Keller ist sehr feucht und alles schimmelt (Auch die grünen Rigips Platten für den Feuchtbereich).
Ich würde es gerne einmal mit einer Lüftungssteuerung versuchen.
-> 1 kleines Fenster mit Lüfter versehen / auf der anderen Seite des Kellers eine Klappe zur Entlüftung.

Über FHEM und entsprechenden Feuchtesensor Innen & Aussen dann die Lüftung regeln.

FHEM habe ich schon lange bei mir in der Anwendung, z.B. auch mit dem ASH2200 Temp/Humidity Sensor am Balkon, damit ich bei Frost die automatische Rolladensteuerung abschalte, da mir die Motoren die mittlerweise ziemlich brüchigen Rolläden ggf. zerreissen wenn es festfriert.

Meine Planung wäre daher:
1 FHEM auf RasPi
2 ASH2200 (Innen an der Entlüftungsklappe und Aussen an der Ansaugung)
1 Badezimmerlüfter geschaltet über FS20
Entsprchende Verrohrung um die trockene Luft anzusaugen und nicht die feuchte Luft am Boden.

Dann wäre die Idee, Wenn Humidity aussen gering und innen hoch, wird die trockene Luft reingeblasen, bis die Differenz geringer geworden ist.
Ich werde mir dazu dann noch mal deine Algorithmen anschauen.

Siehst du bei meinem geplanten Aufbau aus deiner Erfahrung irgendwelche Denkfehler ? ?

Gruss

Holger


Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 12 Juni 2017, 18:25:03
Hi Holger,

1. Problem: wenn du so massive Probleme hast, könnte es sein, dass du mit Lüften nicht hinkommst und einen Entfeuchter brauchst, insbesondere im Sommer.

2. Problem: Ich würde dir empfehlen, in deinem Keller mal mit einem (geborgten) Infrarothermometer die Schimmelstellen zu messen. Sind die deutlich kälter als die Raumluft (also schlecht gedämmt(
), brauchst du im Keller für gescheitete Lüftungs/Entfeuchtungsregelung noch einen dauerhaften Sensor zur Messung der Wandtemperatur. Mein Schätzverfahren klappt nicht bei Kellerwänden.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Manul am 13 Juni 2017, 00:49:12
Zitat von: peterk_deSind die deutlich kälter als die Raumluft (also schlecht gedämmt(
), brauchst du im Keller für gescheitete Lüftungs/Entfeuchtungsregelung noch einen dauerhaften Sensor zur Messung der Wandtemperatur.

Darf ich mal naiv fragen warum? Klar ist die Wandtemperatur für die Beurteilung der Schimmelgefahr interessant - aber für die Entscheidung, ob Lüften sinnvoll ist, müsste doch der Vergleich von absoluter Feuchte innen und außen ausreichen, oder?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 14 Juni 2017, 12:17:34
Hey Manuel, jain. Dieser Vergleich ist natürlich Voraussetzung, dass du den Keller lüften kannst. Aber wenn du wie Holger damit einen elektrischen Lüfter steuern willst, dann soll der ja nur angehen, wenn es auch wirklich nötig ist, sonst heizt du dich gerade im Winter ja tot (wo die Feuchte durch Lüften schnell im unkritischen Bereich ist und dann nur noch das Mauerwerk auskühlt). Bei einer reinen Entfeuchterregelung bringt dir der Vergleich ansonsten gar nix, weil da die Außenluft keine Rolle spielt.

LG!
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 18 Juni 2017, 11:44:40
Erst mal Danke für all die tollen Anregungen! Ich hätte 2 Fragen.  ::)

1.) Schon mal drüber nachgedacht daraus ein Modul zu machen?
2.) Spricht was dagegen die Wandtemperatur mit einem Fieberthermometer für das Ohr zu messen? Ist das blöd wenn das nur eine Momentaufnahme ist? Wenn ich aber was an die Wand hänge das dort misst, dann ist diese Stelle teilweise von der Raumluft isoliert und die Messergebnisse wahrscheinlich zu kalt. Das Ohrthermometer ist auch sehr genau glaube ich, da kalibriert.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 19 Juni 2017, 13:06:25
Hi Mumpitz,

1.) Ja habe ich, aber bastle gerade an einem anderen modul (das nicht so "einfach" per myUtils/Userreading zu machen ist), so dass ich das erstmal hinten angestellt habe. Irgendwann aber vielleicht wirklich mal :)

2.) Im Prinzip geht das, das Messprinzip ist das gleiche wie bei einem Universal-Infrarotthermometer aus dem Baumarkt. So genau sind die Fieberthermometer allerdings nur, weil sie meist a) nur einen sehr kleinen Temperaturbereich haben (25-45 Grad oder so), das reicht für Wände dann natürlich nicht. Und b) sind sie grob gesagt auf das Abstrahlungsverhalten von "Haut" voreingestellt, messen also Wände nicht unbedingt genauso genau. Bei Baumarkt-Infrarotthermometern findest du die Angabe, auf welche Oberflächen sie optimiert sind, manchmal in der Anleitung, bei hochwertigen Teilen kannst du den sogenannten "Epsilon"-Wert für verschiedene Materialien selbst nach einer Tabelle im Gerät einstellen - oder, wie bei meinem, sogar automatisch über ein herkömmlichen Temperaturfühler kalibrieren und speichern... da kommt dann ein Fieberthermometer nicht mehr mit ;)

Damit einmal eine "Momentaufnahme" messen ist ansonsten genau die Idee dieses Threads - im Eingangsposting sind die Formeln / Verfahrensweisen beschrieben, wie du aus dieser Momentaufnahme kontinuierlich die aktuelle Wandtemperatur berechnen kannst.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 19 Juni 2017, 20:55:53
Vielen Dank! Ich werde es mal versuchen, bisher sahen die Ergebnisse ganz brauchbar aus. So ein Teil hat halt fast jeder zu Hause rum liegen, kostet also nichts extra.
Ich werde mich die nächsten Tage mal damit beschäftigen... Deshalb schon mal vorab herzlichen Dank für die ausführlichen und nachvollziehbaren Ausführungen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 20 Juni 2017, 19:12:08
Hallo Peter, Danke für die Antwort.
Ich habe ja jetzt schon mal das erste Testsystem mit Raspi NanoCul und 2 Ash2200 aufgebaut und eine entsprechende Routine für den Vergleich der Luftfeuchtigkeiten implementiert. Jetzt wird das mal im keller installiert um zu sehen ob meine Routine den Schaltvorgang des Lüftens Prinzipien startet.

Dann kann ich erst mal testen 👍👍

Im Anschluss würde ich dann mal den Lüfter mit Schaltaktoer verbauen etc.

Leider ist das ganze ca 30km von meinem Wohnort und da muss ich mir noch zusätzlich überlegen ob ich nicht auch noch eine Anbindung über einen GPRS Stick oder ein altes Handy hinbekomme um die Daten aus dem gartenhaus auch von zu Hause aus prüfen und korrigieren zu können. Da finde ich zur Zeit nur wenige Infos bzw. Erfahrungen und Tíos. Ich melde mich aber noch mal wie' läuft ....

Spannendes Projekt 😀😀😀
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: noxx am 23 Juni 2017, 15:56:33
Frage mich gerade, ob man mit dieser Funktion ein Mini-Gehächshaus betreiben kann (Bei Schimmelgefahr per 5V-Lüfter oder 12V-Lüfter  lüften)

https://www.amazon.de/74338-Zimmergew%C3%A4chshaus-38x25x19-l%C3%BCftbarer-Abdeckhaube/dp/B0001IP7EK/ref=pd_sim_86_4?_encoding=UTF8&psc=1&refRID=T8S1ZWZRH5QYWN1NJHQZ
(PS: Gibts bei OBI für 2,99€)

Gruß
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 23 Juni 2017, 19:31:25
Noxx, klar geht das! Nur geht dann nicht der Gewächshauseffekt verloren, wenn du das öfter lüftest? Also SOLL da die Luftfeuchte nicht gerade im "Gammelbereich" liegen? (Ich kenne mich da nicht wirklich aus ;) )
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 25 Juni 2017, 22:22:40
Hallo an alle,
die ersten Tests waren schon mal erfolgreich. Der Raspi kann in der trockenen Hütte hängen, und der ASH2200 im Keller und auch der draussen scheinen guten Empfang zu haben. Das sollte dann also auch für den FS20 Schalter für den Lüfter im Keller gelten.

So nun versuche ich mich gerade am Script für die Entscheidungsfindung  Aussenluft reinblasen oder nix tun um Schimmelbildung zu vermeiden.

Nun habe ich im Keller vielleicht ein etwas anderes Problem wie andere:
Wie gesagt ist es nur ein Wochenend"häussle" mit der Toilette und anderen Dingen im Keller, aber man möchte ja auch mal auf den Topf gehen ohne den Schimmel einzuatmen.

Meine Erfahrung ist, dass praktisch alles (!) was sich im inneren des Kellers befindet umgehend Schimmel ansetzt. Auch die grünen Rigips Platten.
--> Es handelt sich also nicht um den Effekt von Wandschimmel aufgrund niedrigerer Wandtemperatur zur Kellerlufttemperatur.

Von daher würde ich erst einmal davon ausgehen, dass mir der simple Vergleich der "Absoluten Feuchtigkeiten" und der Temperaturdifferenz Innen/Aussen eine ausreichend gute Entscheidungshilfe gibt.
--> Vorschlag:
  -> Wenn Absolute Luftfeuchtigkeit Aussen < als im Keller und Aussentemperatur mindestens gleich wie im Keller: Lüften.
  -> Ansonsten: Nix tun.
Was meint ihr ?
   --> Momentan scheitere ich mal wieder grandios an den Perl / FHEM gegebenheiten zum Syntax mit ;; / .... sobald ich was habe, poste ich es mal.




Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Manul am 25 Juni 2017, 23:32:14
Zitat von: AnonymousHolger am 25 Juni 2017, 22:22:40
Von daher würde ich erst einmal davon ausgehen, dass mir der simple Vergleich der "Absoluten Feuchtigkeiten" und der Temperaturdifferenz Innen/Aussen eine ausreichend gute Entscheidungshilfe gibt.
--> Vorschlag:
  -> Wenn Absolute Luftfeuchtigkeit Aussen < als im Keller und Aussentemperatur mindestens gleich wie im Keller: Lüften.
  -> Ansonsten: Nix tun.

Würde ich genauso sehen und habe ich an anderer Stelle (noch vor meiner FHEM-Zeit) auch schon mal implementiert: http://www.forum-raspberrypi.de/Thread-haussteuerung-feuchtegesteuerte-kellerlueftung

Vielleicht kannst Du davon ja eine Anregung mitnehmen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 26 Juni 2017, 09:09:56
AnonymousHolger, das macht meine (fertige) Funktion shiftRelHumidity quasi in einem Rutsch:

Du rufst die Funktion auf mit: Temperatur Außen, Relative Luftfeuchte Außen, Temperatur Innen

Du erhältst als Ergebnis: Theoretische relative Luftfeuchte der Außenluft innen (Also wenn die Außenluft dann auf Kellertemperatur erwärmt / gekühlt wurde)

Das vergleichst du dann mit der tatsächlichen (gemessenen) Luftfeuchte Innen. Alles dazu ist eigentlich fertig (als Userreading) im ersten Posting. Brauchst dir nur raussuchen, was du möchtest.

LG!

Edit: Die Funktion / Formel geht übrigens auch davon aus, dass die absolute Luftfeuchte der einströmenden Luft gleich bleibt - das ist also physikalisch nichts anderes als der Vergleich der absoluten Luftfeuchtigkeiten innen und außen. Vorteil demgegenüber ist aber, dass man immer in "relevanten" Einheiten bleibt und nur mit relativen Luftfeuchtigkeiten rechnet bzw. gleich in einem Reading hat, wie die relative Luftfeuchte innen jetzt werden würde, wenn man vollständig lüftet. Entsprechend kann man auch Fehlertoleranzen der Sensoren einfacher berücksichtigen und Schwellwerte für 2-Punkt-Regelungen intuitiver setzen.

Und der Vergleich mit einem "Maximalwert" (also Relative Luftfeuchte, ab der es schimmelt) ist dann auch gleich seht einfach, wenn man den noch nachlegen möchte.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 27 Juni 2017, 21:11:57
Hallo Peter,
ich hab (mal wieder) ein Problem. Ich bekomme immer eine Fehlermeldung und ich weiss nicht warum.

Ich habe in meiner fhem.cfg wie folgt
define ASH2200_Innen CUL_WS 3
define ASH2200_Aussen CUL_WS 5
define Keller.Lueften dummy
define KellerLuefterSchalter FS20 0909 00


Folgender Aufruf läuft Problemlos:
define LueftungsSkript at +*00:01:00 {calcLueftungsStates(34,50,15,70)}
Allerdings wundert mich, dass bei 34°C Aussentemperatur und 50% relH, folgende Werte gelogged werden.

2017-06-27_21:01:43 Keller.Lueften wandTemp 15.0
2017-06-27_21:01:43 Keller.Lueften wandHumidity 15
2017-06-27_21:01:43 Keller.Lueften aussenHumidityEqInnen 151
2017-06-27_21:01:43 Keller.Lueften schimmelfreiMaxHum 72

Darüberhinhaus bekomme ich mit dem Aufruf:
{calcLueftungsStates(ReadingsVal("ASH2200_Aussen","temperature",0),ReadingsVal("ASH2200_Aussen","humidity","100"),ReadingsVal(ASH2200_Innen,"temperature",15),ReadingsVal(ASH2200_Innen,"humidity",90))}

beschert mir immer die Fehlermeldung:
Bareword "ASH2200_Innen" not allowed while "strict subs" in use at (eval 2953) line 1

Das verstehe ich nicht ... der ASH2200_Innen ist doch identisch definiert wie der ASH2200_Aussen :-( ....


Ich habe deine Routinen in die 99_Myutils übernommen und das CalcLueftungsStates folgendermassen angepasst (noch nicht ganz fertig, aber scheint ein Problem zu haben z.b mit der korrekten Berechnung von wandHumidity.


sub calcLueftungsStates($$$$) {
sub calcLueftungsStates($$$$) {
  my $aussenTemp = $_[0];
  my $aussenHum = $_[1];
  my $innenTemp = $_[2];
  my $innenHum= $_[2];
      ##### Neu berechnete Werte           
      #my $wandTemp = wallSurfaceTemp($innenTemp,$aussenTemp,0.68);     
      my $wandTemp = $innenTemp;     
      my $wandHumidity = shiftRelHumidity($innenTemp, $innenHum, $wandTemp);
      my $aussenHumidityEqInnen = shiftRelHumidity($aussenTemp, $aussenHum, $innenTemp);
      my $schimmelfreiMaxHum = schimmelfreiMaxHum($wandTemp);
      my $schimmelGefahr = ($wandHumidity > $schimmelfreiMaxHum);
      my $luftZuTrocken = (!$schimmelGefahr && ($innenHum < 40));
      my $lueftenSenktLuftfeuchte = ($innenHum > $aussenHumidityEqInnen);
      my $entfeuchterAn = ($schimmelGefahr && ($innenHum > 51));
      my $entfeuchterAus = (($wandHumidity < ($schimmelfreiMaxHum - 3)) || ($innenHum < 50));     
      my $KellerLueften = "Keller.Lueften";
      ##### Alle sinnvollen Werte als Readings setzen
      fhem("set $KellerLueften wandTemp ".sprintf("%.1f", $wandTemp));
      fhem("set $KellerLueften wandHumidity ".sprintf("%.0f", $wandHumidity));
      fhem("set $KellerLueften aussenHumidityEqInnen ".sprintf("%.0f", $aussenHumidityEqInnen));
      fhem("set $KellerLueften schimmelfreiMaxHum ".sprintf("%.0f", $schimmelfreiMaxHum));
     
      fhem("setreading $KellerLueften schimmelGefahr ".($schimmelGefahr?"ja":"nein"));   
     
      if ($entfeuchterAn) {
        fhem("setreading $KellerLueften entfeuchter an");
      } elsif ($entfeuchterAus) {
        fhem("setreading $KellerLueften entfeuchter aus");
      }
}
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 27 Juni 2017, 22:30:04
Da fehlen die Hochkomma:

"ASH2200_Innen"

also

{calcLueftungsStates(ReadingsVal("ASH2200_Aussen","temperature",0),ReadingsVal("ASH2200_Aussen","humidity","100"),ReadingsVal("ASH2200_Innen","temperature",15),ReadingsVal("ASH2200_Innen","humidity",90))}
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 27 Juni 2017, 23:21:45
 :o :o :o :o :o :o :o ... tausend mal gelesen und nicht gesehen .....  :P :P :P :P :P :P :P

Danke
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 28 Juni 2017, 00:04:35
Noch ein Fehler in myutils. Für innenTemp und innenHum nimmst du den selben Übergabewert. Für einen der beiden solltest du Index 3 verwenden.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 28 Juni 2017, 21:56:14
... sooo blind ... danke .. jetzt geht alles und ich geh ans optimieren für meinen Keller :-),.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 09 Juli 2017, 12:42:33
Ich habe die eine Funktion etwas erweitert, so das mein Raspi an der Stelle sehr viel weniger rechnen muss. Ich hatte das Gefühl, das ich dadurch irgendwie Probleme mit der Last bekomme. Mit der vorgelagerten while Schleife taste ich mich quasi mit größeren Schritten an das Ergebnis ran. Dadurch muss die Berechnung nur noch ~17-20 mal und nicht mehr ~170-200 mal gemacht werden.

sub schimmelfreiMinTemp($$$) {
# Liefert die minimale Temperatur, bei der es - ausgehend von der aktuellen Luftfeuchte im Raum - nicht schimmeln würde.
# Liegt die kälteste Stelle im Raum darüber, besteht keine Schimmelgefahr.
# Liegt die kälteste Stelle im Raum darunter, müsste diese auf die errechnete Temperatur erwärmt werden, so dass es nicht schimmelt.
# Parameter:
# $curTemp - Aktuelle Raumtemperatur in Grad C
# $curHum - Aktuelle rel. Luftfeuchte im Raum in %rH
# $tempLimit (optional) - max. Temperatur, die die Funktion zurückliefert (falls der Rückgabewert z.B. als Heiz-Solltemperatur dient)
  my ($curTemp,$curHum,$tempLimit) = @_;

  if (!$tempLimit) {$tempLimit = 100;}

  my $testT=0;
  my $schimmelFrei = 0;
  while (($testT+1.0) < $tempLimit && (shiftRelHumidity($curTemp, $curHum, $testT+1.0) < schimmelfreiMaxHum($testT+1.0)))
  {
     $testT+=1.0;
  }
  while ($testT < $tempLimit && !$schimmelFrei)
  {
     $schimmelFrei = (shiftRelHumidity($curTemp, $curHum, $testT) < schimmelfreiMaxHum($testT));
     
     $testT+=0.1;
  }
  return $testT;
}
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 09 Juli 2017, 21:17:16
Das sollte nicht wirklich zu performanceproblemen führen, denn da passiert quasi nix und das auch nicht sehr oft (im vergleich zur Power eines Raspis) ... aber ich sehe es ein, ich muss da wohl doch mal die formel umstellen und es anständig machen, dann brauchts gar keine schleife ...  ;)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 09 Juli 2017, 23:15:19
Ich hatte jetzt öfter kurze Disconnects meines hmlan gateways. Kann aber auch mit anderen Dingen zusammen hängen. Schaden kann es auf jeden Fall nicht.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 10 Juli 2017, 14:59:49
Mal ne dumme Frage, aber laut der Anzeige darf ich seit Tagen nicht lüften. Ist das bei euch auch so oder hab ich da noch was falsch?

Warum wird eigentlich bei der Formel ob man lüften darf oder nicht noch eine Differenz von 3 dazugerechnet? Ich meine selbst wenn die Luftfeuchtigkeit "nur" gleich bleibt, sollte man doch aus anderen Aspekten wie z.B. Frischluft lüften können. Oder spricht irgendwas dagegen das ich überlesen/übersehen habe?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 10 Juli 2017, 20:08:21
Die 3 ist als "Sicherheitsmarge" (in %rH) gedacht, die die Ungenauigkeit in dem ganzen System (Temperaturmessung, Temperaturschätzung, Luftfeuchtemessung) repräsentiert. Du stellst damit genau das ein, was du ansprichst:


Da ich einen Entfeuchter habe, hab ich in dem Userreading einen positiven Wert verwendet - da ich nur dann ne Lüftungsempfehlung möchte, wenn es auch sicher hilft (der Entfeuchter hilft nämlich garantiert, geht aber aus naheliegenden Gründen automatisch aus, wenn ich das Fenster offen habe, und dann sollte das Lüften auch bitte was bringen). Hast du keinen Entfeuchter und willst mehr Frischluft, würde ich den in der Tat vielleicht auf -3 senken.

Ob das bei dir jetzt / dann hinhaut oder ein anderes Problem vorliegt, dazu müsstest du mal mehr Werte posten, dass man mal nachrechnen kann (bzw. rechnest du selbst mal nach).

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: AnonymousHolger am 18 Juli 2017, 23:11:56
So, es ist vollbracht  ;D ;D ;D ;D ;D

Mein System läuft.

Aktuell habe ich je eine Schaltsteckdose für Lüftung und Entfeuchtet installiert, aber bisher nur den Entfeuchtet angesteuert, Lüfter müsste ich noch besorgen und "verrohren".

Daher schaue ich mir das erst mal mit dem Entfeuchtet an. Aktuell habe ich den Eindruck, dass sich die Möglichkeiten für die Lüftung sehr in Grenzen halten, da die umgerechnete Luftfeuchtigkeit aussen->Keller meistens negativ auf die Raumfeuchte auswirkt.

Das Ganze seit Heute Abend auch noch mit einem UMTS Stick und einer kostenlosen SIM Karte jetzt auch von zu Hause aus zu kontrollieren !!!

Absolut Spitze !!! So kann der Sommerurlaub kommen :-) ....

Vielen Dank Peter für deine tolle Unterstützung !
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 22 September 2017, 19:13:24
Jemand einen tipp für einen kleinen 6m2 nassen Gewölbekeller?
Will die Tür zum Keller abdichen. Es gibt einen 30cmx30cm Schacht nach oben .
Soll ich die Luft lieber raus oder rein pusten?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 22 September 2017, 19:30:07
Da musst du vergleichen, ob die Luft im Keller feuchter ist wie draußen. Dann raus pusten.

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 22 September 2017, 19:57:35
Okay Danke nur wenn dann die Tür zum Wohnraum abgedichtet ist woher soll er die Luft bekommen ? Brauche also eher eine zu und abluft?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 22 September 2017, 20:11:08
Jepp. Solltest die Zuluft dann aus einem trockenen Raum ziehen.

Und ja kein Vakuum in den Keller ziehen. [emoji6]

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 22 September 2017, 20:16:58
hmm schwer da wenn ich reinpuste muss ja auch die Luft wieder raus hmmm
In mein Wohnraum soll es nicht da die Luft richtig Muffig stinkt
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 22 September 2017, 21:00:16
Du hast doch den Schacht. Puste da die Lust raus

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 22 September 2017, 21:03:58
ja klar aber woher kommt dann die Luft die ich da rauspuste ?
Das war ja auch meine Idee einfach die Suppe rauspusten :D Dann kann ich mir das abdichten auch sparen. Wobei meine Luftfeuchtigkeit hier im Raum auch noch nicht so TOP ist. Bin gerade erst eingezogen.
Aber sicher besser als im Keller.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 22 September 2017, 21:26:44
Aus deinen feuchten Keller,oder?

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 23 September 2017, 17:51:56
@ChrisW

Wenn du die Luft über den Schacht nach aussen pumps oder drückst, dann kannst du doch die Luft aus dem Wohnraum nachströmen lassen.
Ich denke, diese Luft dürfte mit Sicherheit trockener sein, wie die aus dem Keller, oder?

@peterk_de

Bist du schon mit der Modulenwicklung weiter ???


Gruß
Sascha
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: KölnSolar am 23 September 2017, 22:06:03
ZitatWenn du die Luft über den Schacht nach aussen pumps oder drückst, dann kannst du doch die Luft aus dem Wohnraum nachströmen lassen.
was aber vermutlich nichts bringt, weil der Keller vermutlich viel kälter ist  :(
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 23 September 2017, 22:08:36
In den nächsten 1-2 Jahren wird dort eine Luft-Wärmepumpe reinkommen. Ich denke ich werd auch erstmal die Wandtemperatur usw. erfassen und mal schauen was das script so ausspuckt und erstmal mit Tauspusten versuchen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 24 September 2017, 09:37:28
also Keller ist 20c bei 60% Luftfeuchte. Wand wird aber viel kälter sein. Kann es leider noch nicht messen. Im Wohnraum hinter der Tür hab ich 21c 62-66% derzeit. Also ob das so gut diese Luft da reizuziehen weiss ich auch nicht.
Andersrum drückt der Keller geruch durch die Tür in den Wohnraum hmmmmmmm
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 24 September 2017, 11:40:19
Dann einen Luftentfeuchter mit Kältemittelkompressor.

Gesendet von meinem SM-T560 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 24 September 2017, 18:54:50
Ja der ist für die Wohnung gedacht ;) Ich schau mal was ich es dort in den Griff bekomme dann wäre es auch nicht so schlimm diese Lust in den Keller zu ziehen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: KölnSolar am 25 September 2017, 06:32:48
60% dürften meiner Erfahrung nach noch nicht riechen. Vielleicht wirklich die viel kälteren Wände ? Der Abluftschacht ist ja hoffentlich innenliegend, sonst würde dort ja schon die Luftfeuchte in Wasser übergehen, also auskondensieren  :(

Die Luft im Wohnraum zu trocknen, dann in den Keller zu saugen und über den Schacht auszublasen, halte ich für eine schlechte Idee. Energie fürs Trocknen und Heizen in die Luft stecken und dann rauspusten ? Viel Umwelt- u. Geldbeutelbelastung zur Symptombekämpfung  >:(

Ich würde mich daher erst einmal auf den Wohnraum konzentrieren. Wieso schaffst Du es nicht die Luftfeuchtigkeit durch einfaches Lüften zu senken ? Aufsteigende Feuchtigkeit im Mauerwerk ? Sonstige Bauschäden/-mängel ? Beachtest Du (möglichst) nur zu lüften, wenn draußen weniger Wasser in der Luft ist als drinnen(Vergleich von Taupunkttemperaturen) ?

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 25 September 2017, 09:12:13
Hi also der Schacht geht durch die außenwand nach draußen. Dort hängt auch viek Kondenzwasser. Auch an den Kabeln an der Decke. Den Keller bekommt man eh nicht trockken aber durch die Türe zieht der Kellermuff immer in dasHaus. Wenn Kamin oder Abzugshaube an ist. Will die Tür auch nicht ganz abdichten da sonst das Problem noch größer wird?

Wohne erst 1-2 Monate hier und hab Aufsteigende Feuchtigkeit im Mauerwerk... Wird erst nächtes Jahr angegangen das Thena. Heizung läuft auch erst nächste Woche. Daher ist unklar ob Heizen und Lüften klappt.

Hab die Formel und Prüfungen vom ersten Post. Die genaue Wandtemperatur beobachte ich noch. Da die Wände zu 1/4 im Erdreich sind ... derzeit grob Raum 20c Wand 15c.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Der_müde_Joe am 28 September 2017, 21:58:43
Hallo,

ich würde nun auch gerne auf den Lüftungszug aufspringen. Dazu habe ich mir einen Winmatic und einen Luftentfeuchter gekauft Leider klappt da irgendwas noch nicht so, wie ich es gerne hätte. Könnte sich jemand mal meine userReadings ansehen und sagen, wo der Fehler ist? Ich hänge auch noch meine myutils an und ein Ergebnis der Readings.


lueftenMoeglich {(ReadingsVal("K2_TF","humidity","N/A") >(shiftRelHumidity(ReadingsVal("KS300","temperature","30"),ReadingsVal("KS300","humidity","100"), ReadingsVal("K2_TF","temperature","N/A") )+3))?"ja":"nein" }, \
wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68)) }, \
wandHumidity { sprintf("%.1f", shiftRelHumidity( ReadingsVal("K2_TF","temperature",17), ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp( ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0), 0.68) ) ) }, \
wallSurfaceTemp( ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0), 0.68) ) ) }, \
aussenHumidityEqInnen {sprintf("%.1f",shiftRelHumidity(ReadingsVal("KS300","temperature","30"),ReadingsVal("KS300","humidity","100"), ReadingsVal("K2_TF","temperature","N/A")))}, \
schimmelfreiMaxHum { sprintf("%.1f",schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68))) }, \
schimmelGefahr {(shiftRelHumidity(ReadingsVal("K2_TF","temperature",17),ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0),0.68))>schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68))?"ja":"nein")}, \


Hier nun mal die myutils:


##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.

sub shiftRelHumidity($$$)
# Uses a pair of relative humidity and temperature ($r1, $T1) to calculate the relative
# humidity on spots with same absolute humidity of the air but different temperature $T2.
#
# Useful to calculate the relative humidity near the surface of cold walls. Therefore, use the rel.
# humidity of the room ($r1 in percent), the room Temperature ($T2 in degrees of C) and the temperature
# of the surface of the wall ($T2 in degrees of C). Returns the rel. humidity on the surface in pct then.
{
  my ($T1, $r1, $T2) = @_;
  my $r2 =  ($r1 * 10**((7.62*$T1)/(234.175+$T1))*(273.15+$T2)) / ( 10**((7.62*$T2)/(234.175+$T2))*(273.15+$T1));
  return $r2;
}

sub schimmelfreiMaxHum($)
# Maximal erlaubte relative Luftfeuchte (in 0...100%) in Oberflächennähe, so dass kein Schimmel-Myzelwachstum
# Auftritt. Annahme: optimales Substrat und Myzelwachstum und Sporenwachstum für alle im
# Bau auftretenden Pilze unterbunden, d.h. keine biol. Aktivität.
# Parameter: Temp. der Oberfläche in Grad Celsius
#
{
  my ($Temp) = @_;
  if ($Temp <= 0) {return 100;}
  my $rHmax = 70+20.1*(0.87**$Temp);
  return $rHmax;
}

sub schimmelfreiMinTemp($$$) {
# Liefert die minimale Temperatur, bei der es - ausgehend von der aktuellen Luftfeuchte im Raum - nicht schimmeln würde.
# Liegt die kälteste Stelle im Raum darüber, besteht keine Schimmelgefahr.
# Liegt die kälteste Stelle im Raum darunter, müsste diese auf die errechnete Temperatur erwärmt werden, so dass es nicht schimmelt.
# Parameter:
# $curTemp - Aktuelle Raumtemperatur in Grad C
# $curHum - Aktuelle rel. Luftfeuchte im Raum in %rH
# $tempLimit (optional) - max. Temperatur, die die Funktion zurückliefert (falls der Rückgabewert z.B. als Heiz-Solltemperatur dient)
  my ($curTemp,$curHum,$tempLimit) = @_;

  if (!$tempLimit) {$tempLimit = 100;}

  my $testT=0;
  my $schimmelFrei = 0;
  while ($testT < $tempLimit && !$schimmelFrei) {

     $schimmelFrei = (shiftRelHumidity($curTemp, $curHum, $testT) < schimmelfreiMaxHum($testT));
     
     $testT+=0.1;
  }
  return $testT;
}

sub wallSurfaceTemp($$$)
# Estimates the temperature of the inner wall surface given the outside Temperature in degrees of C as $Tinside,
# the outdoor-temperature $Toutside in degrees of C and an insulation Factor $Kinsulation with K = 1 (theoretical perfect insulation, e.g. vacuum) and
# K = 0 (no insulation at all, means: less than a sheet of paper). You have to calculate K on your own by measuring inside-, outside-, and wall-temperature,
# preferably by averaging multiple measurements on cold days with constant heating of the room.
{
  my ($Tinside, $Toutside, $Kinsulation) = @_;
  my $Tsurface =  ($Tinside * $Kinsulation) + ($Toutside * (1 - $Kinsulation));
  return $Tsurface;
}


Und das Problem ist, dass ich im Reading WandTemp nur ein Ergebnis bekomme, wenn es ganz allein im UserReading steht und bei wandhumidity folgende Fehlermeldung erhalte:


Error evaluating K2_TF userReading wandHumidity: syntax error at (eval 334984) line 2, near ") ) " Unmatched right curly bracket at (eval 334984) line 2, at end of line


Und irgendwie raffe ich das nicht. Vielleicht hat ja einer vn euch eine Idee
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 30 September 2017, 13:39:56
Das löst vielleicht nicht dein Problem, aber folgende Dinge sind mir auf die Schnelle aufgefallen. Deine Userreadings sollten vielleicht gefiltert werden, wenn in deinem Device mehrere Dinge geupdatet werden. Sonst wird jede der Funktionen mehrmals ausgeführt. Beispiel: dein Device hat Feuchtigkeit und Temperatur und beide werden geupdatet, dann werden auch deine userreading funktionen 2x aufgerufen. Ich habe das so behoben:

schimmelFreiMinTemperature:corrHumidity.*

Dann sind bei einigen der Funktionen (Zeile 1 und 5) der Defaultwert mit "N/A" oder "30" angegeben (3ter Wert bei ReadingsVal). Das wird dann als String behandelt und macht Probleme, insbesondere wenn du dann Operationen wie > verwendest. Ich habe N/A durch eine Zahl ersetzt und "" bei den Zahlen entfernt.

Ansonsten installier dir mal notepad++ auf deinem Rechner, kopiere die einzelnen Zeilen da rein und schau dir ganz genau die Klammerung an.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 30 September 2017, 13:48:30
Falls sich noch jemand aus der Temperatur und der relativen Feuchtigkeit die absolute Feuchtigkeit ausrechnen möchte, dann wäre das eine der möglichen Formeln dazu.

sub absHumidity($$)
{
  my ($curTemp,$curHum) = @_;
  return (6.112 * exp(1)**((17.67 * $curTemp)/($curTemp + 243.5)) * $curHum * 18.02) / ((273.15 + $curTemp) * 100.0 * 0.08314);
}


Daraus ergibt sich dann:

Lüften möglich wenn absolute Feuchtigkeit innen größer ist als außen. Im anderen Fall sollte man die Fenster eher geschlossen halten.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Patrik.S am 04 Oktober 2017, 00:27:02
@ChrisW:
Den Thread will ich eigentlich nicht missbrauchen, da schon OT aber hier meine Antwort zu deinem Keller.
Deinen 6m² Gewölbekeller musst Du belüften und um mit der Temperatur nicht ins Bodenlose zu fallen und dann erst Recht den Taupunkt zu unterschreiten, über einen Wärmetauscher die Wärme zurückgewinnen.
Die Ab- und Zuluft muss direkt von aussen kommen, da Du einen Schacht 30cm x 30cm hast, kannst Du da locker zwei DN 100 Rohre reinlegen und nach aussen führen.
Der Schacht muss aber zwingend von aussen Luftdicht sein, so das nur die Luft aus den Rohren raus/rein geht.

ZitatDen Keller bekommt man eh nicht trockken aber durch die Türe zieht der Kellermuff immer in dasHaus. Wenn Kamin oder Abzugshaube an ist.

Ein Kamin zieht richtig viel Luft wenn er bollert und eine Abzugshaube mit Aussenrohr auch einiges. Mindestens bei Neubauten macht mittlerweile der Schornsteinfeger Auflagen oder verlangt bestimmte Vorrichtungen.
Den Kamin an und dann noch die Abzugshaube auf Volldampf beim kochen zieht die ganzen Kamin Abgase IN das Haus, wenn es keine Zwangs Zuluft gibt! Viel Spass mit Kohlenmonoxid.

Ich habe ein 100 Jahre altes Haus mit einem 75m² Kalt-Keller mit schlechter und sehr dünner Bodenplatte (3 - 5 cm). Wenn es mal lange richtig ordentlich regnet gab es immer leichte Flecken auf dem Kellerfußboden.
Ich wollte sowieso mal meinen Selbstbau Wärmetauscher vorstellen, da sicher anderes auch soetwas brauchen und nicht alle Fehler selbst machen müssen.
Diese ganze Wärmetauscher Belüftungsanlage ist bei mir nur für den Keller und nicht wie im Neubau für's ganze Hause.
Ich habe mir einen kompletten Wärmetauscher selber gebaut. Das Gehäuse selber konstruiert und dann die Platten online als U Formen bestellt und vernietet, den Plattenwärmetauscher von der Firma Klingenburg gekauft und die Rohr Lüftungsventilatoren von Helios.
Je zwei Filtergehäuse an den Rohranfängen um zuerst mit einen Grobfilter und dann einen F7 Feinfilter die Luft zu reinigen bevor Sie durch die Rohre zum Wärmetauscher gehen
Viele Meter DN 100 HT Rohr und auch viele Meter Wärmeisolierung für die DN 100 Rohre die zwischen Aussen und dem Wärmetauscher verlaufen, weil sonst Kondenzwasser daran sein würde. Die innen liegenden Rohre nach dem Wärmetauscher brauchen keine Isolierung.
Nachträglich je einen 1 Meter Schalldämpfer vor die Rohrventilatoren gesetzt, da war sonst ein ständiges Turbinenbrummen selbt im Erdgeschoss zu hören.
Die 100 x 100 cm Wärmetauscher hatten das Stück 52,- EUR plus Versand gekostet (direkt vom Hersteller). Im nächsten Leben würde ich nicht 2 hintereinanderschalten, sondern einen großen 200 x 200 cm nehmen. Aber auch nur weil dann das Gehäuse leichter zu bauen ist. Ansonsten glaube ich noch heute, mit meiner "Serienschaltung" eine leicht bessere Effizienz zu erzielen.

Im Sommer muss ich aber mit einem Luftentfeuchter arbeiten, das geht leider nicht anders vom Feuchteeintrag her. Ich hoffe wenn in X Jahren der komplette Kellerfußboden neu gemacht wurde, ist der dicht und Ruhe im Keller.

Mittlerweile habe ich auch 2 Heizkörper im Keller, die zumindest eine Mindesttemperatur garantieren.
Der Wärmetauscher läuft ab Null Grad und niedriger auf sehr geringem Durchsatz und so komme ich über den Winter hinweg im kältesten Raum auf ca. 17°C mit ca 60% rel. LF (Ohne Heizkörper waren es vorher 15 °C).
Da kein Waschbecken in der Nähe steht, sammle ich das Wasser unter dem Wärmetauscher den Winter über in einem riesigen 30 Liter Tapetenkleister Eimer und sehe somit was auskondensiert und nicht rausgepustet wird. (Der Luftentfeuchter hatte vorher sein 3 Liter Gefäß in max. 2 Tagen voll gehabt und ist jetzt mit einem Ablaufschlauch verbunden.)

Falls Interesse besteht, kann ich das gesamte Projekt ja mal mit Bildern dokumentieren.

P.S.
Kellermuff ist nicht gleich Kellermuff.
Um hier noch mehr abzudriften, unser Kellermuff hat sich im Nachhinein als ganz leichte undichte Erdgasleitung entpuppt. Seit der Erneuerung ist der Kellermuff weg.
Es war nicht der trotzdem feuchte Keller.
Der Schornsteinfeger hatte es bei seiner jährlichen Messung nie bemerkt, obwohl in der Rechnung steht "Rohrleitung geprüft", erst die Gaswerke haben es gemessen. Das ist aber eine andere Story gewesen und bei diesem Haus gibt es viele Stories .....  ;D
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: andies am 04 Oktober 2017, 06:49:11
Es gibt doch einen Projektthread, kannst du das da nicht hineinstellen? Gibt bestimmt Interessenten.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: ChrisW am 04 Oktober 2017, 07:35:20
Cool wobei der Keller ruhig feucht sein kann ;) Da kann nicht mehr viel "kkaputt" gehen. Will halt nur den Geruch raus bekommen. Aber wenn ich die Tür dicht mache dann kann man den Keller fast gar nicht mehr betreten ;) Werd die Tür Dicht machen und je nach dem Rein/Raus Pusten  bzw. 2 Rohre machen
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: KölnSolar am 04 Oktober 2017, 09:02:58
@Patrick.S
ZitatFalls Interesse besteht, kann ich das gesamte Projekt ja mal mit Bildern dokumentieren.
Bitte, bitte, bitte..... Höchst interessant. Insbesondere Details zu den Lüftern u. Wärmetauschern(ich wollt immer mal welche aus ner alten Gastherme oder Autokühler für Luft-Wasser-Tauschung ausprobieren).
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Patrik.S am 04 Oktober 2017, 22:41:07
Done! https://forum.fhem.de/index.php/topic,77548.0.html (https://forum.fhem.de/index.php/topic,77548.0.html)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Der_müde_Joe am 19 Oktober 2017, 11:57:19
Hallo,

ich habe ein Problem mit dem all in one reading aus dem ersten Beitrag. Da steht folgendes:

schimmelGefahr {(shiftRelHumidity(ReadingsVal("Raumthermometer","temperature",17),ReadingsVal("Raumhygromometer","humidity",90), wallSurfaceTemp(ReadingsVal("Raumthermometer","temperature",15), ReadingsVal("Aussenthermometer","temperature",0),0.68))>schimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("Raumthermometer","temperature",15),ReadingsVal("Aussenthermometer","temperature",0),0.68))?"ja":"nein")}

Ich bekomme jedoch immer die Meldung:

Error evaluating K2_TF userReading schimmelGefahr: Undefined subroutine &main::schlimmelfreiMaxHum called at (eval 310623) line 1.

Kann mir da jemand helfen?

Danke Joe
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: sash.sc am 19 Oktober 2017, 12:07:17
Hast du die subroutinen in der myutils angelegt?

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Der_müde_Joe am 19 Oktober 2017, 12:41:52
Also ich denke schon, dass ich das richtig eingetragen habe.

Oben habe ich ja nur die Zeile aus dem ersten Beitrag kopiert. Mein komplettes UserReading schaut so aus:

lueftenMoeglich {(ReadingsVal("K2_TF","humidity","N/A") >(shiftRelHumidity(ReadingsVal("KS300","temperature","30"),ReadingsVal("KS300","humidity","100"), ReadingsVal("K2_TF","temperature","N/A") )+3))?"ja":"nein" }, wandTemp { sprintf("%.1f", wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68)) }, wandHumidity { sprintf("%.1f", shiftRelHumidity( ReadingsVal("K2_TF","temperature",17), ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp( ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0), 0.68) ) ) }, schimmelGefahr {(shiftRelHumidity(ReadingsVal("K2_TF","temperature",17),ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0),0.68))>schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68))?"ja":"nein")}

Wobei eben alles geht, bis auf die Schimmelgefahr mit der oben genannten Fehlermeldung.

Hier nochmal nur das Reading für die Schimmelgefahr, damit es besser lesbar ist:
schimmelGefahr {(shiftRelHumidity(ReadingsVal("K2_TF","temperature",17),ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0),0.68))>schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68))?"ja":"nein")}
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: devo am 19 Oktober 2017, 13:07:43
Hallo, siehe dir bitte noch einmal genau deine Fehlermeldung an!
ZitatError evaluating K2_TF userReading schimmelGefahr: Undefined subroutine &main::schlimmelfreiMaxHum called at (eval 310623) line 1.
laut Fehlermeldung lautet deine subroutine schlimmelfreiMaxHum
In dem Beitrag #101 lautet die subroutine aber sub schimmelfreiMaxHum($)
Also schlimmelfrei <> schimmelfrei.

Viele Grüße von Detlev
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Der_müde_Joe am 19 Oktober 2017, 14:24:09
Hallo Detlev,

danke für die Hilfe nun geht es. Kann das vielleicht dann ein moderator in diesem beitrag ebenfalls ändern, um zukünftige Probleme zu vermeiden?

https://forum.fhem.de/index.php/topic,29773.msg563565.html#msg563565

Vielen vielen Dank

Jens
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 19 Oktober 2017, 15:20:34
Argh, sorry für dieses blöde "L" - das war mein Fehler am Anfang, den mir irgendeine Autokorrektur eingebrockt hatte. In den Beiträgen von anderen, wo die alte, falsche Version zitiert wurde, kann ich es aber leider nicht korrigieren, also am besten aus dem ersten Post des Threads alles rauskopieren ;(
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Der_müde_Joe am 21 Oktober 2017, 16:08:18
Moin,

ist ja soweit kein Problem. Die Lösung war ja zu finden und wer in diesen Tread schaut, findet nun ja auch alles was er braucht. Ich habe nun alles so eingebaunden, wie ich es mir für eine effiziente Lüftung vorstelle.

Hier mal meine Automatisierung. Als Hardware habe ich folgendes: Außenwetterstation KS300, Temperatur- Luftfeuchtesensor HMS100TF, Winmatic, Hmematic Zwischenstecker für einen Aktobis WDH-520HB Luftentfeuchter.

define K2.Lueften.Automatik DOIF ([K2_TF:schimmelGefahr] eq "ja" and [K2_TF:lueftenMoeglich] eq "ja")  (set K2_Fenster_02 level 100 ignore 20, set K2_Entfeuchter off) DOELSEIF ([K2_TF:schimmelGefahr] eq "nein" and [K2_TF:lueftenMoeglich] eq "nein") (set K2_Fenster_02 level 0 0 20, set K2_Entfeuchter off) DOELSEIF ([K2_TF:schimmelGefahr] eq "ja" and [K2_TF:lueftenMoeglich] eq "nein") (set K2_Fenster_02 level 0 0 20, set K2_Entfeuchter on) DOELSEIF ([K2_TF:schimmelGefahr] eq "nein" and [K2_TF:lueftenMoeglich] eq "ja") (set K2_Fenster_02 level 0 0 20, set K2_Entfeuchter off)
attr K2.Lueften.Automatik room Kind_2


Klappt soweit ich das bis jetzt beurteilen kann sehr gut. Nun müsste man noch die Heizung verbrauchsoptimiert und sinnvoll in das ganze integrieren... Das wird dann wohl der nächste Schritt.

Danke schonmal für eure Hilfe.

Lieben Gruß
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: cmonty14 am 23 Dezember 2020, 09:44:42
Hallo Peter,

vielen Dank für diese ausgezeichnete theoretische Einführung in das Thema "Richtiges Lüften".

Ich möchte die Theorie jetzt überführung in mein Praxis-Beispiel Bad mit ~5qm Fläche und ~12m^3 Raumvolumen.
In diesem Bad befindet sich 1 Fenster, 1 Lüfter (Abluftventilator) mit max. 118m^3/h, 1 Schalter mit Temperatur- und Feuchtigkeitssensor, 1 zusätzliche Sensor zur Ermittlung der Temperatur und Feuchtigkeit im Raum.
Meine Annahme ist, dass beide Sensoren die rel. Luftfeuchtigkeit messen.

Die Steuerung erhält die Werte der Aussentemperatur und rel. Luftfeuchtigkeit über Wetter-Services (z.B. OpenWeatherMap).

Die Steuerung soll jetzt folgende Aufgabe erfüllen:
1. Einschalten des Lüfters
2. Anzeige ob Lüften durch Fenster öffnen notwendig bzw. sinnvoll ist

Hier schließt sich die erste Frage an: Wann soll der Lüfter einschalten?
Soweit ich das verstanden habe ist es nicht ausreichend, die absolute Luftfeuchtigkeit von Raum mit Aussen zu vergleichen und den Abluftventilator einzuschalten, wenn die absolute Luftfeuchtigkeit Aussen kleiner ist.
Und muss hier berücksichtig werden, woher die Luft kommt, die im Bad ausgetauscht werden soll?
Im Bad kann diese Zuluft ja nur "passiv" über ein geöffnetes Fenster in einem anderen Raum oder, wenn kein Fenster geöffnet ist, aus der Luft der anderen (anliegenden) Räume erfolgen. Die Annahme hier ist, dass es nicht sinnvoll ist, das Badezimmer zu öffnen wenn gleichzeitig der Lüfter läuft.

Und dann stellt sich die Frage: Wie lang soll der Lüfter laufen?
Ist hier die Anwendung der einfache Gleichung Laufzeit = Raumvolumen / max. Abluftleistung sinnvoll?


THX
Thomas
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 24 Dezember 2020, 00:48:28
Ich habe beides am Laufen. Sowohl die hier beschriebenen Formeln, als auch die absolute Luftfeuchte innen und außen. Für mein Empfinden läuft beides aufs selbe hinaus. Ich gucke z.b. auf die relative Feuchtigkeit im Raum und mache nichts solange sie unter 55% liegt. Wenn sie darüber liegt und die absolute Feuchtigkeit innen höher als außen ist (der Unterschied sollte signifikant sein, sonst lohnt es nicht) wird zyklisch eine Lüftungsempfehlung über Lautsprecher ausgegeben. Wenn jemand ein Fenster öffnet und die absolute Feuchte ist außen höher als innen und innen liegt die rel. Feuchte über 55% wird eine Warnung über Lautsprecher ausgegeben.
In meinem Bad läuft ein geschlossenes System. Der Abluftlüfter hat 2 Stufen. Stufe 1 läuft immer. Stufe 2 wird aktiv, wenn Das Licht für mind. 45s angeschaltet ist und der Lüfter läuft 20min nach auf der hohen Stufe. Darüber hinaus hat der Lüfter einen eigenen Feuchtigkeitssensor und schaltet automatisch auf Stufe 2, wenn diese 55% übersteigt. Damit fahre ich im Bad (das kein eigenes Fenster besitzt) seit Jahren gut.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 24 Dezember 2020, 11:00:48
Zitat von: cmonty14 am 23 Dezember 2020, 09:44:42
Hier schließt sich die erste Frage an: Wann soll der Lüfter einschalten?
Soweit ich das verstanden habe ist es nicht ausreichend, die absolute Luftfeuchtigkeit von Raum mit Aussen zu vergleichen und den Abluftventilator einzuschalten, wenn die absolute Luftfeuchtigkeit Aussen kleiner ist.
Und muss hier berücksichtig werden, woher die Luft kommt, die im Bad ausgetauscht werden soll?
Im Bad kann diese Zuluft ja nur "passiv" über ein geöffnetes Fenster in einem anderen Raum oder, wenn kein Fenster geöffnet ist, aus der Luft der anderen (anliegenden) Räume erfolgen. Die Annahme hier ist, dass es nicht sinnvoll ist, das Badezimmer zu öffnen wenn gleichzeitig der Lüfter läuft.

Ja, genau richtig beobachtet. Du musst natürlich davon ausgehen, dass der Lüfter kaum Außenluft, sondern eher die Luft aus dem Raum vor dem Bad ansaugt (es sei denn du hast sehr alte, undichte Fenster im Bad). Hier kann die Luft natürlich z.B. schon viel feuchter sein als die Außenluft. Das heißt, eine gute Näherung wäre zu prüfen ob die rel. Luftfeuchte vor dem Bad kleiner ist als im Bad - dann bringt der Lüfter etwas. Da das Bad aber meistens eine andere Temperatur hat als z.B. ein Flur davor, kannst du dir mit meiner Funktion auch ausrechnen, wie hoch die rel. Luftfeuchte der Flurluft im Bad wäre:

{shiftRelHumidity(ReadingsVal("ThermometerVorBad","temperature",""),ReadingsVal("ThemometerVorBad","humidity",""),ReadingsVal("ThermometerImBad","temperature",""))}


Natürlich kannst du auch die absolute Feuchte vor dem Bad mit der im Bad vergleichen. Wie mumpitzstuff richtig schrieb, ist das im Prinzip das gleiche, nur sind es andere Einheiten, mit denen man wie ich finde nicht so schön was anfangen kann (z.B. zeigt die kein Wandthermostat direkt an und das Schimmelwachstum hängt auch nicht direkt davon ab, sondern von der rel. Luftfeuchte).

Diesen Vergleich gilt es bei dir dann immer zu tun, wenn das Fenster zu ist. Es ergäbe sich also folgende Bedingung für den Lüfter:

IF (Fenster zu) UND (Schimmelgefahr, wie im Ausgangsposting beschrieben) UND (Badfeuchte > Flurfeuchte, wie oben beschrieben) --> Lüfter an
ELSE --> Lüfter aus

Bevorzugt sollte man natürlich Lüften, dann kommt die frische Luft direkt dorthin wo sie soll und nicht durch irgendwelche Ritzen im Haus quer durch alle Räume.. Die Bedingung für eine Meldung, bitte das Fenster zu öffnen, findest du auch im Ausgangsposting - die hängt ja bei dir auch nur von der Außenluft ab.


ZitatUnd dann stellt sich die Frage: Wie lang soll der Lüfter laufen?
Ist hier die Anwendung der einfache Gleichung Laufzeit = Raumvolumen / max. Abluftleistung sinnvoll?

Diese Formel ist gerade in Feuchträumen ziemlich unsinnig, denn sowohl z.B. an der Wand der Dusche/Badewanne als auch in Handtüchern bleibt nach der Benutzung massig Feuchtigkeit, die erstmal noch komplett verdunstet. Mach es über mein Schimmelgefahr-Reading aus dem Ausgangspost und steuere danach den Lüfter, ist viel genauer.

ZitatWenn jemand ein Fenster öffnet und die absolute Feuchte ist außen höher als innen und innen liegt die rel. Feuchte über 55% wird eine Warnung über Lautsprecher ausgegeben.

Die 55% sind aber gerade im Sommer manchmal nicht zu schaffen. Ich würde, bei entsprechend vorhandener Sensorik, das schon adaptiv und dadurch etwas sparsamer machen - siehe Ausgangsposting. Die 55% findet man in der Literatur oft, aber das ist n pauschaler Behelfswert der viele vereinfachende Annahmen macht, die ein FHEMler eigentlich nicht machen muss ;-)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: cmonty14 am 24 Dezember 2020, 23:46:32
Hallo,

zunächst vielen Dank für die Antworten.

Im initialen Posting finde ich dieses Coding:
lueftenMoeglich {(ReadingsVal("Raumhygromometer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenthermometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A") )+3))?"ja":"nein" }

Könntest du bitte dieses Coding erläutern?
Ich kann es nicht richtig interpretieren und möchte es nicht einfach abtippen bevor ich es anwende.

THX
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 25 Dezember 2020, 18:52:38
Hier wird die relative Luftfeuchte innen (Device Raumhygrometer, Reading humidity) mit der theoretischen Luftfeuchte verglichen, die die Außenluft drinnen jetzt gerade hätte (shiftRelHumidity(...)) - dabei wird berücksichtigt, dass die reingelassene Außenluft auf Raumtemperatur erwärmt oder abgekühlt wird (Device Raumthermometer, Reading temperature) und sich dabei ihre relative Luftfeuchte ändert.

Ist diese gedachte relative Luftfeuchte der Außenluft bei Raumtemperatur kleiner als die aktuelle Raumluftfeuchte, ergibt die umschließende Bedingung ,,Ja, Lüften ist möglich". Dabei wird eine Messungenauigkeit von 2*1,5% rH angenommen, was der typischer elektronischer Hygrometer entspricht (daher die + 3).

Das ist im Prinzip genau das gleiche wie der Vergleich der absoluten Luftfeuchte innen und außen, nur in anderen Einheiten.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: bismosa am 13 Januar 2021, 15:11:39
Hallo!

Vielen Dank für die Aufarbeitung und die Formeln! Finde ich sehr hilfreich, auch wenn ich jetzt nicht so tief eingestiegen bin.
Ich habe das nun alles übernommen und möchte im Waschraum (Keller) eine Lüftungsempfehlung.
Ich habe gestern an der Wand etwas Schimmel entdeckt...und gelüftet wird dort immer wieder falsch.
Also reicht ja eigentlich ein simples DOIF:

( [MQTT2_zigbee_Temp_Waschraum:schimmelGefahr] eq "ja"
and [MQTT2_zigbee_Temp_Waschraum:lueftenMoeglich] eq "ja"
and [Fenster_Keller_Waschraum] eq "Zu"
)(Alarm("Fenster öffnen"))
DOELSEIF (
[MQTT2_zigbee_Temp_Waschraum:lueftenMoeglich] eq "nein"
and [Fenster_Keller_Waschraum] eq "Offen"
)
(
(Alarm("Fenster schließen"))
)

Oder habe ich das falsch verstanden?
Wo ist der Unterschied zwischen "lueftenMoeglich" und dem DOIF:

define di_bad.luftentfeuchter DOIF ([bad.thermometer:wandHumidity] > ([bad.thermometer:schimmelfreiMaxHum] + 3)) (set bad.luftentfeuchter_Sw on) DOELSEIF ([bad.thermometer:wandHumidity] < [bad.thermometer:schimmelfreiMaxHum]) (set bad.luftentfeuchter_Sw off)

lueftenMoeglich {(ReadingsVal("Raumhygromometer","humidity","N/A") >(shiftRelHumidity(ReadingsVal("Aussenthermometer","temperature","30"),ReadingsVal("Aussenthermometer","humidity","100"), ReadingsVal("Raumthermometer","temperature","N/A") )+3))?"ja":"nein" }

Wenn ich es richtig verstehe, wird ja beim "lueftenMoeglich" nicht die Wandtemperatur berücksichtigt?

Danke!

Gruß
Bismosa
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 13 Januar 2021, 22:52:37
Hi bismosa,

das Userreading lueftenMoeglich prüft nur, ob die Luft, die grad reinkommen würde, trockener ist als die, die schon im Raum ist. Es wird quasi ausgerechnet, welche relative Luftfeuchte die Außenluft bei deiner aktuellen Raumtemperatur haben würde - und wenn das niedriger ist als die tatsächlich im Raum gemessene relative Luftfeuchte, dann ist "Lüften möglich". Ist das gleiche wie der Vergleich der absoluten Luftfeuchtigkeit innen und außen, nur kann man so sehr nett Toleranzen / Messungenauigkeiten in der Einheit %rH (statt in g/qm oder so bei absoluter Luftfeuchte) einbauen.

Das DOIF di_bad.luftentfeuchter macht was ganz anderes, das ist unabhängig von der Außenluft und steuert einen Kompressor-Luftentfeuchter, der nur umwälzt und Wasser rauszieht. Der soll ausgehen, wenn die kälteste Stelle im Raum trocken genug ist - dafür brauchst du dann natürlich die Wandtemperatur.

Dein DOIF sieht soweit ich das überblicken kann gut aus!

LG Peter
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: bismosa am 14 Januar 2021, 12:35:53
Hallo!

Ich glaube ich habe es nun verstanden  :) Danke für die Erklärung.
Dann werde ich mir jetzt Gedanken machen, ob ich einen Lüfter oder einen Fensteröffner einbaue um die Feuchtigkeit aus dem Raum zu bekommen  :)

Gruß
Bismosa
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mumpitzstuff am 14 Januar 2021, 13:12:35
Zumindest bei mir hilft vor allem im Frühjahr/Sommer oft nur noch ein Entfeuchter. Die Luftfeuchtigkeit ist draussen einfach so hoch, dass ich die Feuchtigkeit in der Wohnung nicht mehr nur durch Lüften auf ein unbedenkliches Niveau runter bekomme. Ein Lüfter oder Fensteröffner würde aber eine geringere äußere Luftfeuchtigkeit benötigen. Bevor du also große Investitionen tätigst, solltest du dir das Ganze mal im Sommer ansehen.

PS: Ich habe weiterhin festgestellt, das die absolute Luftfeuchtigkeit in Bodennähe höher ist als z.b. auf einem Sideboard in 1m Höhe (liegt auch vielleicht an der Deckenhöhe von über 3m bei mir). Zumindest bei mir ist deshalb auch die Höhe entscheidend, in der das Messgerät steht.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: bismosa am 14 Januar 2021, 14:44:28
Hallo!

Danke für den Tipp. Ich sehe das aber eher unkritisch. Insgesamt ist alles trocken...außer in den Feuchträumen (Bad, Waschraum im Keller).
Gerade im Keller wird nicht gerne gelüftet...da es ja eh schon recht kühl ist. Dann läuft da auch noch ständig der Trockner und sorgt für zusätzliche Feuchtigkeit...
Da macht es dann schon Sinn, wenn man eine Automatik einbaut.
Viel investieren möchte ich da nicht...vermutlich reicht eine selbst gedruckte Variante schon aus:
https://pinshape.com/items/21306-3d-printed-window-opener
Da fehlt dann nur noch die Ansteuerung...könnte also ein größeres Projekt werden.  :)

Gruß
Bismosa

Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 14 Januar 2021, 23:48:55
bismosa, klingt nach einem betagten Kondenstrockner der ordentlich Wasser in den Raum leakt? Dann könnte es in deinem Raum langfristig wesentlich wirtschaftlicher sein, den gegen einen modernen mit Wärmepumpe zu tauschen, als in eine (im Winter auskühlende und im Sommer oft nutzlose) Zwangslüftung zu investieren. Feuchte, die gar nicht erst entsteht, musst du nicht energieaufwändig wieder rausbefördern. Und die nebenbei erheblichen gesparten Trockner-Energiekosten kannst du dann, falls überhaupt noch nötig, in den Betrieb eines Raumluftentfeuchters investieren. Einen kalten Keller zu lüften ist in D leider die meiste Zeit des Jahres nicht sonderlich hilfreich, da schließe ich mich mumpitzstuff an ;-(
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: bismosa am 15 Januar 2021, 07:40:33
Hallo!

Nein, wir haben schon einen Wärmepumpentrockner. Trotzdem wird es in dem Raum bei Benutzung immer "Feuch-Warm".
Ob die Feuchtigkeit aus dem Trockner (darf ja eigentlich nicht) oder aus der generell erwärmten Kellerluft kommt...keine Ahnung.
Ich vermute aber eher letzteres. Gelegentlich werden in dem Raum auch einzelne Wäschestücke an der Luft getrocknet.
Messergebnisse habe ich noch nicht (Sensor gerade erst in den Raum gehängt, damit ich die Lüftungsempfehlung bekomme)

Richtig lüften und Heizen...ja eine Wissenschaft  :) Aber dank der Formeln und Ausarbeitung hier und die Lüftungsempfehlung die sich daraus ergibt wesentlich einfacher! Danke!

Gruß
Bismsoa
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 16 Januar 2021, 12:44:35
Hallo Peter,

vielen Dank für die ausführliche Beschreibung und die Skripte hier, echt super   8)

Ich hab mal eine Frage: Ich habe dein Skript calcLueftungsStates für die Auswertung verwendet und für mich angepasst, da ich keine Luftgütesensoren habe habe ich den Teil entfernt. Habe nun aber das Problem das er das schliessenEmpfohlen irgendwie zur Zeit nicht richtig setzt. Habe Hier mal einen Auszug aus meinem Skript:

      my $schliessenEmpfohlen;

        if ($luftfeuchteSchliessenEmpfohlen && $tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = "true";
        } elsif (!$luftfeuchteSchliessenEmpfohlen && !$tempSchliessenEmpfohlen) {
          $schliessenEmpfohlen = "false";
        } else {
          if (!$luftfeuchteOeffnenEmpfohlen && !$tempOeffnenEmpfohlen) {
            $schliessenEmpfohlen = "true";
          } else {
            if (     ($luftfeuchteSchliessenEmpfohlen && ($heizModus eq "Heizen"))
                  || ($tempSchliessenEmpfohlen && ($heizModus eq "Kühlen"))
            ) {
              $schliessenEmpfohlen = "true";
            } else {
              $schliessenEmpfohlen = "false";
            }
          }
        }

      my $oeffnenEmpfohlen = (($luftfeuchteOeffnenEmpfohlen || $tempOeffnenEmpfohlen) && !$schliessenEmpfohlen);


Wie gesagt ich habe lediglich die if-else Abfrage für die Luftgüte entfernt, der Rest ist unberührt geblieben.

Meine aktuellen Werte die für das Skript wichtig sind lauten:

luftfeuchteSchliessenEmpfohlen = nein
tempSchliessenEmpfohlen = ja
luftfeuchteOeffnenEmpfohlen = ja
tempOeffnenEmpfohlen = nein
heizModus = Heizen


Eigentlich gehe ich davon aus das die Variable schliessenEmpfohlen "nein" sein sollte, ist sie aber leider nicht.

Hab ich da einen Denkfehler oder ist da was in der if-else Bedingung falsch?

Gruß

Markus
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 16 Januar 2021, 19:55:15
Hi Markus,

mach mal die Anführungszeichen um true und false überall weg, da hier am Ende in meinem Skript true bzw. false im Sinne von 0 und 1 benötigt wird und nicht der Text. Das sollte es dann schon gewesen sein :-)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 16 Januar 2021, 22:37:04
Hallo Peter,

danke für die Antwort, hatte ich als erstes so (ist ja auch im Original so von dir), da bekomme ich aber die Fehlermeldung


ERROR:
Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 216. Bareword "false" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 216. Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 221. Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 224. Bareword "false" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 229.


Das sind genau diese 5 Zeilen des Skripts, deshalb habe ich das so probiert. Hast aber recht, wenn es in "" geschrieben ist zählt es ja als Text und nicht als Zahl. Hast du da ne Idee wo hier der Fehler liegt?
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 16 Januar 2021, 22:41:31
Zitat von: meier81 am 16 Januar 2021, 22:37:04
Hallo Peter,

danke für die Antwort, hatte ich als erstes so (ist ja auch im Original so von dir), da bekomme ich aber die Fehlermeldung


ERROR:
Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 216. Bareword "false" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 216. Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 221. Bareword "true" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 224. Bareword "false" not allowed while "strict subs" in use at ./FHEM/99_myUtils.pm line 229.


Das sind genau diese 5 Zeilen des Skripts, deshalb habe ich das so probiert. Hast aber recht, wenn es in "" geschrieben ist zählt es ja als Text und nicht als Zahl. Hast du da ne Idee wo hier der Fehler liegt?

Hab es eben rausgefunden, ich muss anstatt true und false einfach 1 und 0 verwenden, das geht einwandfrei   ;)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 16 Januar 2021, 22:59:52
Interessant, war mir bis eben nicht bekannt, dass true und false in Perl gar keine Standard-Bezeichner sind, da ich die schon seit jeher in der myUtils völlig selbstverständlich verwende ... In meiner historisch gewachsenen Haupt-FHEM-Installation scheint also irgendwas das als Konstante anzulegen, denn in einer anderen, quasi ungenutzten bekomme ich den gleichen Fehler wie du :-) Nun ja, man lernt immer dazu ^^
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 16 Januar 2021, 23:34:08
Dachte ich auch, hab wieder was gelernt :)

Mal ne andere Frage, wie hast du denn dein Skript aufgerufen, du übergibst ja bei dem Aufruf $NAME und $EVENT. Hab das bei mir mal zum testen auf $device umgebaut, bin da aber noch nicht ganz zufrieden.
Vielleicht könnte ich mir deinen Aufruf da mal zu Hilfe nehmen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 17 Januar 2021, 15:50:35
Hallo Peter,

hab nochmal ne Frage bezüglich deiner Wandtemperaturbestimmung. Habe zur Zeit auch die Schätzung mit dem K-Faktor in Betrieb (jetzt erstmal zum testen, das Infrarotthermometer kommt morgen). Meine Frage wäre jetzt du hast ja auch die Ausführung beschrieben mittels Wandtemperaturmessung ohne den K-Faktor, finde ich gut, ich wollte mir jedoch nicht in jeden Raum einen Wandsensor einbauen. Ich hatte jetzt die Idee mir einen Sensor mit 2 Fühlern zuzulegen, z.B. https://de.elv.com/elv-homematic-ip-komplettbausatz-temperatursensor-mit-externen-fuehlern-2-fach-hmip-ste2-pcb-155614?fs=2810340986&c=690 (https://de.elv.com/elv-homematic-ip-komplettbausatz-temperatursensor-mit-externen-fuehlern-2-fach-hmip-ste2-pcb-155614?fs=2810340986&c=690). Dann würde ich mit einem Sensor die Wandtemperatur messen, mit dem anderen die Raumtemperatur in der Nähe des Wandfühlers. Das ganze würde ich als Referenz nehmen für deine Formel

K = (Oberflächentemperatur - Außentemperatur) / (Innentemperatur - Außentemperatur)

Die Außentemperatur bekomme ich von meiner Wetterstation. Damit könnte ich mir den K-Faktor berechnen und diesen dann für alle anderen Räume benutzen.

Meinst du das würde von Prinzip so funktionieren, das Mauerwerk bei mir ist soweit an allen Stellen gleich dick, ich würde trotzdem nochmal nachmessen ob es evtl. Stellen gibt die kühler wären wie mein Wandsensor.

Bezüglich meiner Frage von gestern wegen dem Aufruf des Skriptes, da hatte mich interessiert was du in den Variablen übergibst, ich denke bei $NAME wahrscheinlich deine Raumnamen, z.B. Wohnzimmer, Küche, etc. Mir ist nur nicht klar für was $EVENT ist, wird soweit ich erkennen kann nicht verwendet im Skript.

Gruß Markus
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 17 Januar 2021, 22:46:39
Hallo Markus,

die Funktion ist für einen Aufruf aus einem Notify geschrieben und $EVENT wird nach näherer Betrachtung gar nicht benutzt, es müsste mit also mit $device statt $name auch in einem DOIF klappen. Die Idee ist, dass du ein Gerät hast - z.B. der Wandthemostat - das die Temperatur sendet, auf die du dann mit einem Notify reagierst. In diesem Notify wird calcLuefungsStates aufgerufen und schreibt dann zusätzliche Readings in den Wandthermostaten. Bei mir sieht das so aus:

define n_wandthermostat_Weather_fenster notify .*\.(wandthermostat_Weather|fenster2?):.*(temperature|offen|geschlossen|open|closed).* {
  fhem("sleep 1;{calcLueftungsStates('$NAME','$EVENT')}");
  return;
}


Das sleep 1 führt dazu, dass die geänderten Readings auch Events auslösen und wieder andere Notifies triggern können.

ZitatDamit könnte ich mir den K-Faktor berechnen und diesen dann für alle anderen Räume benutzen.

Ja, damit könnte das ganz gut klappen. Ganz genau ist das aber naürlich nie. Für die K-Wert Berechnung über die Formel würde ich aber ab und an mal IR-Thermometer mit deinem Wandfühler vergleichen, wenn du eh beides hast. Denn ne Oberflächentemperatur mit nem Kontaktfühler zu messen ist tricky ;-)

Ich persönlich mache es so: Ich habe für zwei kritische Räume einen Wandtemperatursensor - das sind Bad und Schlafzimmer. Für alle anderen Räume mit Außenwänden (Küche, Wohnzimmer und Arbeitszimmer) verwende ich den gleichen K-Wert, den ich mal im Wohnzimmer ermittelt habe, da diese Räume baulich recht ähnlich sind. Nur im Schlafzimmer steht ein dicker Schrank an der Außenwand und wir heizen da auch weniger, daher hab ich hier die genauere Methode gewählt und an die per IR-Kamera bestimmte kälteste Stelle nen Sensor gepappt - und wegen des hohen Wassereintrages wollte ich es im Bad auch genauer wissen. Aber für die normalen Wohnräume begnüge ich mich mit dem einen Pi-Mal-Daumen-K, da wir hier sowieso selten in die schimmelkritischen Bereiche kommen.
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: meier81 am 19 Januar 2021, 18:21:05
Hallo Peter,

vielen Dank für deine ausführliche Erklärung. Ich werde mich die Tage mal dransetzen, heute ist mein IR-Thermometer gekommen, da kann das große Messen jetzt losgehen  ;).

Zudem werde ich mal den Sensor bestellen und das Skript anpassen, werde hier dann mal berichten.

Gruß Markus
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Murmelmann2203 am 23 März 2021, 10:12:11
Spannende Lösungen, die ihr habt! An unserem alten Wohnort hatten wir leider öfters Probleme mit dem Thema Schimmel, weshalb wir da jetzt in unserem Eigenheim natürlich drauf achten wollen. Die Unterstützung durch smarte Systeme ist da bestimmt hilfreich  8). Werde mich mal weiter einlesen und schauen, wie sich die Systeme bei uns am besten kombinieren lassen!
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: DerBaer am 04 April 2021, 10:13:40
TOP!

Vielen vielen Dank für die Mühe! Genau nach sowas hab ich gesucht!
Mein Problem is, das meine Eingangstür zur Wohnung in einem Treppenaufgang ist der in den ersten Stock führt. Keine Heizung, keine Dämmung, heißt Schimmel ohne Ende!
Ich hab ein Homematic Wandthermostat neben der Tür hängen und einen Heizlüfter per FritzDect Steckdose geschalten. Das Blöde is, das kostete natürlich unheimlich viel.
Mein berechneter Faktor liegt bei 0.51, also verdammt schlecht. Die dadurch berechnete Wandtemperatur liegt ziemlich genau übereinander, ich glaub die maximale Differenz ist auch nicht größer als die 0.5°C!

Ich freu mich wirklich das ich dein Tutorial gefunden hab und hoffe das es mit richtiger Combo Lüften/Heizen in Zukunft keinen Schimmel mehr gibt!

Was meinst du, ist eine Luftheizung oder eine Infrarotheizung besser geeignet?

Gruß Daniel


Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Martin Fischer am 04 April 2021, 10:35:03
Zitat von: DerBaer am 04 April 2021, 10:13:40
Mein Problem is, das meine Eingangstür zur Wohnung in einem Treppenaufgang ist der in den ersten Stock führt. Keine Heizung, keine Dämmung, heißt Schimmel ohne Ende!

Nur mal so als Tipp:
Sollte das Eigentum sein, Du also niemanden bzgl. Renovierung fragen musst, dann solltest Du Dir mal Kalziumsilikatplatten anschauen. Ich habe bei mir das CASIPLUS System verarbeitet und bin damit sehr zufrieden. Ich habe auch eine Aussenwand, die genau auf der Grundstücksgrenze steht und somit nicht von außen isolierbar ist. Da die Wand ewig kalt war und ich seinerzeit ohne darüber nachzudenken, die Oberfläche mit Latexfarbe quasi versiegelt hatte, lief mir das (Kondens-)Wasser regelrecht von der Wand.

Hatte mir dann einen "Baugutachter" gegönnt, der mit die Platten empfahl und für meine Zwecke eine Dicke von 4 cm ausgerechnet hat. Man muss aber auch an die Wärmebrücken (umgangssprachlich ,,Kältebrücken") denken. Dafür gibt es extra Keile.

Viel Erfolg!
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: DerBaer am 04 April 2021, 11:51:08
Zitat
Nur mal so als Tipp:
Sollte das Eigentum sein, Du also niemanden bzgl. Renovierung fragen musst, dann solltest Du Dir mal Kalziumsilikatplatten anschauen. Ich habe bei mir das CASIPLUS System verarbeitet und bin damit sehr zufrieden. Ich habe auch eine Aussenwand, die genau auf der Grundstücksgrenze steht und somit nicht von außen isolierbar ist. Da die Wand ewig kalt war und ich seinerzeit ohne darüber nachzudenken, die Oberfläche mit Latexfarbe quasi versiegelt hatte, lief mir das (Kondens-)Wasser regelrecht von der Wand.

Hatte mir dann einen "Baugutachter" gegönnt, der mit die Platten empfahl und für meine Zwecke eine Dicke von 4 cm ausgerechnet hat. Man muss aber auch an die Wärmebrücken (umgangssprachlich ,,Kältebrücken") denken. Dafür gibt es extra Keile.

Viel Erfolg!

Danke für den Tipp!
Leider is das kein Eigentum, ich müsste aber auch ned fragen. Allerdings glaub ich das es bei mir zu eng wird wenn ich überall noch 4cm Platten drauf klebe.  :-\

Gruß Daniel
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Martin Fischer am 05 April 2021, 11:40:13
Zitat von: DerBaer am 04 April 2021, 11:51:08
Allerdings glaub ich das es bei mir zu eng wird wenn ich überall noch 4cm Platten drauf klebe.  :-\

Die 4 cm sind mein Maß. Es gibt die Platten auch dünner. Dies nur als ergänzende Info ;)
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: mfeske am 17 November 2021, 12:13:22
Hallo Peter,
an dieser Stelle Achtung für die geleistete Arbeit mit allen Formeln, Funktionen .... Super. Ich bin nun schon so lange im Forum unterwegs bin aber erst jetzt auf diesen Fred gestoßen worden. Allerdings muss ich zugeben, das ich nur einen Bruchteil verstanden habe. Bei mir geht es um ein keines Badezimmer mit einer elektrischen Dachluken Öffnung die ich über einen Taster ansteuere. Ich habe in jedem Raum im Haus ein TFA Thermometer Hygrometer welches mir Temperatur und Luftfeuchtigkeit ausgibt siehe Listing 01 sowie auch eins im Garten. In jedem Raum befindet sich auch noch ein Thermostat HM-CC-RT-DN siehe Listing 02 zur Temperatursteuerung. Über den Taster  ITW_852 siehe Listing 03 wird das Dachfenster geöffnet und geschlossen.
Gibt es eine Möglichkeit Dein Modul entsprechend zu nutzen um mir a) ggf. eine drohende Schimmelgefahr in den Räumen im Dashboard anzeigen zu lassen oder anderweitig noch auszugeben und b) (eigentlich noch wichtiger) die Dachluke möglichst nach dem duschen für eine Zeit x oder bis die Lufteuchtigkeit wieder "normal ist zu öffnen" und dann aber auch wieder automatisch zu schliessen ? Bisher habe ich leider nur so ein DOIF wie im Listing 04 das alle mal im Haus erinnert das die Luke offen ist.

Gruß
Micha
Listing 01

Internals:
   CODE       84
   CUL433_MSGCNT 16
   CUL433_RAWMSG TXAEA8660662
   CUL433_RSSI -80.5
   CUL433_TIME 2021-11-17 12:04:01
   DEF        84
   FUUID      5c500794-f33f-a44f-ac44-6e898ac7a55b2c10
   LASTInputDev CUL433
   MSGCNT     16
   NAME       TFA01
   NR         48
   STATE      T: 18.8 H: 66.0
   TYPE       CUL_TX
   corr       0
   lastH      1637147041
   lastT      1637147041
   minsecs    0
   READINGS:
     2021-11-17 12:04:01   humidity        66.0
     2021-11-17 12:04:01   state           T: 18.8 H: 66.0
     2021-11-17 12:04:01   temperature     18.8
Attributes:
   group      Temperatur
   icon       control_building_modern_s_2og_og2
   room       Bad_klein


Listing 02

Internals:
   DEF        309DC6
   FUUID      5c5007a0-f33f-a44f-ba1b-929607a553f2b16e
   IODev      hmusb
   LASTInputDev hmusb
   MSGCNT     21
   NAME       Heizung_Arbeitszimmer
   NR         235
   NTFY_ORDER 48-Heizung_Arbeitszimmer
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Heizung_Arbeitszimmer_Weather
   channel_02 Heizung_Arbeitszimmer_Climate
   channel_03 Heizung_Arbeitszimmer_WindowRec
   channel_04 Heizung_Arbeitszimmer_Clima
   channel_05 Heizung_Arbeitszimmer_ClimaTeam
   channel_06 Heizung_Arbeitszimmer_remote
   disableNotifyFn 1
   hmusb_MSGCNT 21
   hmusb_RAWMSG E309DC6,0000,00259AED,FF,FFC8,918610309DC60000000AF0D80C5500
   hmusb_RSSI -56
   hmusb_TIME 2021-11-17 12:03:56
   lastMsg    No:91 - t:10 s:309DC6 d:000000 0AF0D80C5500
   protLastRcv 2021-11-17 12:03:56
   protRcv    20 last_at:2021-11-17 12:03:56
   protSnd    2 last_at:2021-11-17 11:38:59
   protState  CMDs_done
   rssi_at_hmusb cnt:21 min:-56 max:-56 avg:-56 lst:-56
   rssi_hmusb cnt:2 min:-52 max:-52 avg:-52 lst:-52
   READINGS:
     2021-11-17 11:35:28   Activity        alive
     2021-11-17 11:38:59   CommandAccepted yes
     from archivexx        D-firmware      1.4
     from archivexx        D-serialNr      LEQ1206082
     2021-11-17 11:38:58   IODev           hmusb
     2020-10-23 11:48:43   PairedTo        0x240271
     2021-11-17 11:25:56   R-backOnTime    10 s
     2021-11-17 11:25:56   R-burstRx       on
     2021-11-17 11:25:56   R-cyclicInfoMsg on
     2021-11-17 11:25:56   R-cyclicInfoMsgDis 0
     2021-11-17 11:25:56   R-pairCentral   0x240271
     2020-10-23 11:48:43   RegL_00.        00:00 01:01 02:01 09:01 0A:24 0B:02 0C:71 0E:0A 0F:00 11:00 12:15 16:00 18:00 19:00 1A:00
     2021-03-22 20:26:12   RegL_07.       
     2021-11-17 12:03:56   actuator        85
     2021-11-17 12:03:56   battery         ok
     2021-11-17 12:03:56   batteryLevel    2.7
     2021-11-17 11:26:08   cfgState        ok
     2021-11-17 11:38:59   commState       CMDs_done
     2021-11-17 12:03:56   desired-temp    30.0
     2021-11-17 12:03:56   measured-temp   21.6
     2021-11-17 12:03:56   motorErr        ok
     2020-10-23 11:47:58   powerOn         2020-10-23 11:47:58
     2020-10-23 11:47:58   recentStateType info
     2020-10-23 11:49:05   sabotageAttackId_ErrIoId_100001 cnt:2
     2020-10-23 11:49:05   sabotageAttack_ErrIoAttack_cnt 2
     2021-11-17 11:38:59   state           CMDs_done
     2021-11-16 04:41:47   time-request    -
   helper:
     HM_CMDNR   145
     cSnd       11240271309DC686043C,11240271309DC686043C
     cfgStateUpdt 0
     lastMsgTm  1637147036.36099
     mId        0095
     peerFriend -
     peerOpt    -:thermostat
     regLst     0
     rxType     140
     supp_Pair_Rep 0
     tmplChg    0
     cmds:
       TmplKey    :no:1637144758.53592
       TmplTs     1637144758.53592
       cmdKey     0:1:0::Heizung_Arbeitszimmer:0095:01:
       cmdLst:
         assignHmKey noArg
         burstXmit  noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         inhibit    [(on|{off})]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sysTime    noArg
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       flgs       0
       newChn     +309DC6,00,00,00
       nextSend   1637147036.43122
       rxt        2
       vccu       
       p:
         309DC6
         00
         00
         00
       prefIO:
     mRssi:
       mNo        91
       io:
         hmusb:
           -50
           -50
     peerIDsH:
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       at_hmusb:
         avg        -56
         cnt        21
         lst        -56
         max        -56
         min        -56
       hmusb:
         avg        -52
         cnt        2
         lst        -52
         max        -52
         min        -52
     shRegW:
       07         04
     tmpl:
Attributes:
   IODev      hmusb
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     defReg,rawReg
   firmware   1.4
   model      HM-CC-RT-DN
   room       Arbeitszimmer
   serialNr   LEQ1206082
   subType    thermostat
   webCmd     getConfig:clear msgEvents:burstXmit


Listing 03

Internals:
   DEF        10000000011101011001101010 0 0000
   FUUID      5ffc053d-f33f-a44f-3474-f7eb334e82536018
   IODev      CUL433
   NAME       ITW_852_Bad_klein_01
   NR         616
   STATE      on
   TYPE       IT
   XMIT       1000000001110101100110101000000
   XMITdimdown 00
   XMITdimup  00
   XMIToff    0
   XMITon     1
   CODE:
     1          1000000001110101100110101000000
   READINGS:
     2021-11-17 11:25:16   IODev           CUL433
     2021-01-11 09:40:23   group           0
     2021-01-11 09:40:23   protocol        V3
     2021-11-17 10:47:46   state           on
     2021-01-11 09:40:23   unit            0000
Attributes:
   IODev      CUL433
   cmdIcon    on:black_down off:black_up:FS20.off
   devStateIcon on:fts_light_dome off:fts_light_dome_open:FS20.off
   room       Bad_klein,Funkzentrale


Listing 04

Internals:
   DEF        ([TFA01:temperature] > [TFA08:temperature] and [Kontakt_Dachluke] eq "opened") (set Warnung_Dachluke on) (set gong_MP3 playTone 012) DOELSE (set Warnung_Dachluke off, set gong_MP3 playTone 013)
   FUUID      5c5007a6-f33f-a44f-ff5b-778240baf9017edc
   MODEL      FHEM
   NAME       Warnung_Dachluke_doif
   NOTIFYDEV  TFA08,Kontakt_Dachluke,global,TFA01
   NR         398
   NTFY_ORDER 50-Warnung_Dachluke_doif
   STATE      cmd_1_1
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-11-17 12:27:35   Device          TFA08
     2021-11-17 12:27:36   cmd             1.1
     2021-11-17 12:27:35   cmd_count       2
     2021-11-17 12:27:36   cmd_event       TFA08
     2021-11-17 12:27:36   cmd_nr          1
     2021-11-17 12:27:36   cmd_seqnr       1
     2021-11-17 12:26:31   e_Kontakt_Dachluke_STATE opened
     2021-11-17 12:22:31   e_TFA01_temperature 18.7
     2021-11-17 12:27:35   e_TFA08_temperature 6.8
     2021-11-17 12:27:36   state           cmd_1_1
     2021-11-17 12:27:37   wait_timer      17.11.2021 12:28:37 cmd_1_2 TFA08
   Regex:
     accu:
     collect:
     cond:
       Kontakt_Dachluke:
         0:
           &STATE     ^Kontakt_Dachluke$
       TFA01:
         0:
           temperature ^TFA01$:^temperature:
       TFA08:
         0:
           temperature ^TFA08$:^temperature:
   attr:
     cmdState:
     repeatsame:
       3
       0
     wait:
       0:
         0
         60
       1:
         0
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'TFA01','temperature') > ::ReadingValDoIf($hash,'TFA08','temperature') and ::InternalDoIf($hash,'Kontakt_Dachluke','STATE') eq "opened"
   do:
     0:
       0          set Warnung_Dachluke on
       1          set gong_MP3 playTone 012
     1:
       0          set Warnung_Dachluke off, set gong_MP3 playTone 013
   helper:
     DEVFILTER  ^global$|^TFA08$|^Kontakt_Dachluke$|^TFA01$
     NOTIFYDEV  global|TFA08|Kontakt_Dachluke|TFA01
     event      T: 6.8 H: 86.0,temperature: 6.8
     globalinit 1
     last_timer 0
     sleepdevice TFA08
     sleepsubtimer 1
     sleeptimer 0
     timerdev   TFA08
     timerevent T: 6.8 H: 86.0,temperature: 6.8
     triggerDev TFA08
     timerevents:
       T: 6.8 H: 86.0
       temperature: 6.8
     timereventsState:
       state: T: 6.8 H: 86.0
       temperature: 6.8
     triggerEvents:
       T: 6.8 H: 86.0
       temperature: 6.8
     triggerEventsState:
       state: T: 6.8 H: 86.0
       temperature: 6.8
   internals:
     all         Kontakt_Dachluke:STATE
   perlblock:
   readings:
     all         TFA01:temperature TFA08:temperature
   trigger:
   uiState:
   uiTable:
Attributes:
   repeatsame 3:0
   room       Bad_klein
   wait       0,60:0
Titel: Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: peterk_de am 18 November 2021, 13:44:08
Zitat von: mfeske am 17 November 2021, 12:13:22
Hallo Peter,
an dieser Stelle Achtung für die geleistete Arbeit mit allen Formeln, Funktionen .... Super. Ich bin nun schon so lange im Forum unterwegs bin aber erst jetzt auf diesen Fred gestoßen worden. Allerdings muss ich zugeben, das ich nur einen Bruchteil verstanden habe. Bei mir geht es um ein keines Badezimmer mit einer elektrischen Dachluken Öffnung die ich über einen Taster ansteuere. Ich habe in jedem Raum im Haus ein TFA Thermometer Hygrometer welches mir Temperatur und Luftfeuchtigkeit ausgibt siehe Listing 01 sowie auch eins im Garten. In jedem Raum befindet sich auch noch ein Thermostat HM-CC-RT-DN siehe Listing 02 zur Temperatursteuerung. Über den Taster  ITW_852 siehe Listing 03 wird das Dachfenster geöffnet und geschlossen.
Gibt es eine Möglichkeit Dein Modul entsprechend zu nutzen um mir a) ggf. eine drohende Schimmelgefahr in den Räumen im Dashboard anzeigen zu lassen oder anderweitig noch auszugeben und b) (eigentlich noch wichtiger) die Dachluke möglichst nach dem duschen für eine Zeit x oder bis die Lufteuchtigkeit wieder "normal ist zu öffnen" und dann aber auch wieder automatisch zu schliessen ?

Hallo zurück,

Ja klar. Du müsstest dir erstmal in irgendeinem passenden FHEM-Device die im Ausgangspost beschriebenen userReadings erzeugen lassen (siehe Commandref + Copy&Paste aus dem Ausgangsposting). Du kannst die z.B. einfach in das Device deines Thermometers im Raum packen (dein TFA01 z.B.).

Dann hast du da drin dann zusätzliche Readings wie schimmelGefahr oder schimmelFreiMaxHum, um die du dein DOIF erweitern kannst oder ein neues nur für die Dachluke erzeugen kannst:

define dachLukeAufZu DOIF ([TFA01:wandHumidity] > ([TFA01:schimmelfreiMaxHum] + 3)) (set meineDachluke open) DOELSEIF ([bad.thermometer:wandHumidity] < [bad.thermometer:schimmelfreiMaxHum]) (set meineDachluke close)

Das nur als Ausgangspunkt. Ich schalte meinen elektrischen Entlüfter im Bad so z.B. nur aus, angeschaltet wird es stattdessen schon vorher, wenn sich die Tür der Duschkabine schließt über einen Reed-Kontakt ;)
Titel: Aw: HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
Beitrag von: Guenni1404 am 13 Juli 2023, 12:30:22
Hallo Peter,

erstmal super Arbeit von dir. Funktioniert bei mir auch einwandfrei.
Jetzt ist mir bei der Hitze aber aufgefallen, dass meine Innenwerte sich nicht verändert haben, aber die Aussenwerte.
Bisher habe ich die Neuberechnung nur bei "event-on-change" gemacht.
Damit ich das Abfangen kann habe ich jetzt auf "event-on-update" umgestellt.

Wie hat du das gelöst? Bei jeden Update eine Neuberechung ist halt ein wenig übertrieben.