Kellerlüftung optimieren

Begonnen von juliar, 24 Februar 2014, 21:12:33

Vorheriges Thema - Nächstes Thema

Damian

Schreibe in der Kommando Zeile list TH_Keller und poste hier das Ergebnis.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

juliar

Internals:
   CHANGED   
   DEF        Sensor_Innen:dewpoint:0:Sensor_Aussen:dewpoint:2 AND S_Lueftung:state:on |set Steckdose_1,Steckdose_2 on|set Steckdose_1,Steckdose_2 off|2
   NAME       TH_Keller
   NR         121
   NTFY_ORDER 50-TH_Keller
   STATE      external 1.4
   TYPE       THRESHOLD
   cmd1_gt    set Steckdose_1,Steckdose_2 on
   cmd2_lt    set Steckdose_1,Steckdose_2 off
   cmd_default 2
   hysteresis 0
   offset     2
   operator   AND
   sensor     Sensor_Innen
   sensor2    S_Lueftung
   sensor2_reading state
   sensor2_state on
   sensor_reading dewpoint
   target_reading dewpoint
   target_sensor Sensor_Aussen
   Readings:
     2014-03-10 21:40:13   cmd             cmd2_lt
     2014-03-10 21:42:38   desired_value   1.4
     2014-03-10 21:40:08   mode            external
     2014-03-10 21:29:16   sensor2_state   undefined
     2014-03-10 21:43:40   sensor_value    7.9
     2014-03-10 21:42:38   state           external 1.4
     2014-03-10 21:42:38   threshold_max   3.4
     2014-03-10 21:42:38   threshold_min   3.4
Attributes:
   state_format _m _dv

Damian

#17
Deine structure hat noch einen undefinierten Zustand.

Es sollte gelten - Zitat:

´Die structure sollte jetzt "off" sein, sobald TH_Luftfeuchtigkeit oder TH_Warm "off" ist und "on", wenn beide "on" sind´

Musst dich durchhangeln und schauen, welchen Zustand TH_Warm hat bzw. TH_Luftfeuchtigkeit.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

TomWest

Hi,

kannst Du mir bitte noch mal erklären, warum Du zwei Lüfter in unterschiedliche Richtungen benutzt? Ich würde immer nur von außen nach innen Luft transportieren, wenn die Taupunktdifferenz entsprechend ist. Wenn Du Luft von innen nach außen transportierst, wo kommt denn dann die nachströmende Luft her? Durch die Kellertreppe aus der Wohnung? Dann hast du nicht viel gewonnen.

Bis dann,
Thomas
FHEM on R-π - HM-TC-IT-WM-W-EU - HM-LC-Sw1-FM - HM-SCI-3-FM - HM-CC-RT-DN

juliar

@TomWest:
Dachte eigentlich das wäre logisch. Beide Lüfter gehen doch parallel an und parallel aus. Da es sich um die gleichen Lüftermodelle handelt pustet der eine die gleiche Menge Luft (mit hoher Feuchtigkeit) raus wie der ander Lüfter die Luft reinpustet (mit geringer Feuchtigkeit). Somit sollte immer der gleiche "Druck" herschen und keine Luft aus dem EG gezogen werden. Treppe und Tür sind auch einigermaßen dicht.

@damian:
Werde das heute nochmal prüfen. Gestern bin ich zu keinem Ergebnis gekommen warum es nicht geht. Trotzdem schonmal Danke!

Schönen Gruß
Julia

LastActionHero

Darf ich mich hier mal einklinken?

Ich bin grade dabei eine ähnliche Geschichte zu basteln, und zwar möchte ich eine Anzeige haben, die anzeigt ob man lüften kann/soll oder nicht. Dazu habe ich einen Dummy genommen mit den states Ja, Nein, Egal, die dewpoints über allen devices berechnen lassen und dann den folgenden Code:

define TH_hum THRESHOLD WZ_Thermostat_Weather:humidity:0:65||||on:off|_sc
define TH_room THRESHOLD WZ_Thermostat_Weather:dewpoint:0:MyWeather:dewpoint:-2 AND TH_hum:state:on Lueften|set @ Ja|set @ Nein|2


Das war der erste Schritt, ab einer Luftfeuchte von 65% und Taupunktdifferenz von 2 grad C, soll die Anzeige mir ausgeben: JA, lüften. Das hat auch einmal funktioniert, jetzt bleibt der state meines dummy Lueften aber ständig auf Ja stehen, egal wie hoch ich die Luftfeuchtebedingung setze.

