FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Pati_Alpha am 22 August 2021, 10:46:33

Titel: Frage zu DOIF bei Sonnenuntergang
Beitrag von: Pati_Alpha am 22 August 2021, 10:46:33
Hey,

ich dachte eigentlich ich hätte das DOIF verstanden, aber meins ist so definiert:
([{sunset("CIVIL",0,"18:00","[end]")}-{sunrise("CIVIL",0,"[begin]","10:00")}] and [Jemand] eq "home" and [LichtBeiSonnenuntergang] eq "on") (set WohnzimmerLampen on ; set SchlafzimmerLampen on)
und sollte damit eigentlich dafür sorgen, dass wenn jemand auf "home" wechselt und der dummy LichtBeiSonnenuntergang auf on ist und dabei auch noch die Sonne unten ist, das Licht an geht...

Jetzt ist aber heute morgen um 5:59 pünktlich zum SonnenAUFGANG... das Licht angegangen!? :D

Was mache ich falsch? :(

Patrick

EDIT:
Meine poor mans Lösung ist: ein dummy für Sonne den ich mit 2 DOIFs an und ausschalte... :/
Titel: Antw:Frage zu DOIF bei Sonnenuntergang
Beitrag von: Otto123 am 22 August 2021, 14:24:31
Hi,

Zitat(set WohnzimmerLampen on ; set SchlafzimmerLampen on)
ich weiß nicht was DOIF damit tut - aber laut Doku ist das Semikolon falsch: https://commandref.fhem.de/commandref_DE.html#DOIF_Angaben_im_Ausfuehrungsteil

Vermutung: Je nach dem wie das komplette DOIF aussieht (list ?) wird ein wiederholter Trigger z.B. von Jemand (ohne Statuswechsel) 1ms vor dem Sonnenaufgang auch das Licht anschalten.
Auch Änderungen in "end" und "begin" werden wohl das DOIF triggern?

Gruß Otto
Titel: Antw:Frage zu DOIF bei Sonnenuntergang
Beitrag von: Damian am 22 August 2021, 17:03:05
Du kannst:

1) Trigger beim Zeitintervall rausnehmen [?{sunset("CIVIL",0,"18:00","[end]")}-{sunrise("CIVIL",0,"[begin]","10:00")}]

2) Statt auf Status [Jemand] eq "home" auf ein Event reagieren [Jemand:"home"]

3) 1) und 2) nutzen

Semikolon zwischen den Befehlen geht beim DOIF inzwischen auch.
Titel: Antw:Frage zu DOIF bei Sonnenuntergang
Beitrag von: Otto123 am 22 August 2021, 17:19:25
wobei 1) verhindert, dass das Licht zum Sonnenuntergang angeht, wenn Jemand schon zu Hause ist - er bleibt dann im Dunkeln.