guten Abend zusammen...
momentan tue ich mich mal wieder schwer :
define flurlicht_abends notify pir_flur_kanal1 { if (sunset("REAL",0,"18:00","23:30"))
{fhem("set flur_aktor_wandlampen on-for-timer 60;;set dimmer_flur_kanal3 100 70 10")} }
eigentlich soll das Codegebilde den <flur_aktor_wandlampen> und den <dimmer_flur_kanal3> nach Sonnenuntergang, aber nicht vor 17:00 Uhr und nach 23:30 Uhr, schalten.
Momentan schaltet <pir_flur_kanal1> mit einem penetranten Desinteresse an der vorgegebenen Zeit.
Klammern hab ich 10x nachgezählt ...
Gruß
Stephan
Hi,
17:00 Uhr oder 18:00 Uhr?
Im Code bei dir steht 18. Momentan ist der Sonnenuntergang noch vor 18:00 Uhr. Vielleicht ist die Lösung ja so einfach? Falls ja, nicht Ärgern, jeder ist mal Betriebsblind ;-)
nee, daran liegt es leider nicht.
Selbst wenn ich jetzt mal 18:00 auf 22:00 Uhr setze, wird geschaltet obwohl ja dann eigentlich nur zwischen 22:00 und 23:30 geschaltet werden darf.
Was gibt denn "(sunset("REAL",0,"18:00","23:30"))" zurück und mit was vergleichst Du in dem "if"? So wie Du derzeit abfragst, dürfte das Resultat immer ungleich 0 (und damit true?) sein.
Gruß, Peter
hmm, bin jetzt arg verunsichert ...
also, {sunset("REAL",0,"18:00","23:30")}
schmeisst mir 42:00:00
raus.
Ich dachte, mit 18:00 und 23:30 kann ich die früheste Start- bzw. Endzeit festlegen.
Hallo Kermi,
jetzt schön der Reihe nach, kriegen wir schon hin
1. Hast du in deinem Global deinen Längen- und Breitengrad eingetragen?
2. Wie in der commandref beschrieben, gibt dir sunrise/sunset den Wert +24h aus, wenn das Ereigniss am nächsten Tag stattfindet. Probier mal sunrise_abs/sunset_abs
3. Was willst du mit dem if erreichen? Du hast da keinen Vergleich drin, sondern lässt dir nur das Ergebniss von sunset ausgeben. Und jeder Wert <> 0 ist somit true - also immer.
Mach doch mal folgendes. Das sunset in einen AT verpflanzen und damit ein NOTIFY antriggern:
define flurlicht_notify notify flurlicht_notify {
fhem "set flur_aktor_wandlampen on-for-timer 60";
fhem "set dimmer_flur_kanal3 100 70 10";
}
define flurlicht_abends at *{sunset("REAL",0,"18:00","23:30")} {
fhem "trigger flurlicht_notify";
}
Damit du nicht 2 Notify's zum schalten brauchst, kannst du noch folgendes machen:
define flurlicht_notify notify flurlicht_notify {
if($EVENT eq "on")
{
fhem "set flur_aktor_wandlampen on-for-timer 60";
fhem "set dimmer_flur_kanal3 100 70 10";
}
else
{
fhem "set flur_aktor_wandlampen off";
fhem "set dimmer_flur_kanal3 off";
}
}
define flurlicht_abends at *{sunset_abs("REAL",0,"18:00","23:30")} {
fhem "trigger flurlicht_notify on";
}
define flurlicht_morgens at *{sunrise_abs("REAL",0,"06:00","08:00")} {
fhem "trigger flurlicht_notify off";
}
hoffe das ist das, was du brauchst. der gepostete Code ist ungetestet und kann schreibfehler enthalten, vom Prinzip muss es aber klappen
cu markus
Oder, alternativ:
- isday() von SUNRISE_EL verwenden oder
- das "light" reading von Twilight verwenden
Für beides bitte die Details in der commandref "nachschlagen".
Gruß, Peter
ohh man o man... klar, wenn ich mir noch einmal aufmerksam das "if" durchgelesen hätte wäre ich auch selbst drauf gekommen das ja die Bedingung fehlt bzw. mit "0" vollkommener Quatsch ist.
Vielen Dank für den Klaps auf den Hinterkopf :D
So funktioniert es:
define flurlicht_notify notify pir_flur_kanal1 if($EVENT eq "on")\
{\
fhem "set flur_aktor_wandlampen on-for-timer 60";;\
fhem "set dimmer_flur_kanal3 100 70 10";;\
}\
else\
{\
fhem "set flur_aktor_wandlampen off";;\
fhem "set dimmer_flur_kanal3 off";;\
}\
}
define flurlicht_abends at *{sunset_abs("REAL",0,"18:00","23:30")} {fhem "trigger flurlicht_notify on"}
define flurlicht_morgens at *{sunrise_abs("REAL",0,"06:00","08:00")} {fhem "trigger flurlicht_notify off"}
Gruß
Stephan
Hallo,
die erste Prüfung kannst du dir schenken ;)
efine flurlicht_notify notify pir_flur_kanal1 if($EVENT eq "on")\
Mach mal das draus:
efine flurlicht_notify notify pir_flur_kanal1:on.* \
Dann wird das notify nicht jedesmal bis zum ersten if geprüft sondern nur ausgelöst wenn das regexp zutrifft.
Hier also on, on-for-timer, onxxxxx ankommt.
Grüße