Kellerlüftung optimieren

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

Vorheriges Thema - Nächstes Thema

juliar

Hallo zusammen,
ich habe mir eine Kellerlüftung mit 2 Lüftern gebaut (einer pustet rein, einer raus). Diese soll über FHEM gesteuert werden. Hierfür habe ich einen Außensensor, einen Innensensor und 2 Funksteckdosen. Aus der Doku habe ich mir folgendes zusammengebaut (bin Programmier-Laie):
define dew_all dewpoint dewpoint .* temperature humidity dewpoint
define dew_state dewpoint dewpoint .* T H D
define dew_fan1 dewpoint fan Sensor_Innen Sensor_Aussen 0 2
define dew_fan1_on notify Sensor_Innen.*fan:.*on set Steckdose_1 on;;set Steckdose_2 on
define dew_fan1_off notify Sensor_Innen.*fan:.*off set Steckdose_1 off;;set Steckdose_2 off

Das funktioniert soweit ich das beurteilen kann bislang auch schonmal ganz gut. Nun möchte ich diese Funktion aber noch um 3 Details erweitern und hoffe ich könnt mir helfen:

1. Die Steuerung soll (aus Lärmgründen) erstmal nur von 8:00 Uhr bis 21:00 Uhr laufen. Nacht sollen die Steckdosen also immer "off" sein.
2. Die Lüfter sollen nur anspringen wenn die relative Luftfeuchtigkeit vom inneren Sensor größer 60% ist, ansonsten sollen die Steckdosen "off" bleiben.
3. Die Lüfter sollen immer für max. 2 Stunden anspringen und dann erstmal "off" gehen, damit sich die Luftfeuchtigkeit im Keller wieder "verteilen" kann.

Wäre echt super wenn Ihr mir bei den obigen 3 Anforderungen helfen könntet.

Danke und schönen Gruß
Julia

PS: Ein nettes AddOn wäre noch wenn ich irgendwie aufzeichnen könnte wieviel Stunden die Steckdosen "an". :-)

Damian

Ich habe hier:

http://fhem.de/commandref_DE.html#THRESHOLD

einige Beispiele zur Lüftungssteuerung dargestellt. Die lassen sich auch um eine Zeitsteuerung ergänzen.

Gruß

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

Ich79

#2
Hi!
Ich denke TRESHOLD wäre dafür optimal. Den THRESHOLD kannst Du per "at" abends auch deaktivieren und morgens aktivieren lassen.
Viele Grüße!

[EDIT]
Für die Laufzeit kannst du dir mal HOURCOUNTER ansehen. Der macht genau das ;)
[/EDIT]
Fritz!Box 7490 mit FHEM 5.6 und HM-CFG-USB-2 (hmland)
AVM: 1x Fritz!Powerline546E
HM: 6x HM-CC-RT-DN / 2x HM-Sec-RHS / 1x HM-WDS40-TH-I-2 / 2x HM-Sec-SC-2 / 1x HM-LC-Sw4-Ba-PCB

Damian

Zitat von: Ich79 am 24 Februar 2014, 22:24:09
Hi!
Ich denke TRESHOLD wäre dafür optimal. Den THRESHOLD kannst Du per "at" abends auch deaktivieren und morgens aktivieren lassen.
Viele Grüße!

Oder in Kombination mit Heating_Control bzw. WeekdayTimer die Schaltschwelle über set TH_Modul desired <Wert> verändern, siehe Beispiel für zeitgesteuertes Heizen des Moduls.

Gruß

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

AHA1805

Zitat von: juliar am 24 Februar 2014, 21:12:33

2. Die Lüfter sollen nur anspringen wenn die relative Luftfeuchtigkeit vom inneren Sensor größer 60% ist, ansonsten sollen die Steckdosen "off" bleiben.


Hallo

ich würde dir nicht empfehlen die Regelung nicht über die relative Luftfeuchtigkeit zu machen.

Den speziell im Keller kann dies im Sommer zu einem Drugschluss führen und man bringt mehr Feuchtigkeit in den Keller als man schon hat.

Solche Regelungen sollten über die absolute feuchte laufen.

http://de.m.wikipedia.org/wiki/Mollier-h-x-Diagramm

Bin auch gerade an so etwas ähnlichem dran,
eine Perl Funktion zum umrechnen habe ich schon in mein 99_myUtils integriert.

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Damian

Zitat von: AHA1805 am 25 Februar 2014, 17:56:15
ich würde dir nicht empfehlen die Regelung nicht über die relative Luftfeuchtigkeit zu machen.

