Autor Thema: Warum wird 22:00 das else ausgeführt?  (Gelesen 304 mal)

Offline roedert

  • Sr. Member
  • ****
  • Beiträge: 836
Warum wird 22:00 das else ausgeführt?
« am: 16 August 2021, 21:58:32 »
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.

Offline Pfriemler

  • Hero Member
  • *****
  • Beiträge: 3979
  • geht nich gips nich
Antw:Warum wird 22:00 das else ausgeführt?
« Antwort #1 am: 16 August 2021, 22:19:48 »
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.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 8785
Antw:Warum wird 22:00 das else ausgeführt?
« Antwort #2 am: 16 August 2021, 22:40:42 »
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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF