Autor Thema: HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten  (Gelesen 10625 mal)

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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:

  • Absolute Luftfeuchtigkeit: Sagt aus, wieviel Masse an Wasser ist in einem bestimmten Volumen Luft enthalten ist. Dieser Wert ist nicht temperaturabhäng - was logisch ist: Heizt man einen luftdichten Raum auf, ist danach die gleiche Masse Wasser in der Luft wie vorher. Ändert man also nur die Lufttemperatur, bleibt die absolute Luftfeuchte gleich. Die absolute Luftfeuchte in einem Raum kann also nur durch Lüften oder Entfeuchten geändert werden.
  • Relative Luftfeuchtigkeit: Man stelle sich die Luft als Schwamm vor. Die relative Luftfeuchtigkeit gibt in Prozent an, wie voll der Schwamm (die Luft) in Prozent mit Wasser vollgesogen ist. Bei 100% ist der Schwamm voll und tropft - im Fall der Luft bedeutet das: Das Wasser kondensiert. Die Fähigkeit der Luft, Wasser zu speichern, ist stark temperaturabhäng. Kalte Luft kann kaum Wasser aufnehmen (die 100% sind schnell erreicht), warme Luft viel mehr. Man kann die relative Luftfeuchtigkeit also - im Gegensatz zur absoluten - auch durch Heizen senken.
  • Taupunkttemperatur: Das ist die hypothetische Temperatur, bei der die relative Luftfeuchte - ausgehend von einer aktuellen Temperatur und gleichzeitig gemessener Luftfeuchtigkeit - genau 100% betragen würde. Ist eine Stelle im Raum kälter, ist dort die Luftfeuchtigkeit bei über 100% und Wassertropfen kondensieren.

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:

  • Kompressor-Luftentfeuchter: Die wohl naheliegendste Variante. Sie hat den Nachteil, dass je nach Raumgröße mehrere 100 Watt Leistung zur Entfeuchtung benötigt werden, je nach Gerät ein Wassertank bzw. ein Luftfilter regelmäßig zu leeren und zu entkeimen ist, ein mitunter starker Luftzug im Betrieb herrscht und mehr oder minder viel Krach entsteht (Größenordnung: Kühlschrank und Standventilator gleichzeitig an). Außerdem funktionieren die Entfeuchter umso ineffizienter, je niedriger die Raumtemperatur und relative Luftfeuchtigkeit ist (unter 50% bzw. 20°C ist meist kein wirtschaftlicher Betrieb möglich)
  • Luftentfeuchter mit Trocken-Granulat: Zieht zwar ein wenig Wasser aus der Luft, aber hauptsächlich Geld aus der Tasche. Eventuell mögliche Wiederaufbereitung des Granulates ist aufwendig und energieintensiv. Trockenleistung / Fassungsvermögen generell eher gering.
  • Luftentfeuchter mit Peltier-Element: Sind sehr leise (nur Lüftergeräusch), haben aber nicht die Trockenleistung eines Kompressor-Geräts zum gleichen Preis.
  • Stoßlüften: Sehr schnell und effektiv, aber je nach Wetterlage zeitweise nicht möglich (siehe Userreading lueftenMoeglich). Gerade in Feuchträumen mit nassen Handtüchern und anderen Feuchtigkeitsreservoiren muss u.U. wiederholt gelüftet werden. Fenster aber nicht dauerhaft anklappen, das ist kontraproduktiv. FHEM kann per Warnung/Anzeige oder einem elektrischen Fensteröffner helfen.
  • Zwangsheizen: Die relative Luftfeuchte sinkt, allerdings steigt - in geringerem Maße - gleichzeitig die Wachstumsfähigkeit des Schimmels zusammen mit der Temperatur. Ist pauschal gesagt nur bei eher niedrigen Raumtemperaturen, wo Luftentfeuchter an ihre Grenzen kommen, zu empfehlen, da ansonsten zu energieintensiv. In einem eh schon warmen, feuchten Bad bei geringen Außentemperaturen und schlechter Dämmung ist z.B. ein Luftentfeuchter die bessere Wahl.



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.
« Letzte Änderung: 25 März 2017, 11:38:38 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck
Gefällt mir Gefällt mir x 4 Liste anzeigen