Das ist das erste Problem. In der zweiten Asbaustufe möchte ich dann, dass bei einer Luftfeuchte zwischen 45 und 65 bei Taupunktdifferenz mind. 2 der state auf egal gewechslt wird. Sllte die taupunktdifferzenz <2 sein, stellt er ja immer auf Nein.

Wie bekomm ich das hin?

Damian

Zitat von: LastActionHero am 25 Mai 2014, 02:28:39
Darf ich mich hier mal einklinken?

Ich bin grade dabei eine ähnliche Geschichte zu basteln, und zwar möchte ich eine Anzeige haben, die anzeigt ob man lüften kann/soll oder nicht. Dazu habe ich einen Dummy genommen mit den states Ja, Nein, Egal, die dewpoints über allen devices berechnen lassen und dann den folgenden Code:

define TH_hum THRESHOLD WZ_Thermostat_Weather:humidity:0:65||||on:off|_sc
define TH_room THRESHOLD WZ_Thermostat_Weather:dewpoint:0:MyWeather:dewpoint:-2 AND TH_hum:state:on Lueften|set @ Ja|set @ Nein|2


Das war der erste Schritt, ab einer Luftfeuchte von 65% und Taupunktdifferenz von 2 grad C, soll die Anzeige mir ausgeben: JA, lüften. Das hat auch einmal funktioniert, jetzt bleibt der state meines dummy Lueften aber ständig auf Ja stehen, egal wie hoch ich die Luftfeuchtebedingung setze.

Das ist das erste Problem. In der zweiten Asbaustufe möchte ich dann, dass bei einer Luftfeuchte zwischen 45 und 65 bei Taupunktdifferenz mind. 2 der state auf egal gewechslt wird. Sllte die taupunktdifferzenz <2 sein, stellt er ja immer auf Nein.

Wie bekomm ich das hin?

Mit den Informationen kann man keine Fehleranalyse betreiben. Gebe in der Kommandozeile "list TH_hum" und "list TH_room" und poste hier die Ergebnisse.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

LastActionHero

#22
Entwarnung! Also der Code oben für einfache Anzeige Lüften JA / NEIN ab einer gewissen Luftfeuchte und Taupunktdiff. >2°C funktioniert!
War wohl bisschen durch heute Nacht um halb 3 - 24h-Dienst halt...

Aber wie bekomme ich es nun hin, dass er sagt ab Luftfeuchte 40-65 und Taupunktdiff. >2 -> Dummy-State: Egal = Lüften b. Bedarf möglich, und ab Luftfeuchte >65% und Taupunktdiff. >2 -> Dummy-State: Ja -> Lüftung empfohlen. ?

trotzdem hier nochmal die internals (Schwelle ja/nein hatte ich hier auf 50% stehen):

Internals:
   DEF        WZ_Thermostat_Weather:humidity:0:50||||on:off|_sc
   NAME       TH_hum
   NR         270
   NTFY_ORDER 50-TH_hum
   STATE      on
   TYPE       THRESHOLD
   cmd1_gt
   cmd2_lt
   cmd_default 0
   hysteresis 0
   init_desired_value 50
   offset     0
   sensor     WZ_Thermostat_Weather
   sensor_reading humidity
   Readings:
     2014-05-25 16:02:14   cmd             cmd1_gt
     2014-05-25 16:00:14   desired_value   50
     2014-05-25 16:00:14   mode            active
     2014-05-25 16:05:11   sensor_value    55
     2014-05-25 16:02:14   state           on
     2014-05-25 16:00:14   threshold_max   50
     2014-05-25 16:00:14   threshold_min   50
Attributes:
   state_cmd1_gt on
   state_cmd2_lt off
   state_format _sc



Internals:
   CHANGED
   DEF        WZ_Thermostat_Weather:dewpoint:0:MyWeather:dewpoint:-2 AND TH_hum:state:on Lueften|set @ Ja|set @ Nein|2
   NAME       TH_room
   NR         271
   NTFY_ORDER 50-TH_room
   STATE      external 8.2
   TYPE       THRESHOLD
   cmd1_gt    set Lueften Ja
   cmd2_lt    set Lueften Nein
   cmd_default 2
   hysteresis 0
   offset     -2
   operator   AND
   sensor     WZ_Thermostat_Weather
   sensor2    TH_hum
   sensor2_reading state
   sensor2_state on
   sensor_reading dewpoint
   target_reading dewpoint
   target_sensor MyWeather
   Readings:
     2014-05-25 16:02:14   cmd             cmd1_gt
     2014-05-25 15:45:10   desired_value   8.2
     2014-05-25 16:00:14   mode            external
     2014-05-25 16:02:14   sensor2_state   on
     2014-05-25 16:05:11   sensor_value    12.5
     2014-05-25 15:45:10   state           external 8.2
     2014-05-25 15:45:10   threshold_max   6.2
     2014-05-25 15:45:10   threshold_min   6.2
