Anpassen Raumklima an MAX Fenster Kontakt

Begonnen von ChrisW, 18 Oktober 2015, 13:40:46

Vorheriges Thema - Nächstes Thema

ChrisW

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")\
}\
}


Raspberry PI3 mit allem möglichen.