HowTo: Schimmelvermeidung - Richtig Lüften und Entfeuchten

Begonnen von peterk_de, 30 November 2014, 01:19:38

Vorheriges Thema - Nächstes Thema

andies

Es gibt doch einen Projektthread, kannst du das da nicht hineinstellen? Gibt bestimmt Interessenten.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

ChrisW

Cool wobei der Keller ruhig feucht sein kann ;) Da kann nicht mehr viel "kkaputt" gehen. Will halt nur den Geruch raus bekommen. Aber wenn ich die Tür dicht mache dann kann man den Keller fast gar nicht mehr betreten ;) Werd die Tür Dicht machen und je nach dem Rein/Raus Pusten  bzw. 2 Rohre machen
Raspberry PI3 mit allem möglichen.

KölnSolar

@Patrick.S
ZitatFalls Interesse besteht, kann ich das gesamte Projekt ja mal mit Bildern dokumentieren.
Bitte, bitte, bitte..... Höchst interessant. Insbesondere Details zu den Lüftern u. Wärmetauschern(ich wollt immer mal welche aus ner alten Gastherme oder Autokühler für Luft-Wasser-Tauschung ausprobieren).
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt


Der_müde_Joe

Hallo,

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

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

Ich bekomme jedoch immer die Meldung:

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

Kann mir da jemand helfen?

Danke Joe

sash.sc

Hast du die subroutinen in der myutils angelegt?

Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Der_müde_Joe

Also ich denke schon, dass ich das richtig eingetragen habe.

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

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

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

Hier nochmal nur das Reading für die Schimmelgefahr, damit es besser lesbar ist:
schimmelGefahr {(shiftRelHumidity(ReadingsVal("K2_TF","temperature",17),ReadingsVal("K2_TF","humidity",90), wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15), ReadingsVal("KS300","temperature",0),0.68))>schlimmelfreiMaxHum(wallSurfaceTemp(ReadingsVal("K2_TF","temperature",15),ReadingsVal("KS300","temperature",0),0.68))?"ja":"nein")}

devo

Hallo, siehe dir bitte noch einmal genau deine Fehlermeldung an!
ZitatError evaluating K2_TF userReading schimmelGefahr: Undefined subroutine &main::schlimmelfreiMaxHum called at (eval 310623) line 1.
laut Fehlermeldung lautet deine subroutine schlimmelfreiMaxHum
In dem Beitrag #101 lautet die subroutine aber sub schimmelfreiMaxHum($)
Also schlimmelfrei <> schimmelfrei.

Viele Grüße von Detlev

Der_müde_Joe

Hallo Detlev,

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

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

Vielen vielen Dank

Jens

peterk_de

Argh, sorry für dieses blöde "L" - das war mein Fehler am Anfang, den mir irgendeine Autokorrektur eingebrockt hatte. In den Beiträgen von anderen, wo die alte, falsche Version zitiert wurde, kann ich es aber leider nicht korrigieren, also am besten aus dem ersten Post des Threads alles rauskopieren ;(
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Der_müde_Joe

Moin,

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

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

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


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

Danke schonmal für eure Hilfe.

Lieben Gruß

cmonty14

#116
Hallo Peter,

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

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

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

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

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

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


THX
Thomas

mumpitzstuff

Ich habe beides am Laufen. Sowohl die hier beschriebenen Formeln, als auch die absolute Luftfeuchte innen und außen. Für mein Empfinden läuft beides aufs selbe hinaus. Ich gucke z.b. auf die relative Feuchtigkeit im Raum und mache nichts solange sie unter 55% liegt. Wenn sie darüber liegt und die absolute Feuchtigkeit innen höher als außen ist (der Unterschied sollte signifikant sein, sonst lohnt es nicht) wird zyklisch eine Lüftungsempfehlung über Lautsprecher ausgegeben. Wenn jemand ein Fenster öffnet und die absolute Feuchte ist außen höher als innen und innen liegt die rel. Feuchte über 55% wird eine Warnung über Lautsprecher ausgegeben.
In meinem Bad läuft ein geschlossenes System. Der Abluftlüfter hat 2 Stufen. Stufe 1 läuft immer. Stufe 2 wird aktiv, wenn Das Licht für mind. 45s angeschaltet ist und der Lüfter läuft 20min nach auf der hohen Stufe. Darüber hinaus hat der Lüfter einen eigenen Feuchtigkeitssensor und schaltet automatisch auf Stufe 2, wenn diese 55% übersteigt. Damit fahre ich im Bad (das kein eigenes Fenster besitzt) seit Jahren gut.

peterk_de

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

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

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


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

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

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

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


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

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

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

Die 55% sind aber gerade im Sommer manchmal nicht zu schaffen. Ich würde, bei entsprechend vorhandener Sensorik, das schon adaptiv und dadurch etwas sparsamer machen - siehe Ausgangsposting. Die 55% findet man in der Literatur oft, aber das ist n pauschaler Behelfswert der viele vereinfachende Annahmen macht, die ein FHEMler eigentlich nicht machen muss ;-)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

cmonty14

Hallo,

zunächst vielen Dank für die Antworten.

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

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

THX