Badezimmerlüfter, meine Lösung

Begonnen von Herr 3x, 17 Dezember 2013, 19:22:25

Vorheriges Thema - Nächstes Thema

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

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

daschauher

#17
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

John

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;

}
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

daschauher

#19
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

John

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

daschauher

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

John

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

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

daschauher

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

John

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

daschauher

#25
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.

daschauher

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