Attributes:
   number_format %.1f
   state_format _m _dv

Damian

Zitat von: LastActionHero am 25 Mai 2014, 16:05:49
Entwarnung! Also der Code oben für einfache Anzeige Lüften JA / NEIN ab einer gewissen Luftfeuchte und Taupunktdiff. >2°C funktioniert!
War wohl bisschen durch heute Nacht um halb 3 - 24h-Dienst halt...

Aber wie bekomme ich es nun hin, dass er sagt ab Luftfeuchte 40-65 und Taupunktdiff. >2 -> Dummy-State: Egal = Lüften b. Bedarf möglich, und ab Luftfeuchte >65% und Taupunktdiff. >2 -> Dummy-State: Ja -> Lüftung empfohlen. ?

trotzdem hier nochmal die internals (Schwelle ja/nein hatte ich hier auf 50% stehen):


Ein THRESHOLD-Modul kennt nur zwei Zustände, du möchtest aber drei: nicht Lüften, bei Bedarf und empfohlen.

Das wird mit THRESHOLD nicht funktionieren.

So etwas musst du über Abfragen machen mit IF oder perl-if oder demnächst über DOIF (wird noch entwickelt).

Gruß

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

LastActionHero

Mh ok, also wieder weg von threshold! Werde mich die nächsten tage dransetzen und versuchen was zu schreiben, muss mich dann sicherlich nochmal hier zu wort melden. Ich kann die syntax von perl nicht...habe mal pascal gelernt, aber das ist auch schon über 10 jahre her...

Sinngemäss muss es ja über ein notify laufen mit der abfrage if dewpoint1-devpoint2>=2 and Sensor_innen:.humidity [45-64] set Lueften egal, dann müsste elseif gehen, wieder dewpoint nun aber humidity >64 set Lueften Ja else set Lueften Nein.
Oer?

Dann müsste ich das nur noch in ordentlichen code packen :)

Damian

#25
Zitat von: LastActionHero am 25 Mai 2014, 17:48:47
Mh ok, also wieder weg von threshold! Werde mich die nächsten tage dransetzen und versuchen was zu schreiben, muss mich dann sicherlich nochmal hier zu wort melden. Ich kann die syntax von perl nicht...habe mal pascal gelernt, aber das ist auch schon über 10 jahre her...

Sinngemäss muss es ja über ein notify laufen mit der abfrage if dewpoint1-devpoint2>=2 and Sensor_innen:.humidity [45-64] set Lueften egal, dann müsste elseif gehen, wieder dewpoint nun aber humidity >64 set Lueften Ja else set Lueften Nein.
Oer?

Dann müsste ich das nur noch in ordentlichen code packen :)

ja, z. B. so

define n_Lueftung notify WZ_Thermostat_Weather IF (([WZ_Thermostat_Weather:dewpoint]-[MyWeather:dewpoint])>=2) (IF ([WZ_Thermostat_Weather:humidity]>64) (set Lueften ja) ELSE (IF ([WZ_Thermostat_Weather:humidity]>45) (set Lueften egal) ELSE (set Lueften nein))) ELSE (set Lueften nein)

hier wird zwar bei jedem Trigger des Notifys dein Dummy geschaltet, aber beim Dummy ist das nicht so tragisch, wie bei einem echten Device.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

LastActionHero

#26
Super!! Vielen Dank!

Was meinst du mit "bei jedem trigger des notify" ?

Kann man eigentlich irgendwie treshold mit einer if bedingung verknüpfen? Ich möchte evtl. Noch einen lüfter dazu anschalten lassen im bad, wenn die luftfeuchte über 70% ist und laufen soll er bis luftfeuchte =60% aber maximal 2 stunden. Das möchte ich über einen dummy Lüfterautomatik on/off dann auch noch wahlweise und unabhängig von der Lüftungsempfehung oben, an und abschalten können.

Das würde idealerweise mit treshhold gehen, aber eben nur, wenn das mit IF kombinierbar wäre?!


Wobei, müsste auch ohne gehen, if bedingung mit mehreren faktoren drin sollte das eigentlich tun?!

Define xxx Notify if luftfeuchte >70 && dewpoint innen-dewpoint aussen >=2 && lüfterautomatik on &&lüfteraktor=off set lüfteraktor on-for-timer 7200
define xxx2 notify if luftfeuchte <=60 && lüfteraktor=on set lüfteraktor off-for-timer 3600