Dafür gibt es gerade einen Taupunkt(dewpoint)-Vergleich zwischen Innen und Außen.

Auch dafür gibt es Beispiele beim THRESHOLD-Modul.

Gruß

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

AHA1805

Nach kurzem lesen der commandref.html muss ich Damian recht geben ist genau das was du brauchst.

Again what learned

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

juliar

Danke für Eure Antworten! Die Steuerung läuft ja heute schon über den Taupunkt mit dem devpoint-Modul. Die relative Luftfeuchtigkeit soll ja nur zusätzlich mit rein, da es ja beispielsweise unnötig ist weiter zu lüften wenn die rel. Luftfeuchtigkeit schon unter 50% ist im Keller.

Dann muss ich mir das mit dem THRESHOLD mal genauer ansehen. Auf den ersten Blick habe ich das jetzt noch nicht so ganz verstanden aber schaue mal wie ich klar komme und poste dann hier meinen Versuch. :-)

Schönen Gruß
Julia

juliar

Hallo zusammen,

hab jetzt folgendes zusammengebastelt:
define TH_Luftfeuchtigkeit THRESHOLD Sensor_Innen:humidity:0:55||||on:off|_sc
define dew1 dewpoint dewpoint Sensor_Innen
define dew2 dewpoint dewpoint Sensor_Aussen
define TH_Keller1 THRESHOLD Sensor_Innen:dewpoint:2:Sensor_Aussen:dewpoint AND TH_Luftfeuchtigkeit:state:on Steckdose_1|set @ on|set @ off|2
define TH_Keller2 THRESHOLD Sensor_Innen:dewpoint:2:Sensor_Aussen:dewpoint AND TH_Luftfeuchtigkeit:state:on Steckdose_2|set @ on|set @ off|2


Bei einer Innenluftfeuchtigkeit von über 55% sollen die Lüfter angehen und darunter aus. Außerdem sollen die Lüfter nur angehen wenn die Taupunktdifferenz größer 2 Grad ist. Hoffe das stimmt soweit mit obigem Code.

Aber wie kann ich die obige Steuerung jetzt mit Heating_Control verbinden so das die Lüfter nur tagsüber laufen und wie kann ich ein weiteres THRESHOLD mit einbinden damit die Lüfter nur laufen wenn es über 5 Grad draussen ist?

Danke und Gruß
Julia

Damian

Zitat von: juliar am 04 März 2014, 22:02:25
Hallo zusammen,

hab jetzt folgendes zusammengebastelt:
define TH_Luftfeuchtigkeit THRESHOLD Sensor_Innen:humidity:0:55||||on:off|_sc
define dew1 dewpoint dewpoint Sensor_Innen
define dew2 dewpoint dewpoint Sensor_Aussen
define TH_Keller1 THRESHOLD Sensor_Innen:dewpoint:2:Sensor_Aussen:dewpoint AND TH_Luftfeuchtigkeit:state:on Steckdose_1|set @ on|set @ off|2
define TH_Keller2 THRESHOLD Sensor_Innen:dewpoint:2:Sensor_Aussen:dewpoint AND TH_Luftfeuchtigkeit:state:on Steckdose_2|set @ on|set @ off|2


Bei einer Innenluftfeuchtigkeit von über 55% sollen die Lüfter angehen und darunter aus. Außerdem sollen die Lüfter nur angehen wenn die Taupunktdifferenz größer 2 Grad ist. Hoffe das stimmt soweit mit obigem Code.

Aber wie kann ich die obige Steuerung jetzt mit Heating_Control verbinden so das die Lüfter nur tagsüber laufen und wie kann ich ein weiteres THRESHOLD mit einbinden damit die Lüfter nur laufen wenn es über 5 Grad draussen ist?

Danke und Gruß
Julia

Indem du mit:
define H_Luftfeuchtigkeit Heating_Control TH_Luftfeuchtigkeit 08:00|55 21:00|100 set @ desired %

Die Grenze so hoch wählst (100), dass sie zum Einschalten nicht erreicht wird.

Die 55 würde ich dann hier rausnehmen, sonst wird sie beim Neustart wieder aktiviert.

define TH_Luftfeuchtigkeit THRESHOLD Sensor_Innen:humidity:0||||on:off|_sc

Differenz von zwei Grad wäre zum Einschalten eher mit Offset anzugeben:

define TH_Keller1 THRESHOLD Sensor_Innen:dewpoint:0:Sensor_Aussen:dewpoint:-2 AND TH_Luftfeuchtigkeit:state:on Steckdose_1|set @ on|set @ off|2