Offline TomWest

  • Full Member
  • ***
  • Beiträge: 122
    • Ferien im Kutscherhaus im Rheinland
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
FHEM on R-π - HM-TC-IT-WM-W-EU - HM-LC-Sw1-FM - HM-SCI-3-FM - HM-CC-RT-DN

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
« Letzte Änderung: 02 Dezember 2014, 13:59:27 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck


amunra

  • Gast
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....

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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? :-)
« Letzte Änderung: 27 Januar 2015, 23:15:23 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

amunra

  • Gast
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 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....
« Letzte Änderung: 28 Januar 2015, 00:37:18 von amunra »

Offline daschauher

  • Full Member
  • ***
  • Beiträge: 160
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

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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...
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline daschauher

  • Full Member
  • ***
  • Beiträge: 160
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

Offline Hauswart

  • Sr. Member
  • ****
  • Beiträge: 700
Derzeitiges Setup unter Anderem:
* HM-CFG-USB
* nanoCUL868 (SlowRF)
* MySensors
* SIGNALduino 433

Offline SonnenSimon

  • New Member
  • *
  • Beiträge: 5
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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
@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 ^^
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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);
« Letzte Änderung: 25 März 2017, 11:39:23 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Berndd

  • Full Member
  • ***
  • Beiträge: 155
  • Enjoy your live.
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 ...

Raspberry pi 1 rev. 2, Wheezy (Linux raspberrypi1 4.1.7+ #817 PREEMPT), FHEM 5.7, JeeLink clone thx Robin, nanoCUL433, Signalduino, BrennenstuhlSteckdosen, LaCrosse Sensoren. LÄUFT NICHT: Energiemessung - Revolt NC-5462, Bresser Erdfeuchtesensor

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Berndd

  • Full Member
  • ***
  • Beiträge: 155
  • Enjoy your live.
...
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

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

Gute Nacht,
Bernd


Raspberry pi 1 rev. 2, Wheezy (Linux raspberrypi1 4.1.7+ #817 PREEMPT), FHEM 5.7, JeeLink clone thx Robin, nanoCUL433, Signalduino, BrennenstuhlSteckdosen, LaCrosse Sensoren. LÄUFT NICHT: Energiemessung - Revolt NC-5462, Bresser Erdfeuchtesensor

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Berndd

  • Full Member
  • ***
  • Beiträge: 155
  • Enjoy your live.
Technoline auseinander gebaut:
http://forum.fhem.de/index.php/topic,49067.0.html
Gruss,
Bernd
Raspberry pi 1 rev. 2, Wheezy (Linux raspberrypi1 4.1.7+ #817 PREEMPT), FHEM 5.7, JeeLink clone thx Robin, nanoCUL433, Signalduino, BrennenstuhlSteckdosen, LaCrosse Sensoren. LÄUFT NICHT: Energiemessung - Revolt NC-5462, Bresser Erdfeuchtesensor

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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?
« Letzte Änderung: 17 Januar 2017, 23:06:17 von Spezialtrick »
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit
Hilfreich Hilfreich x 1 Liste anzeigen

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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 :(
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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.
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit
Hilfreich Hilfreich x 1 Liste anzeigen

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck
Hilfreich Hilfreich x 1 Liste anzeigen

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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");
      }
  }
}


« Letzte Änderung: 25 März 2017, 11:41:09 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

amunra

  • Gast
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….

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3980
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
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline Hauswart

  • Sr. Member
  • ****
  • Beiträge: 700
@peterk_de
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?
Derzeitiges Setup unter Anderem:
* HM-CFG-USB
* nanoCUL868 (SlowRF)
* MySensors
* SIGNALduino 433

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
« Letzte Änderung: 25 März 2017, 11:41:39 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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 ;)
« Letzte Änderung: 25 März 2017, 11:42:12 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck
Gefällt mir Gefällt mir x 3 Liste anzeigen

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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!
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Argh, wie ich perl liebe. Hab ich oben korrigiert, probier mal nochmal, sorry.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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?
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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) },
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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
« Letzte Änderung: 25 März 2017, 11:42:36 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
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.  ???
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
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.
« Letzte Änderung: 25 März 2017, 11:42:53 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Hauswart

  • Sr. Member
  • ****
  • Beiträge: 700
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.
Derzeitiges Setup unter Anderem:
* HM-CFG-USB
* nanoCUL868 (SlowRF)
* MySensors
* SIGNALduino 433

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #41 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 ...
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3980
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #42 am: 23 März 2017, 20:33:18 »
 :)
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline c.monty

  • New Member
  • *
  • Beiträge: 25
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #43 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

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #44 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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline c.monty

  • New Member
  • *
  • Beiträge: 25
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #45 am: 24 März 2017, 16:35:17 »
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

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #46 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!
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline stromer-12

  • Hero Member
  • *****
  • Beiträge: 1332
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #47 am: 25 März 2017, 11:28:50 »
Ist es Absicht das es "schlimmel" und nicht "schimmel" bei den Funktionen heißt?
FHEM 5.8(SVN) auf CT mit HMUSB | HMLAN | CUL
FHEM 5.8(SVN) RPi mit HMser | CUNO
loggt mit MariaSQL(ARIA) auf SSD
S300TH | FHT80TK-2 | FS20:AS4,HGS,ST,TK,UTS,WS1
HM: >50 Geräte, KFM100

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #48 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
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #49 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:

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?  ???
« Letzte Änderung: 03 Juni 2017, 15:53:28 von Spezialtrick »
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #50 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.
« Letzte Änderung: 03 Juni 2017, 16:28:19 von peterk_de »
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #51 am: 04 Juni 2017, 18:13:23 »
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?

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.

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)
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #52 am: 04 Juni 2017, 21:17:14 »

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?

