Fürs Gartenlicht habe ich dieses DOIF
([16:00-23:00] && ($month >= 3 && $month <= 9) && [Aussen.Helligkeit:brightness]<20) (
{
Log 2,"DOIF $SELF: $DEVICE $EVENT cmd_1";
fhem("set Garten.Licht scene abends_Sommer");
}
)
DOELSEIF ([16:00-22:00] && ($month >= 10 || $month <= 2) && [Aussen.Helligkeit:brightness]<20 && [Weihnachtsbeleuchtung]==1) (
{
Log 2,"DOIF $SELF: $DEVICE $EVENT cmd_2";
fhem("set Garten.Licht scene Weihnachten");
}
)
DOELSEIF ([16:00-22:00] && ($month >= 10 || $month <= 2) && [Aussen.Helligkeit:brightness]<20) (
{
Log 2,"DOIF $SELF: $DEVICE $EVENT cmd_3";
fhem("set Garten.Licht scene abends_Winter");
}
)
DOELSE (
{
Log 2,"DOIF $SELF: $DEVICE $EVENT cmd_else";
fhem("set Garten.Licht scene off");
}
)
Warum wird um genau 22:00 das DOELSE ausgeführt?
Eigentlich sind doch alle Bedingungen des ersten Blocks erfüllt .... es ist zwischen 16 und 23:00, Monat liegt zwischen 3 und 9 und Aussen.Helligkeit:brightness ist auch kleiner 20.
Ich würde vermuten: Auch um 22 Uhr wird ein Timerevent ausgelöst für das DOIF. Aktuell lassen die übrigen Bedingungen dann aber nur das DOELSE übrig.
Zitat von: roedert am 16 August 2021, 21:58:32
Warum wird um genau 22:00 das DOELSE ausgeführt?
Eigentlich sind doch alle Bedingungen des ersten Blocks erfüllt .... es ist zwischen 16 und 23:00, Monat liegt zwischen 3 und 9 und Aussen.Helligkeit:brightness ist auch kleiner 20.
Weil der erste DOIF-Fall nicht betrachtet wird, weil dort der 22:00 Uhr-Trigger nicht vorkommt.