Du hast Hysterese von zwei Grad definiert.

Die Sache mit 5 Grad draußen musst du, wie in der Doku von THREHOLD mit einem weiteren THRESHOLD-Modul abdecken und das musst du dann mit TH_Luffeuchtigkeit in eine Structure packen und die dann bei AND statt TH_Luftfeuchtigkeit angeben.

Alles klar  :o

Probiere erst mal ohne die 5 Grad Geschichte. Wenn ich morgen dazu komme, kann ich dir einen Vorschlag machen.

Gruß

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

juliar

#10
Hallo Damian,

Danke für Deine Hilfe. Code sieht jetzt so aus:
define TH_Luftfeuchtigkeit THRESHOLD Sensor_Innen:humidity:0||||on:off|_sc
define dew1 dewpoint dewpoint Sensor_Innen
define dew2 dewpoint dewpoint Sensor_Aussen
define TH_Keller1 THRESHOLD Sensor_Innen:dewpoint:0:Sensor_Aussen:dewpoint:-2 AND TH_Luftfeuchtigkeit:state:on Steckdose_1|set @ on|set @ off|2
define TH_Keller2 THRESHOLD Sensor_Innen:dewpoint:0:Sensor_Aussen:dewpoint:-2 AND TH_Luftfeuchtigkeit:state:on Steckdose_2|set @ on|set @ off|2
define H_Luftfeuchtigkeit Heating_Control TH_Luftfeuchtigkeit 08:00|55 22:50|100 set @ desired %


Steuerung hat sich dann auch wie eingestellt um 22:50 Uhr ausgeschaltet. Scheint also soweit zu funktonieren. :-)

Wenn Du mir morgen oder so noch mit der Structure Geschichte helfen könntest wäre supi. :-)

Danke und schönen Gruß
Julia

Damian

#11
Hallo Julia,

so, dann wollen wir mal schauen, wie das  mit den 5 Grad funktioniert.

Als erstes fällt mir noch auf, dass du wahrscheinlich bei dewpoint 2 Grad differenz zum Außensensor haben willst, dann müsste man die Schaltschwelle eher erhöhen (+2) und nicht reduzieren (-2) siehe unten.

Jetzt zu den 5 Grad:

Als erstes defnierst du dir einen THRESHOLD für die 5-Grad-Grenze:

define TH_Warm THRESHOLD Sensor_Außen:temperature:0:5||||on:off|_sc

TH_Warm ist jetzt "on", wenn es draußen wärmer als 5 Grad ist, sonst "off"

Jetzt die structure:

define S_Lueftung S_type TH_Luftfeuchtigkeit TH_Warm
attr S_Lueftung clientstate_behavior relativeKnown
attr S_Lueftung clientstate_priority off on


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

Und dann noch den zentralen THRESHOLD (man kann beide Kellerräume zusammenfassen):

define TH_Keller THRESHOLD 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

Gruß

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

juliar

Sorry, für meine späte Rückmeldung. Mein aktueller Code:
define TH_Luftfeuchtigkeit THRESHOLD Sensor_Innen:humidity:0||||on:off|_sc
define TH_Warm THRESHOLD Sensor_Aussen:temperature:0:5||||on:off|_sc
define S_Lueftung S_type TH_Luftfeuchtigkeit TH_Warm
attr S_Lueftung clientstate_behavior relativeKnown
attr S_Lueftung clientstate_priority off on
define dew1 dewpoint dewpoint Sensor_Innen
define dew2 dewpoint dewpoint Sensor_Aussen
define TH_Keller THRESHOLD 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
define H_Luftfeuchtigkeit Heating_Control TH_Luftfeuchtigkeit 08:00|62 22:00|100 set @ desired %


Beim Speichern kommt aber schon ein Fehler: "Unknown module S_type, choose one of ALL3076 ALL4000T...". Komm da irgendwie nicht weiter. :-(

Danke und Gruß
Julia

Damian

Da fehlte offenbar noch das Schlüsselwort structure, also:

define S_Lueftung structure S_type TH_Luftfeuchtigkeit TH_Warm

Gruß

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

juliar

Das ging ja fix. :-)

Fehlermeldung ist weg. Aber irgendwas klappt nicht. Hab die Zeit auf 22 Uhr erhöht, Luftfeuchtigkeit innen liegt bei 64% und Taupunkte sind 1 bzw. 8 Grad. Somit müssten die Lüfter an sein, sind sie aber nicht. Noch ne Idee?

Danke und Gruß
Julia