FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ChrisW am 18 Oktober 2015, 13:40:46

Titel: Anpassen Raumklima an MAX Fenster Kontakt
Beitrag von: ChrisW am 18 Oktober 2015, 13:40:46
Hallo,
habe bei mir folgendes im Einsatz: http://www.meintechblog.de/2015/08/raumklima-im-smart-home-mit-fhem-verbessern-taupunktoptimiertes-lueften/

Das Problem ist das der HM Kontakt den Status open/closed hat aber der Max Kontakt opened/closed.

Das ist soweit kein Problem habe es angepasst im script am anfang auch angepasst. Jedoch weiter unten wurde im Original 3x open genutzt.
Habe einfach bei allen 3 aus open opened gemacht .. leider funktioniert es so nicht irgendwo habe ich ein open zuviel ersetzt. 
Markiert mit >>>>>

Das unten übersteigt derzeit noch mein verständnis ein wenig. Vielleicht kann mir jemand kurz helfen. Ist sicher auch für andere anfänger mit MAX Kontakten ein schönes Beispiel.

DANKE


define BZ.Lueften dummy
attr BZ.Lueften event-on-change-reading state
attr BZ.Lueften room 1.Etage

define BZLueften notify (Bad_Temp.*|Bad_Fenster:(opened|closed)) {\
my $temperature_bz = ReadingsVal("Bad_Temp", "temperature", "-1");;\
my $dewpoint_bz = ReadingsVal("Bad_Temp", "dewpoint", "-1");;\
my $temperature_te = ReadingsVal("Wetter", "temperature", "-1");;\
my $dewpoint_te = ReadingsVal("Wetter", "dewpoint", "-1");;\
my $dewpoint_buffer = $temperature_bz - $dewpoint_bz;;\
my $fenster_bz = ReadingsVal("Bad_Fenster", "state", "undefined");;\
{fhem ("\
setreading BZ.Lueften temperature_bz $temperature_bz;;\
setreading BZ.Lueften dewpoint_bz $dewpoint_bz;;\
setreading BZ.Lueften temperature_te $temperature_te;;\
setreading BZ.Lueften dewpoint_te $dewpoint_te;;\
setreading BZ.Lueften dewpoint_buffer $dewpoint_buffer;;\
setreading BZ.Lueften fenster_bz $fenster_bz\
")};;\
if ($fenster_bz eq "closed" && $dewpoint_buffer >= 3) {\
fhem ("set BZ.Lueften open")\
}\
elsif ($fenster_bz eq "closed" && $dewpoint_buffer < 3 && $dewpoint_te <= $dewpoint_bz) {\
fhem ("set BZ.Lueften open")\
}\
elsif ($fenster_bz eq "closed" && $dewpoint_buffer < 3 && $dewpoint_te > $dewpoint_bz) {\
fhem ("set BZ.Lueften closed")\
}\
elsif ($fenster_bz eq ">>>>>>opened" && $dewpoint_buffer >= 3) {\
fhem ("set BZ.Lueften opened")\
}\
elsif ($fenster_bz eq ">>>>>>opened" && $dewpoint_buffer < 3 && $dewpoint_te <= $dewpoint_bz) {\
fhem ("set BZ.Lueften opened")\
}\
elsif ($fenster_bz eq ">>>>>>opened" && $dewpoint_buffer < 3 && $dewpoint_te > $dewpoint_bz) {\
fhem ("set BZ.Lueften close")\
}\
else {\
fhem ("set BZ.Lueften kA")\
}\
}