Problem mit DOIF und THRESHOLD

Begonnen von guna83, 03 November 2015, 16:21:14

Vorheriges Thema - Nächstes Thema

guna83

Hallo,

ich versuche ein Lüftungssteuerung mit DOIF und TRESHOLD zu bauen. Wenn gewisse Co2-Grenzwerte überschritten sind, soll FHEM jeweils in die entsprechende Stufe schalten:

Zuerst ein dummy-Schalter zum ein/ausschalten der Automatik.:
define Auto.Schalter.Lueften dummy
attr Auto.Schalter.Lueften alias Lueftungsautomatik
attr Auto.Schalter.Lueften devStateIcon on:10px-kreis-gruen off:10px-kreis-rot
attr Auto.Schalter.Lueften setList on off


Ohne ein Device zum Schalten anzugeben, scheint die Hysterese bei THRESHOLD nicht zu funktionieren. Daher hier der "dooferdummy" - ohne sonstige Funktion.:
define dooferdummy dummy

Die THRESHOLD-Devices. Funktionieren wie gewünscht. Ist der Messwert unterschritten: on, wird der entsprechende Messwert überschritten: off.:
define Auto.Wert.Lueften.Co2.Wohnen.2 THRESHOLD Umwelt.Co2.Wohnen:state:100:700 dooferdummy||||off:on
define Auto.Wert.Lueften.Co2.Schlafen.2 THRESHOLD Umwelt.Co2.Schlafen:state:100:700 dooferdummy||||off:on
define Auto.Wert.Lueften.Co2.Wohnen.3 THRESHOLD Umwelt.Co2.Wohnen:state:100:850 dooferdummy||||off:on
define Auto.Wert.Lueften.Co2.Schlafen.3 THRESHOLD Umwelt.Co2.Schlafen:state:100:850 dooferdummy||||off:on
define Auto.Wert.Lueften.Co2.Wohnen.4 THRESHOLD Umwelt.Co2.Wohnen:state:100:1000 dooferdummy||||off:on
define Auto.Wert.Lueften.Co2.Schlafen.4 THRESHOLD Umwelt.Co2.Schlafen:state:100:1000 dooferdummy||||off:on


Vermutlich liegt hier irgendwo das Problem, per DOIF versuche ich die passende Stufe zu setzen. Der set-Befehl an sich funktioniert auch. Bei einem Test ging die Lüftung auf Stufe 4, springt dann eine Weile zwischen 4 und 2 hin und her, danach zwischen 3 und 1, dann 2 und 1 um schließlich sich bei 1 einzupendeln obwohl noch noch Auto.Wert.Lueften.Wohnen.2 und 3 gesetzt waren. Der Co2-Wert war in dieser Zeit auch konstant fallend ohne Sprünge:
define Auto.Funktion.Lueften DOIF ([Auto.Schalter.Lueften] ne "on") \
DOELSEIF ([Auto.Wert.Lueften.Co2.Wohnen.4] eq "off" or [Auto.Wert.Lueften.Co2.Schlafen.4] eq "off") (set Lueftung.Wert.Stufe value 50 g2) \
DOELSEIF ([Auto.Wert.Lueften.Co2.Wohnen.3] eq "off" or [Auto.Wert.Lueften.Co2.Schlafen.3] eq "off") (set Lueftung.Wert.Stufe value 37 g2) \
DOELSEIF ([Auto.Wert.Lueften.Co2.Wohnen.2] eq "off" or [Auto.Wert.Lueften.Co2.Schlafen.2] eq "off") (set Lueftung.Wert.Stufe value 25 g2) \
DOELSE (set Lueftung.Wert.Stufe value 12 g2)
attr Auto.Funktion.Lueften cmdState off|4|3|2|1


Viele Grüße
Guna
1x Intel(R) Atom(TM) with FHEM@2.4GHz, CUNX/KS300, CUNO/Max, KNXD, FTUI 2.2
1x RasPi 2 mit 7" Touch-Display für FTUI

Bennemannc

Hallo,

die mehreren THRESHOLD auf das gleiche Gerät würden mich stören. Was ist, wenn Du das nur mit DOIF aufbaust ? Statt der Hysterese könnte man ein delay nehmen.
Also
DOIF ([Umwelt.CO2.Wohnen] > 1000 or [Umwelt.CO2.Schlafen] > 1000) (set Lüfter Stufe 4)
DOELSEIF ([Umwelt.CO2.Wohnen] > 850 or [Umwelt.CO2.Schlafen] > 850) (set Lüfter Stufe 3)
DOELSEIF ([Umwelt.CO2.Wohnen] > 700 or [Umwelt.CO2.Schlafen] > 700) (set Lüfter Stufe 2)
.....
attr Name_des_DOIF delay 6000

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

CoolTux

Es gibt bezüglich Lüftungssteuerung und TRESHOLD einen tollen Wikieintrag. Nur mal so am Rande erwähnt    ;)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

guna83

delay gibt einen Fehler aus, aber mit "attr DOIF-DEVICE wait 0:5:5:5:5" funktioniert es. Auch wenn mir eine Lösung mit Hysterese besser gefallen hätte.
Den Wikibeitrag finde ich nicht. Eine Suche nach Lüftung ergibt nur die Kategorie "Klima und Lüftung", dadrin gibt es nur einen Beitrag zu einer Lüftung die aber nur "an/aus" kennt, keine Stufen. Die Suche nach Threshold liefert auch nichts was mir weitergeholfen hätte :-/.
1x Intel(R) Atom(TM) with FHEM@2.4GHz, CUNX/KS300, CUNO/Max, KNXD, FTUI 2.2
1x RasPi 2 mit 7" Touch-Display für FTUI

CoolTux

Sory war die CommandRef

Beispiele für Belüftungssteuerung:

Einfache Belüftung anhand der Luftfeuchtigkeit:

Es soll gelüftet werden, wenn die Feuchtigkeit im Zimmer über 70 % ist; bei 60 % geht der Lüfter wieder aus.

define TH_hum THRESHOLD sens:humidity:10:70 ventilator|set @ on|set @ off|1

Belüftung anhand des Taupunktes, abhängig von der Luftfeuchtigkeit innen:

Es soll gelüftet werden, wenn die Luftfeuchtigkeit im Zimmer über 70 % ist und der Taupunkt innen höher ist als außen.

define TH_hum THRESHOLD sens:humidity:10:70||||on:off|_sc
define dewpoint dewpoint indoor
define dewpoint dewpoint outdoor
define TH_room THRESHOLD indoor:dewpoint:0:outdoor:dewpoint AND TH_hum:state:on ventilator|set @ on|set @ off|2

Belüftung in Kombination mit einem Lichtschalter mit Nachlaufsteuerung: siehe DOIF-Modul.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net