Hallo,
ich habe im Bad eine Lüftung, die ich automatisieren wollte. Dabei entlüftet ein Ventilator eine Toilette und das getrennte Bad.
Aufgabe war, dass der Lüfter zeitverzögert eingeschaltet werden soll und auch eine Nachlaufzeit haben soll.
Außerdem soll er ab einer bestimmten Feuchtigkeit, z.B. beim Duschen oder Baden anspringen.
Meine Lösung als blutiger Anfänger sieht bisher so aus:
define Luefter_state dummy
define Lueftung_Toilette_an notify LICHTSCHALTER:on { \
if (Value("LUEFTER") eq "off") {fhem "define onTimer_Toilettenluefter at +00:02:30 set LUEFTER,Luefter_state on"}\
if (Value("LUEFTER") eq "on") {fhem "delete offTimer_Toilettenluefter";;fhem "set LUEFTER on"}\
}
define Lueftung_Toilette_aus notify LICHTSCHALTER:off { \
if (Value("LUEFTER") eq "on") {fhem "set Luefter_state on";;fhem "define offTimer_Toilettenluefter at +00:03:00 set LUEFTER,Luefter_state off"}\
if (Value("LUEFTER") eq "off") {fhem "delete onTimer_Toilettenluefterluefter";;fhem "set LUEFTER off"}\
}
define Lueftung_Bad notify FEUCHTESENSOR { \
my $hum_Bad = (ReadingsVal("FEUCHTESENSOR","humidity",40));;\
if ($hum_Bad > 62 && (Value("LUEFTER") eq "off")) { fhem ("set LUEFTER on")}\
if ($hum_Bad < 60 && (Value("LUEFTER") eq "on") && (Value("Luefter_state") eq "off")) { fhem ("set LUEFTER off")}}
Verbesserungsvorschläge?
Grüße
Herr 3x
Sieh Dir doch mal das Modul Threshold an. Damit ist einiges einfacher möglich.
Danke für den Tipp, das Modul kannte ich noch nicht.
Ist so vielleicht etwas eleganter:
define Luefter_state dummy
define w_Luefter_state_off watchdog LICHTSCHALTER:off 00:03 LICHTSCHALTER:on set Luefter_state off;; trigger w_Luefter_state_off .
define w_Luefter_state_on watchdog LICHTSCHALTER:on 00:02:30 LICHTSCHALTER:off set Luefter_state on;; trigger w_Luefter_state_on .
define TH_Luefter THRESHOLD FEUCHTESENSOR:humidity:2:62 OR Luefter_state:state:on LUEFTER|set @ on|set @ off|0
Gruß
Damian
@Damian
Vielen Dank für den Input, das sieht echt eleganter aus ;)
Da ich bislang kaum mit Perl und nix fhem zu tun hatte brauche ich etwas länger zum begreifen:
define TH_Luefter THRESHOLD FEUCHTESENSOR:humidity:2:62 OR Luefter_state:state:on LUEFTER|set @ on|set @ off|0
ist der Zweipunktregler. Allerdings verstehe ich die Schreibweise LUEFTER|set @ on|set @ off|0[
noch nicht ganz.
Kann aber auch einfach sein, dass ich heute nicht mehr ganz fit bin ??? O.k. Doku morgen nochmal lesen ;D
Grüße
Herr 3x
Zitat von: Herr 3x am 17 Dezember 2013, 21:13:54
Allerdings verstehe ich die Schreibweise LUEFTER|set @ on|set @ off|0[
noch nicht ganz.
heißt:
set LUEFTER on, wenn Feuchtigkeit über 62 oder Luefter_state = on und umgekehrt
set LUEFTER off, wenn Feuchtigkeit unter 60 und Luefter_state = off
Gruß
Damian
Hallo Herr 3x,
ich habe vor 1 Jahr damit begonnen mich mit exakt demselben Problem, wie du es hast, auseinanderzusetzen.
ZitatAußerdem soll er ab einer bestimmten Feuchtigkeit, z.B. beim Duschen oder Baden anspringen.
So dachte ich zunächst auch, bis ich im Sommer feststellen musste, dass der Lüfter nicht mehr aufhört zu laufen.
Meine physikalischen Grundlagen zu Feuchteregelung waren offensichtlich noch nicht ausreichend.
Die gemessene relative Feuchte gibt die Fähigkeit der Luft wieder, Feuchte aufzunehmen.
Diese ist jedoch deutlich von der Temperatur abhängig.
Es kann tatsächlich (im Sommer) Situationen geben, in denen du dir durch Lüften die Feuchte geradezu ins Haus holst.
Die Lösung:Sind relative Luftfeuchte und Temperatur bekannt, so kann man die Taupunkt-Temperatur errechnen.
Die Taupunkt-Temperatur ist die Temperatur, bei der die Luftfeuchte 100% wäre.
Ist der Taupunkt aussen niedriger als innen, macht es grundsätzlich Sinn den Lüfter zu aktivieren (+ Sicherheitsabstand von z.B. 1 Grad)
Dazu gibt es auch ein FHEM-Modul namens Dewpoint, das hilft den Taupunkt zu bestimmen und
es kann sogar das Startsignal für den Lüfter generieren.
Erst wenn also die Taupunkt-Bedingung gegeben ist, macht Feuchte-Regelung Sinn. (Im Winter ist das nie ein Problem)
Den Taupunkt aussen habe ich über über die Yahoo-Wetterdaten(Temperatur und Feuchte) abgeleitet,
es ist also kein eigener Sensor nötig.
Zusätzlich habe ich einen gleitenden Grenzwerte für die relative Feuchte im Bad eingeführt, je kälter es aussen ist
umso trockener muss das Bad sein.
Damit lässt sich die Tauwasserbildung an den Fenster etwas reduzieren.
Anbei ein Chart, das die Regelung verdeutlicht.
Die markierten Bereiche zeigen die Lüfteranforderung durch zu hohen Feuchte.
Die anderen sind die Anforderung über die Toiletten.
John
Da hat John recht.
Wenn du Luft nach draußen herausbläst, könnte es im Sommer vielleicht klappen (evtl. die Schaltgrenze von 62 etwas erhöhen), wenn du von außen nach innen die Luft hineinbläst (was ich nicht annehme), wird mit dieser Steuerung dein Lüfter an feuchtwarmen Tagen wahrscheinlich nicht ausgehen.
Gruß
Damian
Hallo,
Ja, John hat natürlich recht. Die 62% rel. Feuchte sind nur ein erster Test.
Ich bin ja Anfänger und möchte erst einmal top down anfangen.
Ich habe mir eine Lösung mit dem Modul dewpoint vorgestellt, womit ich die Ansprechschwelle verschieben könnte.
Allerdings ist das Lüften hier auch nicht so kritisch, da
- das Bad rund 17 m^2 hat und die Feuchte sich mehr verteilt
- das Haus ein Altbau mit deutlich höherem Luftaustausch ist, vorher wohnte ich in einem Niedrigenergiehaus, da war Feuchtigkeit ein deutlich kritischeres Thema
- im Sommer das Fenster auch mal länger auf sein kann und kaum noch Temperaturdifferenz innen zu außen mit der Taupunktproblematik vorkommen kann, somit das motorische Lüften entfallen kann.
Ich wollte eigentlich außen auch einen Temperatursensor anbringen, den könnte ich gut verwenden.
Ich habe das Gefühl, dass man alle Bedingungen auch erst nach einem Jahr raus hat. Fhem vier Jahreszeiten eben.
Vielen Dank für die hilfreichen Tipps
Herr 3x
Hier gibt es übrigens meine Lösung mit Taupunktsteuerung auf Basis Threshold.
http://forum.fhem.de/index.php/topic,10580.msg101139.html#msg101139 (http://forum.fhem.de/index.php/topic,10580.msg101139.html#msg101139)
Passend zum Thema will ich hier mal meine Umsetztung posten, vielen Dank übrigens an Damian für die Unterstützung!
Beim Umbau unseres Bades wollte ich eine zusätzliche Lüftung einbauen, weil wir keinen Dachüberstand haben und es bei starkem Regen an das Fenster eher noch zu einem Feuchtigkeitseintrag beim Lüften mit offenem/gekipptem Fenster kommt. Die Luft wird übrigens aus dem Schlafzimmer gesaugt (Türspalt) und in einen Abluftschacht gedrückt.
Das Bad hat ca. 25 m³ Rauminhalt, die Klempner hatten erst einen Lüfter mit 60 W-Motor eingebaut, der "schaffte" nur 1 -2 % Feuchtereduzierung pro Stunde, jetzt ist ein 100 W-Motor drin und der bringt 5 -6 %.
Allerdings macht er mehr Krach, sodass ich zwischen 20 und 8 Uhr den Lüfter nicht automatisch laufen lasse (Zugang zum Bad vom Schlafzimmer aus).
Außerdem wollte ich den Lüfter auch mit der Hand schalten können und die Automatik auch abschalten.
Der Lüfter wird mit einem HM-Schaltaktor geschaltet, ich habe sowohl L1 als auch die Steuerleitung zusammen geschaltet; so läuft beim Ausschalten der Lüfter nicht nach.
Da kam Folgendes raus:
Schalter ein/aus bzw. Auto ein/aus: 2 Tasten eines 6-fach HM-WM-55.
T3 kurz: manuell aus
T4 kurz: manuell ein für 60 Min. bzw. toggle
T3 lang: Automatik aus
T4 lang: Automatik ein
# Badluefter
define BD_Vent_aus notify BD_T6_Btn_03:trigger:.Short.* set BD_Vent_Man off
attr BD_Vent_aus room 004Bad
define BD_Vent_toggle notify BD_T6_Btn_04:trigger:.Short.* {Log 1, "Vent ist ".ReadingsVal("BD_Luefter_Sw_01","state","")}{if ((ReadingsVal("BD_Vent_Man","state","") =~ m /on/)){fhem "set BD_Vent_Man off";;}else {fhem "set BD_Vent_Man on";;}}
attr BD_Vent_toggle room 004Bad
define BD_Ventauto_aus notify BD_T6_Btn_03.Long.1-.* set Luefterautomatik off
attr BD_Ventauto_aus room 004Bad
define BD_Ventauto_ein notify BD_T6_Btn_04.Long.1-.* set Luefterautomatik on
attr BD_Ventauto_ein room 004Bad
Dummy für Automatik ein/aus:
define Luefterautomatik dummy
attr Luefterautomatik Luft_auto BD__auto_struc
attr Luefterautomatik Luft_auto_map on:closed off:open
attr Luefterautomatik alias Ventilatorautomatik
attr Luefterautomatik devStateIcon Ein:switch.on Aus:switch.off
attr Luefterautomatik eventMap on:Ein off:Aus
attr Luefterautomatik room 004Bad,010Wohnung
attr Luefterautomatik webCmd Aus:Ein
Dummies zum Speichern und Darstellen von manuallem und automatischem Betrieb (die Bedienung über Webinterface ist noch vom Testen aktiv):
define BD_Vent_Man dummy
attr BD_Vent_Man devStateIcon Ein:switch.on Aus:switch.off
attr BD_Vent_Man eventMap on:Ein off:Aus
attr BD_Vent_Man room 004Bad
attr BD_Vent_Man webCmd Aus:Ein
define FileLog_BD_Vent_Man FileLog ./log/BD_Akt-%Y.log BD_Vent_Man
attr FileLog_BD_Vent_Man logtype text
attr FileLog_BD_Vent_Man room CUL_HM
define BD_Vent_Auto dummy
attr BD_Vent_Auto devStateIcon Ein:switch.on Aus:switch.off
attr BD_Vent_Auto eventMap on:Ein off:Aus
attr BD_Vent_Auto room 004Bad
attr BD_Vent_Auto webCmd Aus:Ein
define FileLog_BD_Vent_Auto FileLog ./log/BD_Akt-%Y.log BD_Vent_Auto
attr FileLog_BD_Vent_Auto logtype text
attr FileLog_BD_Vent_Auto room CUL_HM
Verknüpfung beider Dummies und Aktor schalten (als ODER-Schaltung):
define BD_Vent_Sum_notify notify BD_Vent_.*:(on|off) {\
if ((Value("BD_Vent_Man") eq "Aus") && (Value("BD_Vent_Auto") eq "Aus")){fhem "set BD_Luefter_Sw_01 off";;}\
if (Value("BD_Vent_Man") eq "Ein"){fhem "set BD_Luefter_Sw_01 on-for-timer 3600";;Log 1, "Vent ist manuell ein";;}\
if (Value("BD_Vent_Auto") eq "Ein"){fhem "set BD_Luefter_Sw_01 on";;Log 1, "Vent ist automatisch ein";;}}
attr BD_Vent_Sum_notify devStateIcon Ein:switch.on Aus:switch.off
attr BD_Vent_Sum_notify room 004Bad
Zeit-, Feuchtigkeits- und Fenstersteuerung: Der Lüfter soll im Automatikbetrieb nur zwischen 8 und 20 laufen wenn die Feuchtigkeit größer 70 % ist und das Badfenster geschlossen ist und die Feuchtigkeit um 4 % reduzieren.
Im manuellen Betrieb gibt es keine weiteren Bedingungen - nach 60 Min. geht der Lüfter ja sowieso aus.
define BD_Vent_auto_struc structure Luft_auto BD_Fenster Luefterautomatik
attr BD_Vent_auto_struc clientstate_behavior absolute
attr BD_Vent_auto_struc clientstate_priority closed open
attr BD_Vent_auto_struc room 004Bad
define BD_Vent_auto_TH THRESHOLD BD_Regler:humidity:4 AND BD_Vent_auto_struc:state:closed|set BD_Vent_Auto on|set BD_Vent_Auto off|2
attr BD_Vent_auto_TH icon icoLuefter
attr BD_Vent_auto_TH room 004Bad
attr BD_Vent_auto_TH state_format _m _dv
define BD_Vent_auto_HC Heating_Control BD_Vent_auto_TH 08:00|70 20:00|105 set @ desired %
attr BD_Vent_auto_HC room 004Bad
Bei HC bzw. WDT (geht auch) ist der Trick, um 20 Uhr die Schaltschwelle auf einen "utopischen" Wert zu ändern :D.
Anbei noch ein Plot, die Aktoren bzw. Dummies schreiben in ein File und sind auf verschiedene Maximalwerte gemappt, damit man den Auslöser und den Ventilator erkennen kann.
Ich bin mit der Funktion sehr zufrieden, mal seh'n, wie es im Sommer ist, wenn sich die Feuchteverhältnisse ändern.
Schönes WE, Uwe
Ich habe meine Badezinmmner-Lüftung mittlerweile ziemlich erfolgreich implementiert.
Ein- und Ausschalten des Lüfters nur über feste Feuchtigkeitswerte brachte aber nicht viel, da die Schwellen je nach Jahreszeit/Wetter zu unterschiedlich waren. Deshalb schalte ich ein wenn die Feuchtigkeit sprunghaft ansteigt (+5%) und wieder aus wenn sie trotz eingeschaltetem Lüfter nicht mehr großartig abnimmt (weniger als 0.3%).
Als absolute Ober- und Untergrenze gibt es noch die Dummys Bad.LowHumidity und Bad.LowHumidity, die mit entsprechenden Werten gefüllt werden müssen.
Temperatur und Feuchtigkeit liefert alle 5min ein HMS100TF. Bei jedem Notify schreibe ich mir die Luftfeuchtigkeit in 3 Dummy-Variablem weg um somit eine "History" zu haben bzw. die Differenz der letzten 15min berechnen zu können.
Sieht dann in etwa so aus:
define Bad.Temperatur HMS xxxx
define Bad.Luefter FS20 xxxxxxxx xx
define Bad.LowHumidity dummy
define Bad.HighHumidity dummy
define Bad.LastHumidity.1 dummy
define Bad.LastHumidity.2 dummy
define Bad.LastHumidity.3 dummy
define Bad.DiffHumidity dummy
define Bad.Humidity_nfy Bad.Temperatur:humidity.* {
fhem "set Bad.DiffHumidity " . (ReadingsVal('Bad.Temperatur','humidity',0) - Value("Bad.LastHumidity.3"));
if ( Value("Bad.Luefter") ne "on" &&
(Value("Bad.DiffHumidity") >= 5 || ReadingsVal('Bad.Temperatur','humidity',0) >= Value("Bad.HighHumidity")) )
{fhem "set Bad.Luefter on"};;
if ( Value("Bad.Luefter") ne "off" &&
( (Value("Bad.DiffHumidity") > -0.3 && Value("Bad.DiffHumidity") <= 0) ||
ReadingsVal('Bad.Temperatur','humidity',0) <= Value("Bad72.LowHumidity") ) )
{fhem "set Bad.Luefter off"};;
fhem "set Bad.LastHumidity.3 " . Value("Bad.LastHumidity.2");
fhem "set Bad.LastHumidity.2 " . Value("Bad.LastHumidity.1");
fhem "set Bad.LastHumidity.1 " . ReadingsVal('Bad.Temperatur','humidity',0);
}
Vielen Dank an locodriver und roedert für die ausführlichen Lösungen.
Die Idee mit der manuellen Schaltung finde ich gut, allerdings Gefällt mir das Differenzieren zur Sprungerkennung noch besser. Wobei mir das Ausschaltkriterium nicht so gut gefällt - was ist, wenn man nach dem Baden das Fenster aufmacht, läuft dann der Lüfter nicht unnötig weiter, da je nach Außenluft die Feuchte sich deutlich ändert?
Herr 3x
Zitat von: Herr 3x am 26 Dezember 2013, 12:28:46
Wobei mir das Ausschaltkriterium nicht so gut gefällt - was ist, wenn man nach dem Baden das Fenster aufmacht, läuft dann der Lüfter nicht unnötig weiter, da je nach Außenluft die Feuchte sich deutlich ändert?
Auch kein Problem, dann wertest du eben den Fensterkontakt in den Bedingungen noch mit aus.
Zitat von: John am 17 Dezember 2013, 21:50:59
Zusätzlich habe ich einen gleitenden Grenzwerte für die relative Feuchte im Bad eingeführt, je kälter es aussen ist
umso trockener muss das Bad sein.
Damit lässt sich die Tauwasserbildung an den Fenster etwas reduzieren.
Hallo John,
kannst du beschreiben, wie du den gleitenden Grenzwert berechnet hast? Mir schwebt eine ähnliche Lösung vor, aber ich weiß nicht wie ich dabei vorgehen soll.
Eigentlich müsste man ja die Oberflächentemperatur abschätzen, z.b. 70% der Differenz von außen und innen? Ich habe innen und außen Feuchte und Temperatursensoren.
Grüße Califax
Zitat von: John am 17 Dezember 2013, 21:50:59
Zusätzlich habe ich einen gleitenden Grenzwerte für die relative Feuchte im Bad eingeführt, je kälter es aussen ist
umso trockener muss das Bad sein.
Damit lässt sich die Tauwasserbildung an den Fenster etwas reduzieren.
Hallo John,
Wie hast du den gleitenden Grenzwert berechnet? Mir schwebt eine ähnliche Lösung vor, aber muss man nicht die Innen Wandtemperatur aus der Differenz berechnen bzw. abschätzen?
Grüße
Califax
Hier mal ein Beispiel mit Hilfe des Taupunktes:
define dewpoint dewpoint innen
define dewpoint dewpoint aussen
define di_lueften DOIF ([innen:dewpoint]>[aussen:dewpoint] and [innen:humidity]>70) (set luefter on) DOELSEIF ([innen:humidity]<60) (set Luefter off)
attr di_lueften wait 900
"innen" und "aussen" sind Sensoren mit Temperatur- und Feuchtigkeitsmessung.
Die Vergleiche lassen sich natürlich beliebig anpassen oder erweitern.
Gruß
Damian
Hallo,
Einen Dewpoint Vergleich habe ich auch schon integriert.
Aber dieser gleitende Wert würde mich auch brennend interessieren.
Ich beobachte das seit 2 Wochen und habe festgestellt dass in der Nacht sehr oft eingeschaltet wird. Passe ich die Werte an, so läuft er am Tag kaum los. Ich hatte auch schon Werte eingestellt und einen Tag später ging der Lüfter dann gar nicht mehr aus. Und da ist noch kein Winter oder Frühjahr usw. mit dabei.
Es ist irgendwie so als müsste die schalt Schwelle niedriger sein je höher außen die Luftfeuchtigkeit ist.
Hat da vielleicht jemand Ahnung von der Materie und kann mir nen Tipp geben?
Vg
Markus
Hi Markus,
anbei meine Lösung für die Ermittlung des Offsets der in meiner Anwendung für den oberen und unteren Grenzwert hinzu addiert wird.
Die Sub liefert nur dann einen Wert<>0, wenn die Aussentemperatur < 10 Grad ist oder > 20 Grad ist.
Die Kommentare sollten alles Weitere erklären.
John
sub myHumGWAdjust() {
my $llevel = 4;
my $atemp = ReadingsVal("wt","temp_c","0"); # aussentemperatur ermitteln
my $oldVal = Value("feuchte.adjust"); # dummy, in dem wir den Adjust Wert speichern
my $fOffset = 0;
my $tempDiff = 0;
my $winterLimit = 10;
my $summerLimit = 20;
my $limit = 0;
# im winter ( atemp < 10 Grad ) wollen wir trockener werden
# pro Grad wird der Grenzwert um 0.5 % Feuchte angepasst, max. 10%
if ($atemp < $winterLimit)
{
$limit = $winterLimit;
$tempDiff = $winterLimit - $atemp;
if ($tempDiff > 20)
{
$tempDiff = 20;
}
$fOffset = - $tempDiff * 0.5;
}
# im Sommer ( atemp > 20 Grad ) können wir feuchter werden, pro Grad 1 % erhöhen bis max. 6% mehr
if ($atemp > $summerLimit )
{
$limit = $summerLimit;
$tempDiff = $atemp - $summerLimit;
if ($tempDiff > 6) # wir geben max. 6 % dazu
{
$tempDiff = 6;
}
$fOffset = $tempDiff * 1;
}
# dummy versorgen, falls sich etwas geändert hat
fhem("set feuchte.adjust $fOffset") if ($fOffset != $oldVal);
return $fOffset;
}
Hi John,
das ganze sieht echt durchdacht aus. Vermutlich wäre ich nie auf so eine Lösung gekommen. Vielen Dank dafür. Werde ich morgen gleich einbauen.
Eine Frage noch Wie du das einbindest. Ich würde durch ein notify das auslöst wenn sich die außen Temperatur ändert deine Funktion aufrufen und dann das offset des THRESHOLD überschreiben. Passt das so oder geht das eleganter?
VG
Markus
ich berechne den Offset immer dann, wenn der Feuchte/Temperatur-Wert vom Bad übertragen wird.
Aber diese Entscheidung ist unkritisch, da sich die Aussen-Temperatur nie sprunghaft ändert.
John
Hallo John,
Bei mir ist es im Moment, eher so dass die Feuchtigkeitswerte noch nie angesprochen haben und vermutlich nur eine Begrenzung für den Winter sind. Geschaltet wird immer über die Taupunktwerte. So wird ja dann Quasi immer bis aufs mögliche minimum die Feuchtigkeit herunter gelüftet. Aber habe dann Probleme deine Offsetanpassung zu Übernehmen.
Du Wertest Quasi über den Taupunkt nur aus ob das Lüften sinnvoll ist und regelst über die Feuchtigkeit. Welche Werte sind dann bei dir für 10 bis 20 Grad eingestellt?
Gruß
Markus
Hi Markus,
vielleicht sollten wir erst noch die Grundlagen checken.
Mein Kriterium zur Freigabe des Lüfters wird durch diese Definition realisiert.
define DEW.FAN dewpoint fan DG.BAD.TF wt -20 1.5
Also erst wenn der Taupunkt Aussen mindestens 1.5 Grad unter Taupunkt innen liegt, wird der Lüfter freigegeben.
Der Taupunkt wird ja errechnet und somit hängt die Differenz von 4 Sensoren ab, die alle Abweichungen haben.
Ausserdem sollte es ja draussen "trockener" als drinnen sein, daher diese Differenz von 1.5 Grad , die man durchaus auch noch höher wählen kann.
Diese Taupunkt-Definition erzeugt nun im Sensor DG.BAD.TF das Reading "fan" mit dem Werteberecih [on,off].
Zitat
So wird ja dann Quasi immer bis aufs mögliche minimum die Feuchtigkeit herunter gelüftet
Das halte ich nicht für so sinnvoll. Es geht doch darum, die Feuchte im Bad zu reduzieren. D.h es gibt einen Grenzwert der Feuchte
nach dessen Unterschreitung keine weitere Entfeuchtung stattfinden muss, da wir diese als "passend" empfinden.
Meine Werte:
Grenzwert für das Lüfter-Einschalt-Kriterium : 60% rel. F
Grenzwert für das Lüfter-Ausschalt-Kriterium : 58% rel. F
zu beiden Grenzwerten wird der gleitende Anteil wie oben beschrieben hinzuaddiert.
John
Hallo John,
ich realisiere das ein kleines bischen anders. Ich steuere den Lüfter nicht direkt über das Dewpoint Modul an. Einerseits hat mein Lüfter 2 Geschwindigkeiten und andererseits habe ich eine Winmatic im einsatz, so dass ich mich auch um das automatische öffnen des Fensters kümmern muss wenn Gelüftet werden soll. Und dazu möchte ich noch ein par spezials wie z.B. dass das Fenster gekippt sein soll wenn es aussen über 20 Grad hat, egal ob gelüftet werden muss oder nicht. Vorerst habe ich alles in ein großes notify gepackt und mit einer längeren if-then-else Abfrage Verknüft. Für einen eleganteren Weg reichen meine Fhem und Perl kenntnisse noch nicht aus. Für die automatische Lüftung sind 3 Threshold Module vorhanden. Je 1 für den Schwellwert der Feuchtigkeit und die langsame und schnelle Geschwindigkeit des Lüfters abhängig vom Taupunkt.
Das es nicht sinnvoll ist die Feuchtigkeit aufs minimum zu reduzieren verstehe ich. Daran habe ich noch nicht gedacht. Ich bin in einem Neubau indem es anscheinend noch ziemlich feucht ist. Ich beschäftige mich ja erst seit 2 Wochen mit dem Thema. In der Zeit habe ich es aber nicht geschafft unter 70% zu kommen. Darum die Aussage dass es bisher immer nur über den Taupunkt schaltet.
Deinen gleitenden Grenzwert für die Feuchtigkeit werde ich dankend übernehmen. Wenn es trockener ist wird es sich bestimmt bezahlt machen :-)
Ich werde auch versuchen so was noch für den Taupunkt einzuführen. Ich schalte im Moment die langsame Geschwindigkeit bei einer differenz des Taupunktes von 2,5 Grad ein und bei 1,5 grad wieder aus. Das führt dazu dass am Tag kaum gelüftet wird, was auch ok ist, aber bei Nacht ständig das Fenster im halb Stunden Takt auf und zu fährt und den Akku lehr saugt. Von dem her werde ich mal ausprobieren wie es sich verhält wenn ich den Taupunkt Offset z.B. bei einer Aussentemp von >20Grad auf 2,5; 10 bis 20 Grad auf 3,5 und bei <10 Grad auf 4,5 stelle.
Kannst Du vielleicht dazu mit deiner langzeit Erfahrung ein Aussage treffen ob es so Nachteile haben könnte?
Gruß
Markus
Hallo Markus
ZitatIch steuere den Lüfter nicht direkt über das Dewpoint Modul an
Das mache ich ja auch nicht. Dewpoint liefert die Ja/Nein-Information, ob es Sinn macht mit Belüftung zu entfeuchten.
Grundsätzlich solltest du den Feuchte- und Temperaturverlauf aufzeichnen, am besten zusammen mit der Ein/Aus-Anforderung
für den Lüfter, damit du siehst, ob der Regelmechanismus effizient ist.
ZitatIch schalte im Moment die langsame Geschwindigkeit bei einer differenz des Taupunktes von 2,5 Grad ein und bei 1,5 grad wieder aus.
Das halte ich nicht für sinnvoll. Du willst doch nicht die Taupunkt-Differenz regeln sondern die Feuchte.
Also muss die Führungsgröße (der Istwert) die relative Feuchte des Raumes sein, dessen Feuchte du regeln willst.
Beispiel: (nicht perl konform)a. du willst, dass die relative Feuchte im Raum bei <=65% liegt
b. Dewpoint liefert mit Reading fan, die Info, ob es Sinn macht per Lüftung zu entfeuchten
c. wenn Ist-Feuchte >= 65% UND fan="ON" UND Lüfter=OFF, dann Lüfter einschalten
d. wenn (Ist-Feuchte <= (62)% UND Lüfter=ON) ODER (fan="OFF") , dann Lüfter ausschalten
John
Hallo John,
sorry, ich glaube ich habe dir ein par Wichtige Infos vorenthalten.
Das Modul Dewpoint nutze ich mittels:
define dew_all dewpoint dewpoint .* temperature humidity dewpoint
Damit habe ich gleichmal an allen Sensoren die Taupunkt Werte welche Temperatur und Feuchtigkeit messen können.
Dann nehme ich ein THRESHOLD Modul um für die Aussen- und Innen-Tautemperatur einen Ein- und Ausschaltschwelle zu erzeugen.
Bis hierher bin ich in etwa an dem Punkt was du mit dem Dewpoint alleine machst.
ZitatGrundsätzlich solltest du den Feuchte- und Temperaturverlauf aufzeichnen, am besten zusammen mit der Ein/Aus-Anforderung
für den Lüfter, damit du siehst, ob der Regelmechanismus effizient ist.
Das mache ich bereits. Und hier nervt es mich auch etwas das unter den aktuellen Wettertechnischen Bedingungen in der Nacht zwischen 24 und 5 Uhr alle 15 Minuten der Lüfter An und Aus geht. Darum würde ich gerne an irgendwelchen Schrauben drehen. Weiß aber noch nicht genau welche die richtigen sind.
ZitatAlso muss die Führungsgröße (der Istwert) die relative Feuchte des Raumes sein, dessen Feuchte du regeln willst.
Ich weiß und so wie du das erklärst hätte ich das auch gerne. Der Lüfter soll abschalten sobald die Wunschfeuchtigkeit von 65% erreicht ist. Aber auch nur wenn es sinn macht. Und das tut es nur wenn die Taupunkttemperatur Innen mindestens um 1 Grad höher ist als Aussen. Also schaltet der Lüfter auch ab wenn diese bedingung erfüllt ist. Und das tut er. Bei mir herrscht eine Luftfeuchtigkeit von fast 70% wenn der Taupunkt Innen diese Grenze erreicht hat und schaltet dann ab. Wenn ich die Taupunkt Grenze weiter herabsetze läuft der Lüfter ständig ohne dass sich groß was an der Luftfeuchtigkeit ändert.
Gut im Moment ist es draussen sehr sehr Feucht, Nachts immer über 80%. Vielleicht liegt es daran. Und daran dass ich erst im Mai eingezogen bin und im Haus generell eine noch sehr hohe Luftfeuchtigkeit herrscht die nicht einfach auf die schnelle Weggelüftet werden kann. Vielleicht ist es nach dem Winter auch schon besser/trockener.
Falls Du nichts mehr dazu zu sagen hast, danke ich dir trotzdem recht herzlich. Ich denke du hast mir eine Möglichkeit gezeigt wie ich aktiv in die Regelung eingreifen kann und jetzt muss ich halt etwas experimentieren ;)
Grüsse
Markus
P.S.:
Diese Nacht habe ich das Feuchtigkeits Offset geändert auf 70/75%. Das Ergebnis ist vielversprechend.
Hallo Zusammen,
nach einer Testwoche kann ich berichten dass John's Lösung ganz gut funktioniert. Und dass er recht hatte mit der Aussage dass die Feuchtigkeit die zu Regelnde Komponente sein sollte.
Jetzt bin ich gerade noch beim Feintuning. Es kommt bei ungünstigen Situationen vor dass der Lüfter 2 Stunden lang läuft. Um dem ein kleines bischen entgegenzuwirken würde ich ganz gerne noch etwas mit einbauen dass der Lüfter wenn er sich abgeschaltet hat eine Pause einlegen muss die mindestens solange dauert wie die Zeit die er zuvor gelaufen ist. Nur stehe ich gerade auf dem Schlauch wie ich das realisieren könnte.
Hat vielleicht jemand einen Tip oder einen Ansatz wie so was aufgebaut sein könnte?
VG
Markus