Zitat
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)

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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #53 am: 04 Juni 2017, 21:44:50 »
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.

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?
« Letzte Änderung: 04 Juni 2017, 22:41:37 von Spezialtrick »
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #54 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.

Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #55 am: 08 Juni 2017, 21:45:10 »
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

« Letzte Änderung: 08 Juni 2017, 21:52:58 von Spezialtrick »
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #56 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? ;)
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #57 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


FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #58 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 :-)
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 902
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #59 am: 09 Juni 2017, 21:12:45 »
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?

Zitat
Physik fetzt halt :-)

Ich glaube das können wir so festhalten.  :D
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #60 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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline AnonymousHolger

  • Jr. Member
  • **
  • Beiträge: 88
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #61 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



Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #62 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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline Manul

  • Full Member
  • ***
  • Beiträge: 182
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #63 am: 13 Juni 2017, 00:49:12 »
Zitat von: peterk_de
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.

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?
« Letzte Änderung: 14 Juni 2017, 14:53:12 von Manul »

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #64 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!
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck
Informativ Informativ x 1 Liste anzeigen

Offline mumpitzstuff

  • Full Member
  • ***
  • Beiträge: 231
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #65 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.

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #66 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.
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck

Offline mumpitzstuff

  • Full Member
  • ***
  • Beiträge: 231
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #67 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.

Offline AnonymousHolger

  • Jr. Member
  • **
  • Beiträge: 88
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #68 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 😀😀😀

Offline noxx

  • Full Member
  • ***
  • Beiträge: 179
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #69 am: Gestern um 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ß

Offline peterk_de

  • Sr. Member
  • ****
  • Beiträge: 629
Antw:HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten
« Antwort #70 am: Gestern um 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 ;) )
Intel NUC5i5 -> Proxmox -> Ubuntu 16.04 LTS
IOdevs: 2x Homematic, CUL868, HarmonyHub
Frontends: 3x TabletUI Android-Tablets mit AMAD+FullyBrowser, Homebridge/Siri
Aktoren/Sensoren: 86x Homematic, 15x WMBUS/Techem, 7x WiFi, 5x BLE, 2x BT, Geofencing
FHEM2FHEM-Roomnodes: 5x Raspi, 1x Cubietruck