Sinngemäss richtig oder hab ich nen denkfehler bzw. Schlecht für den aktor?

Damian

#27
Zitat von: LastActionHero am 26 Mai 2014, 23:06:07
Super!! Vielen Dank!

Was meinst du mit "bei jedem trigger des notify" ?


Kann man eigentlich irgendwie treshold mit einer if bedingung verknüpfen? Ich möchte evtl. Noch einen lüfter dazu anschalten lassen im bad, wenn die luftfeuchte über 70% ist und laufen soll er bis luftfeuchte =60% aber maximal 2 stunden. Das möchte ich über einen dummy Lüfterautomatik on/off dann auch noch wahlweise und unabhängig von der Lüftungsempfehung oben, an und abschalten können.

Das würde idealerweise mit treshhold gehen, aber eben nur, wenn das mit IF kombinierbar wäre?!


Wobei, müsste auch ohne gehen, if bedingung mit mehreren faktoren drin sollte das eigentlich tun?!

Define xxx Notify if luftfeuchte >70 && dewpoint innen-dewpoint aussen >=2 && lüfterautomatik on &&lüfteraktor=off set lüfteraktor on-for-timer 7200
define xxx2 notify if luftfeuchte <=60 && lüfteraktor=on set lüfteraktor off-for-timer 3600

Sinngemäss richtig oder hab ich nen denkfehler bzw. Schlecht für den aktor?


Der wesentliche Unterschied zum THRESHOLD ist, dass THRESHOLD nur einmal schaltet nach Zustandswechsel des Moduls. Bei einem Notify wird, wenn du es selbst nicht separat behandelst, immer geschaltet, wenn dein Sensor Daten liefert, egal ob der Zustand wechselt oder nicht. Das müllt nicht nur deinen Log zu, sondern würde bei echten Aktoren jedes mal Senden bedeuten, was die Wahrscheinlichkeit von Kollisionen erhöht und die Credits deiner CUL unnötig verbraucht.

Das kannst du zum Einen reduzieren, indem du bei deinem Sensor das Attribut event-on-change-reading angibst, damit nur bei Änderungen des Sensors ein Event erzeugt wird. Zum Anderen könntest du bei jedem set-Befehl einen Filter setzen (z. B. set lamp:FILTER=STATE!=off off) siehe Beispiele in der Commandref zu IF.

Beim THRESHOLD kannst du nur zwei Bedingungen mit AND oder OR verknüpfen, wenn man mehr haben will muss man es über Structure regeln. Das macht die Sache komplizierter. Es gibt aber einige Beispiele dazu in der Commandref zu THRESHOLD.

Deswegen bin ich dabei DOIF (siehe Nachbarthred) zu programmieren, welches die Vorteile beider Module mitbringt (Schalten nur nach Zustandwechsel und beliebige logische Abfragen).

Gruß

Damian



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

chbla

Kurze Frage zu diesem Thema, ich habe mir auch eine Anzeige fuer den Keller gemacht, basierend auf dem Dewpoint.
Am liebsten wuerde ich das aber mit Ventilatoren machen, die Frage ist allerdings: Reicht da einer? Falls ja, in welche Richtung soll
der blasen? Vermutlich waeren 2 an unterschiedlichen stellen besser oder? (Querlueften)

LastActionHero

#29
Wie sollen wir das beantworten? :)

Wie gross ist dein Keller denn? 90qm oder 20qm oder ganz was anderes? Davon hängt ab, welchen oder wieviele Ventilatoren du brauchst. Jeder Ventilator hat eine fördermenge in m3 angegeben. Bei z.b. 90qm keller macht ein Lüfter mit 20m3 pro stunde keinen sinn, der läuft dann nämlich rund um die Uhr. Der schafft das nämlich nicht, wenn die Dewpoint-differenz nur 1-2 grad C beträgt...

Im Prinzip brauchst du eine Zuluft, und eine Abluft. Die Abluft muss nach draussen, d.h. Du brauchst entweder einen Durchbruch in der Hauswand, am Fenster oder einen Abluft-Kanal nach draussen.
Die Zuluft kann vom Erdgeschoss runterströmen oder durch einen zweiten Ventilator von draussen.

Daraus ergibt sich auch schon die Richtung! Abluft raus, Zuluft rein.
Das ganze musst du natürlich dann entsprechend mit dewpoint einstellen. Es macht keinen Sinn, im Sommer warme, feuchte Luft in den Keller mit kühlen Wänden zu pusten. Dann ist der Schimmel schon vorprogrammiert.