Weihnachtsbeleuchtung mit Szenarien

Begonnen von Damian, 28 November 2020, 11:40:31

Vorheriges Thema - Nächstes Thema

Damian

Es wird mal wieder Zeit seine Lichterketten auszupacken und wie es sich gehört zu automatisieren :)

Hier ein Beispiel, bei dem man Lichtszenarien einfach durch Einfügen einer Zeile definieren kann. Sie lassen sich per GUI einzeln aktivieren bzw. deaktivieren, Aktoren können direkt geschaltet werden, Szenarien sind für einen Zeitraum begrenzbar.

defmod di_Weihnachtsbeleuchtung_szenen DOIF subs  {\
## Parameter    1             2                       3               4        5        6      7\
@{$_params}=(qw(Szene         Zeitspanne              Aktor           von      bis      Status aktiv));;\
## Szenarien werden durch Hinzufügen einer Definitionszeile erstellt\
push (@{$_sc},[("Tannenbaum","[{sunset(360)}-23:00]", "Tannenbaum",   "11-01", "01-31", "off", "on")]);;\
push (@{$_sc},[("Aussen",    "[{sunset(120)}-08:00]", "Aussenleuchte","11-01", "01-15", "off", "on")]);;\
push (@{$_sc},[("Kerzen",    "[{sunset()}-23:05]",    "Kerzen",       "12-01", "01-01", "off", "on")]);;\
push (@{$_sc},[("Tisch",     "[{sunset()}-23:00]",    "Tisch",        "12-01", "01-01", "off", "on")]);;\
\
## Bei Änderung der Definition werden erfoderliche Readings erstellt und vorbelegt\
if ($::init_done) {\
  fhem("deletereading $SELF .*");;\
  set_State("initialized");;\
  for (my $i=0;;$i < @{$_sc};;$i++) {\
    for (my $j=5;;$j < @{$_params};;$j++) { ## Parameter 6 und 7 werden als Reading angelegt\
      set_Reading ($_sc[$i][0].".".$_params[$j],$_sc[$i][$j]);;\
    }\
  }\
}\
} ## end of subs\
\
DEF TPL_light ( ## Definition des Templates namens TPL_light\
light_$1 {      ## Parameter: Szene Zeitspanne Aktor von bis\
                ##            $1    $2         $3    $4  $5\
  if ([?$SELF:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {\
    if ($2) {\
      fhem_set("$3 on");;\
      set_State("Szene: $1");;\
      set_Reading("$1.Status","on",1);;\
    } else {\
      fhem_set ("$3 off");;\
      set_Reading("$1.Status","off",1);;\
    }\
  }\
} ## Ende des light-Blocks\
) ## Ende der Templatedefinition\
\
## Generierung der Steuerung pro Beschattung-Szene mit Hilfe des obigen Templates\
FOR (@{$_sc},TPL_light($_$1,$_$2,$_$3,$_$4,$_$5))
attr di_Weihnachtsbeleuchtung_szenen room Licht,test2
attr di_Weihnachtsbeleuchtung_szenen uiTable {\
  package ui_Table;;\
  $TC{1..10}="style='padding-left: 5px;; padding-right: 5px;; padding-top: 3px;; padding-bottom: 3px;;' align='center'";;\
}\
"Szene"|"Zeitspanne"|"von"|"bis"|"Aktor"|"Status"|"aktiv"\
FOR (@{$_sc},"$_$1"|"$_$2"|"$_$4"|"$_$5"|switch ([$_$3:state])|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Hallo Damian,

vielen Dank. Das habe ich gleich mal ausprobiert.
Ich liebe DOIF immer mehr, da ich damit vieles in einem Device (ohne zusätzliches Notify etc.) abhandeln kann.
Zusätzlich bekommt man damit auch noch eine schönere Übersicht.

Den Code durchblicke ich leider momentan noch nicht, aber - wenn ich Zeit habe - werde ich mir das zu Gemüte führen.

Und ich hätte natürlich noch ein paar Fragen bzw. Anmerkungen:
- Wenn ich die Szene mit einem Leerzeichen benenne, funktioniert die Spalte "aktiv" nicht.
  Dort steht dann z.B. "Terrasse Ost Früh.aktiv" statt der Auswahl für "on/off".
  Natürlich kann ich auch die Szene umbenennen in "Terrasse_Ost-Früh"  ;)
- Wäre es möglich bei der Szene ein Icon einzublenden?
  Meine Frau liebt so was.

Alles in allem, ein tolles Ding, das wieder zeigt, was alles mit DOIF möglich ist.
Danke!

lg, Gerhard

Damian

Ich habe einen weiteren Parameter Nr. 8 für ein Icon hinzugefügt. Szenenname wird für Readings und Template-Name benutzt, da dürfen keine Leerzeichen vorkommen.

defmod di_Weihnachtsbeleuchtung_szenen DOIF subs  {\
## Parameter    1             2                       3               4        5        6      7     8\
@{$_params}=(qw(Szene         Zeitspanne              Aktor           von      bis      Status aktiv icon));;\
## Szenarien werden durch Hinzufügen einer Definitionszeile erstellt\
push (@{$_sc},[("Tannenbaum","[{sunset(360)}-23:00]", "Tannenbaum",   "11-01", "01-31", "off", "off", "christmas_tree")]);;\
push (@{$_sc},[("Aussen",    "[{sunset(120)}-08:00]", "Aussenleuchte","11-01", "01-15", "off", "off", "light_wall_3")]);;\
push (@{$_sc},[("Kerzen",    "[{sunset()}-23:05]",    "Kerzen",       "12-01", "01-01", "off", "off", "hue_room_living")]);;\
push (@{$_sc},[("Tisch",     "[{sunset()}-23:00]",    "Tisch",        "12-01", "01-01", "off", "off", "light_dinner_table")]);;\
\
\
\
## Bei Änderung der Definition werden erfoderliche Readings erstellt und vorbelegt\
if ($::init_done) {\
  fhem("deletereading $SELF .*");;\
  set_State("initialized");;\
  for (my $i=0;;$i < @{$_sc};;$i++) {\
    for (my $j=5;;$j < @{$_params};;$j++) { ## Parameter 6 und 7 werden als Reading angelegt\
      set_Reading ($_sc[$i][0].".".$_params[$j],$_sc[$i][$j]);;\
    }\
  }\
}\
} ## end of subs\
\
DEF TPL_light ( ## Definition des Templates namens TPL_light\
light_$1 {      ## Parameter: Szene Zeitspanne Aktor von bis\
                ##            $1    $2         $3    $4  $5\
  if ([?$SELF:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {\
    if ($2) {\
      fhem_set("$3 on");;\
      set_State("Szene: $1");;\
      set_Reading("$1.Status","on",1);;\
    } else {\
      fhem_set ("$3 off");;\
      set_Reading("$1.Status","off",1);;\
    }\
  }\
} ## Ende des light-Blocks\
) ## Ende der Templatedefinition\
\
## Generierung der Steuerung pro Beschattung-Szene mit Hilfe des obigen Templates\
FOR (@{$_sc},TPL_light($_$1,$_$2,$_$3,$_$4,$_$5))
attr di_Weihnachtsbeleuchtung_szenen room Licht,test2
attr di_Weihnachtsbeleuchtung_szenen uiTable {\
  package ui_Table;;\
  $TC{1..10}="style='padding-left: 5px;; padding-right: 5px;; padding-top: 3px;; padding-bottom: 3px;;' align='center'";;\
}\
"Szene"|"Zeitspanne"|"von"|"bis"|"Aktor"|"Status"|"aktiv"\
FOR (@{$_sc},"$_$1"|"$_$2"|"$_$4"|"$_$5"|switch ([$_$3:state],"$_$8")|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Man kann beliebige Parameter definieren, die man dann auswertet:

z. B. weiterer Text (Parameter Nr. 9)

@{$_params}=(qw(Szene         Zeitspanne              Aktor           von      bis      Status aktiv icon Text));
## Szenarien werden durch Hinzufügen einer Definitionszeile erstellt
push (@{$_sc},[("Tannenbaum","[{sunset(360)}-23:00]", "Tannenbaum",   "11-01", "01-31", "off", "off", "christmas_tree","grüner Tannenbaum")]);
....

Die Anzeige kann man ebenfalls beliebig konfigurieren, z. B.:

"Aktor"|"Szene"|"Status"|"aktiv"
FOR (@{$_sc},switch ([$_$3:state],"$_$8")|"$_$9"|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Toll. Danke.

Eine Bitte noch:
Wenn ich ein Icon neben dem Szenen-Namen haben möchte, was muss ich dann in der uiTable ändern?
Denn wenn ich z.B. das folgende schreibe:
{
  package ui_Table;
  $TC{1..10}="style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'";
}
"Szene"|"Zeitspanne"|"von"|"bis"|"Aktor"|"Status"|"aktiv"
FOR (@{$_sc},icon("$_$8")|"$_$2"|"$_$4"|"$_$5"|switch ([$_$3:state],"$_$8")|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))

kommt die Fehlermeldung: no trigger reading in widget: icon("christmas_tree")

Was müsste ich da schreiben, um das Icon und daneben den Szenen-Namen zu bekommen?

Vielen Dank im Voraus
liebe Grüße
Gerhard

Damian

Zitat von: gestein am 07 Dezember 2020, 23:38:40

Was müsste ich da schreiben, um das Icon und daneben den Szenen-Namen zu bekommen?

Vielen Dank im Voraus
liebe Grüße
Gerhard

statt icon ICON siehe: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Icon-Darstellung_mit_Hilfe_der_Funktion_ICON
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Hallo,

Danke!
Das klappt nun auch.
FOR (@{$_sc},ICON("$_$8")." "."$_$1"|"$_$2"|"$_$4"|"$_$5"|switch ([$_$3:state])|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))

lg, Gerhard

gestein

#7
Hallo Damian,

ich habe das DOIF nun in Betrieb, aber es läuft nicht ganz so wie gewünscht.
Insgesamt habe ich 8 Einträge, von denen zwei noch auf deaktiviert sind.

1) 4 von den Szenen funktionieren, die beiden deaktivierten werden nicht aufgerufen (das muss ja auch so sein), die beiden letzten werden aber auch nicht ausgeführt ("Stiege" und "Stiege-Frueh").
2) Es werden bei mir insgesamt 56 readings für Timer angelegt.
    Stimmt das so?

In der Funktion "TPL_light" habe ich ein paar logs eingebaut.
Heute Früh waren dann die folgenden Einträge im log-File:
2020.12.09 05:45:01.108 1: Weihnachts-DOIF: true: Terrasse_Ost-Frueh.Status, ::DOIF_time(HASH(0x8d7f210),8,9,3,05:45:01), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31
2020.12.09 05:45:01.203 1: Weihnachts-DOIF: true: Terrasse_West-Frueh.Status, ::DOIF_time(HASH(0x8d7f210),20,21,3,05:45:01), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-01
2020.12.09 07:57:49.118 1: Weihnachts-DOIF: false: Terrasse_Ost-Frueh.Status, ::DOIF_time(HASH(0x8d7f210),10,11,3,07:57:49), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31
2020.12.09 07:57:49.186 1: Weihnachts-DOIF: false: Terrasse_West-Frueh.Status, ::DOIF_time(HASH(0x8d7f210),22,23,3,07:57:49), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-01



Hier ein List des Devices (die Zeile "Log 1, "Weihnachts-DOIF: SELF=$SELF, $1.Status, $2, $3, $4, $5, $md";" habe ich erst Zumittag eingefügt):
Internals:
   DEF        subs  {
## Parameter    1             2                       3               4        5        6      7     8
@{$_params}=(qw(Szene         Zeitspanne              Aktor           von      bis      Status aktiv icon));
## Szenarien werden durch Hinzufügen einer Definitionszeile erstellt
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_Ost-Frueh",    "[05:46-{sunrise(3601)}]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_West",    "[{sunset(-1801)}-23:06]",    "MQTT2_shellyswitch25_68C63AFB9B27_CH2",       "12-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_West-Frueh",     "[05:47-{sunrise(3602)}]",    "MQTT2_shellyswitch25_68C63AFB9B27_CH2",        "12-01", "01-01", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Krippe",    "[{sunset(-1801)}-23:07]",    "Test",       "12-01", "01-31", "on", "on", "krippe")]);
push (@{$_sc},[("Krippe-Frueh",     "[05:48-{sunrise(3603)}]",    "Test",        "12-01", "01-01", "on", "on"), "krippe"]);
push (@{$_sc},[("Stiege",    "[{sunset(-1802)}-23:08]",    "MQTT2_shellyplug_s_EAE605",       "12-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Stiege-Frueh",     "[05:49-{sunrise(3604)}]",    "MQTT2_shellyplug_s_EAE605",        "12-01", "01-01", "on", "on", "christmas_lights")]);

## Bei Änderung der Definition werden erfoderliche Readings erstellt und vorbelegt
if ($::init_done) {
  fhem("deletereading $SELF .*");
  set_State("initialized");
  for (my $i=0;$i < @{$_sc};$i++) {
    for (my $j=5;$j < @{$_params};$j++) { ## Parameter 6 und 7 werden als Reading angelegt
      set_Reading ($_sc[$i][0].".".$_params[$j],$_sc[$i][$j]);
    }
  }
}
} ## end of subs

DEF TPL_light ( ## Definition des Templates namens TPL_light
light_$1 {      ## Parameter: Szene Zeitspanne Aktor von bis
                ##            $1    $2         $3    $4  $5
  Log 1, "Weihnachts-DOIF: SELF=$SELF, $1.Status, $2, $3, $4, $5, $md";
  if ([?$SELF:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {
    if ($2) {
      fhem_set("$3 on");
      set_State("Szene: $1");
      set_Reading("$1.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: $1.Status, $2, $3, $4, $5";
    } else {
      fhem_set ("$3 off");
      set_Reading("$1.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: $1.Status, $2, $3, $4, $5";
    }
  }
} ## Ende des light-Blocks
) ## Ende der Templatedefinition

## Generierung der Steuerung pro Beschattung-Szene mit Hilfe des obigen Templates
FOR (@{$_sc},TPL_light($_$1,$_$2,$_$3,$_$4,$_$5))
   DOIFDEV    ^global$|^Test$|^MQTT2_shellyplug_s_EAE605$|^MQTT2_shellyswitch25_68C63AFB9B27_CH2$|^di_Weihnachtsbeleuchtung_szenen$|^MQTT2_shellyswitch25_E098068D28BC_CH2$
   FUUID      5fc403f2-f33f-0b7a-ef32-d5354fbb0b303c93
   FVERSION   98_DOIF.pm:0.232350/2020-11-25
   MODEL      Perl
   NAME       di_Weihnachtsbeleuchtung_szenen
   NR         1826
   NTFY_ORDER 50-di_Weihnachtsbeleuchtung_szenen
   STATE      initialized
   TYPE       DOIF
   VERSION    23235 2020-11-25 22:42:28
   OLDREADINGS:
   READINGS:
     2020-12-09 10:47:42   Krippe-Frueh.Status on
     2020-12-09 10:47:42   Krippe-Frueh.aktiv on
     2020-12-09 10:47:42   Krippe-Frueh.icon krippe
     2020-12-09 10:47:42   Krippe.Status   on
     2020-12-09 10:47:42   Krippe.aktiv    on
     2020-12-09 10:47:42   Krippe.icon     krippe
     2020-12-09 10:47:42   Stiege-Frueh.Status on
     2020-12-09 10:47:42   Stiege-Frueh.aktiv on
     2020-12-09 10:47:42   Stiege-Frueh.icon christmas_lights
     2020-12-09 10:47:42   Stiege.Status   on
     2020-12-09 10:47:42   Stiege.aktiv    on
     2020-12-09 10:47:42   Stiege.icon     christmas_lights
     2020-12-09 10:47:42   Terrasse_Ost-Frueh.Status on
     2020-12-09 10:47:42   Terrasse_Ost-Frueh.aktiv on
     2020-12-09 10:47:42   Terrasse_Ost-Frueh.icon christmas_lights
     2020-12-09 10:47:42   Terrasse_Ost.Status on
     2020-12-09 10:47:42   Terrasse_Ost.aktiv on
     2020-12-09 10:47:42   Terrasse_Ost.icon christmas_lights
     2020-12-09 10:47:42   Terrasse_West-Frueh.Status on
     2020-12-09 10:47:42   Terrasse_West-Frueh.aktiv on
     2020-12-09 10:47:42   Terrasse_West-Frueh.icon christmas_lights
     2020-12-09 10:47:42   Terrasse_West.Status on
     2020-12-09 10:47:42   Terrasse_West.aktiv on
     2020-12-09 10:47:42   Terrasse_West.icon christmas_lights
     2020-12-09 10:47:42   state           initialized
     2020-12-09 10:47:42   timer_01_c01    09.12.2020 16:06:48
     2020-12-09 10:47:42   timer_02_c01    09.12.2020 22:00:00
     2020-12-09 10:47:42   timer_03_c01    09.12.2020 16:06:48
     2020-12-09 10:47:42   timer_04_c01    09.12.2020 22:00:00
     2020-12-09 10:47:42   timer_05_c01    09.12.2020 16:06:48
     2020-12-09 10:47:42   timer_06_c01    09.12.2020 22:00:00
     2020-12-09 10:47:42   timer_07_c01    09.12.2020 16:06:48
     2020-12-09 10:47:42   timer_08_c01    09.12.2020 22:00:00
     2020-12-09 10:47:42   timer_09_c02    10.12.2020 05:46:00
     2020-12-09 10:47:42   timer_10_c02    10.12.2020 07:58:45
     2020-12-09 10:47:42   timer_11_c02    10.12.2020 05:46:00
     2020-12-09 10:47:42   timer_12_c02    10.12.2020 07:58:45
     2020-12-09 10:47:42   timer_13_c02    10.12.2020 05:46:00
     2020-12-09 10:47:42   timer_14_c02    10.12.2020 07:58:45
     2020-12-09 10:47:42   timer_15_c02    10.12.2020 05:46:00
     2020-12-09 10:47:42   timer_16_c02    10.12.2020 07:58:45
     2020-12-09 10:47:42   timer_17_c03    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_18_c03    09.12.2020 23:06:00
     2020-12-09 10:47:42   timer_19_c03    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_20_c03    09.12.2020 23:06:00
     2020-12-09 10:47:42   timer_21_c03    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_22_c03    09.12.2020 23:06:00
     2020-12-09 10:47:42   timer_23_c03    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_24_c03    09.12.2020 23:06:00
     2020-12-09 10:47:42   timer_25_c04    10.12.2020 05:47:00
     2020-12-09 10:47:42   timer_26_c04    10.12.2020 07:58:46
     2020-12-09 10:47:42   timer_27_c04    10.12.2020 05:47:00
     2020-12-09 10:47:42   timer_28_c04    10.12.2020 07:58:46
     2020-12-09 10:47:42   timer_29_c04    10.12.2020 05:47:00
     2020-12-09 10:47:42   timer_30_c04    10.12.2020 07:58:46
     2020-12-09 10:47:42   timer_31_c04    10.12.2020 05:47:00
     2020-12-09 10:47:42   timer_32_c04    10.12.2020 07:58:46
     2020-12-09 10:47:42   timer_33_c05    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_34_c05    09.12.2020 23:07:00
     2020-12-09 10:47:42   timer_35_c05    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_36_c05    09.12.2020 23:07:00
     2020-12-09 10:47:42   timer_37_c05    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_38_c05    09.12.2020 23:07:00
     2020-12-09 10:47:42   timer_39_c05    09.12.2020 16:06:47
     2020-12-09 10:47:42   timer_40_c05    09.12.2020 23:07:00
     2020-12-09 10:47:42   timer_41_c06    10.12.2020 05:48:00
     2020-12-09 10:47:42   timer_42_c06    10.12.2020 07:58:47
     2020-12-09 10:47:42   timer_43_c06    10.12.2020 05:48:00
     2020-12-09 10:47:42   timer_44_c06    10.12.2020 07:58:47
     2020-12-09 10:47:42   timer_45_c06    10.12.2020 05:48:00
     2020-12-09 10:47:42   timer_46_c06    10.12.2020 07:58:47
     2020-12-09 10:47:42   timer_47_c06    10.12.2020 05:48:00
     2020-12-09 10:47:42   timer_48_c06    10.12.2020 07:58:47
     2020-12-09 10:47:42   timer_49_c07    09.12.2020 16:06:46
     2020-12-09 10:47:42   timer_50_c07    09.12.2020 23:08:00
     2020-12-09 10:47:42   timer_51_c07    09.12.2020 16:06:46
     2020-12-09 10:47:42   timer_52_c07    09.12.2020 23:08:00
     2020-12-09 10:47:42   timer_53_c07    09.12.2020 16:06:46
     2020-12-09 10:47:42   timer_54_c07    09.12.2020 23:08:00
     2020-12-09 10:47:42   timer_55_c07    09.12.2020 16:06:46
     2020-12-09 10:47:42   timer_56_c07    09.12.2020 23:08:00
   Regex:
     accu:
     uiTable:
       MQTT2_shellyplug_s_EAE605:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_7_4_0_0:
           state      ^MQTT2_shellyplug_s_EAE605$:^state:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_8_4_0_0:
           state      ^MQTT2_shellyplug_s_EAE605$:^state:
       MQTT2_shellyswitch25_68C63AFB9B27_CH2:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_4_0_0:
           state      ^MQTT2_shellyswitch25_68C63AFB9B27_CH2$:^state:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_4_4_0_0:
           state      ^MQTT2_shellyswitch25_68C63AFB9B27_CH2$:^state:
       MQTT2_shellyswitch25_E098068D28BC_CH2:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_4_0_0:
           state      ^MQTT2_shellyswitch25_E098068D28BC_CH2$:^state:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_4_0_0:
           state      ^MQTT2_shellyswitch25_E098068D28BC_CH2$:^state:
       Test:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_5_4_0_0:
           state      ^Test$:^state:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_6_4_0_0:
           state      ^Test$:^state:
       di_Weihnachtsbeleuchtung_szenen:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_5_0_0:
           Terrasse_Ost.Status ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_6_0_0:
           Terrasse_Ost.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_5_0_0:
           Terrasse_Ost-Frueh.Status ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost-Frueh.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_6_0_0:
           Terrasse_Ost-Frueh.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost-Frueh.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_5_0_0:
           Terrasse_West.Status ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_West.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_6_0_0:
           Terrasse_West.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_West.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_4_5_0_0:
           Terrasse_West-Frueh.Status ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_West-Frueh.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_4_6_0_0:
           Terrasse_West-Frueh.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_West-Frueh.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_5_5_0_0:
           Krippe.Status ^di_Weihnachtsbeleuchtung_szenen$:^Krippe.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_5_6_0_0:
           Krippe.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Krippe.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_6_5_0_0:
           Krippe-Frueh.Status ^di_Weihnachtsbeleuchtung_szenen$:^Krippe-Frueh.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_6_6_0_0:
           Krippe-Frueh.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Krippe-Frueh.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_7_5_0_0:
           Stiege.Status ^di_Weihnachtsbeleuchtung_szenen$:^Stiege.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_7_6_0_0:
           Stiege.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Stiege.aktiv:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_8_5_0_0:
           Stiege-Frueh.Status ^di_Weihnachtsbeleuchtung_szenen$:^Stiege-Frueh.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_8_6_0_0:
           Stiege-Frueh.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Stiege-Frueh.aktiv:
   condition:
     0                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Terrasse_Ost.Status, ::DOIF_time($hash,0,1,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv') eq "on" and ($md ge "11-01" or $md le "01-31")) {
    if (::DOIF_time($hash,2,3,$wday,$hms)) {
      fhem_set("MQTT2_shellyswitch25_E098068D28BC_CH2 on");
      set_State("Szene: Terrasse_Ost");
      set_Reading("Terrasse_Ost.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Terrasse_Ost.Status, ::DOIF_time($hash,4,5,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    } else {
      fhem_set ("MQTT2_shellyswitch25_E098068D28BC_CH2 off");
      set_Reading("Terrasse_Ost.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Terrasse_Ost.Status, ::DOIF_time($hash,6,7,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    }
  }

     1                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Terrasse_Ost-Frueh.Status, ::DOIF_time($hash,8,9,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost-Frueh.aktiv') eq "on" and ($md ge "11-01" or $md le "01-31")) {
    if (::DOIF_time($hash,10,11,$wday,$hms)) {
      fhem_set("MQTT2_shellyswitch25_E098068D28BC_CH2 on");
      set_State("Szene: Terrasse_Ost-Frueh");
      set_Reading("Terrasse_Ost-Frueh.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Terrasse_Ost-Frueh.Status, ::DOIF_time($hash,12,13,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    } else {
      fhem_set ("MQTT2_shellyswitch25_E098068D28BC_CH2 off");
      set_Reading("Terrasse_Ost-Frueh.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Terrasse_Ost-Frueh.Status, ::DOIF_time($hash,14,15,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    }
  }

     2                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Terrasse_West.Status, ::DOIF_time($hash,16,17,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_West.aktiv') eq "on" and ($md ge "12-01" or $md le "01-31")) {
    if (::DOIF_time($hash,18,19,$wday,$hms)) {
      fhem_set("MQTT2_shellyswitch25_68C63AFB9B27_CH2 on");
      set_State("Szene: Terrasse_West");
      set_Reading("Terrasse_West.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Terrasse_West.Status, ::DOIF_time($hash,20,21,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-31";
    } else {
      fhem_set ("MQTT2_shellyswitch25_68C63AFB9B27_CH2 off");
      set_Reading("Terrasse_West.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Terrasse_West.Status, ::DOIF_time($hash,22,23,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-31";
    }
  }

     3                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Terrasse_West-Frueh.Status, ::DOIF_time($hash,24,25,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-01, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_West-Frueh.aktiv') eq "on" and ($md ge "12-01" or $md le "01-01")) {
    if (::DOIF_time($hash,26,27,$wday,$hms)) {
      fhem_set("MQTT2_shellyswitch25_68C63AFB9B27_CH2 on");
      set_State("Szene: Terrasse_West-Frueh");
      set_Reading("Terrasse_West-Frueh.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Terrasse_West-Frueh.Status, ::DOIF_time($hash,28,29,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-01";
    } else {
      fhem_set ("MQTT2_shellyswitch25_68C63AFB9B27_CH2 off");
      set_Reading("Terrasse_West-Frueh.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Terrasse_West-Frueh.Status, ::DOIF_time($hash,30,31,$wday,$hms), MQTT2_shellyswitch25_68C63AFB9B27_CH2, 12-01, 01-01";
    }
  }

     4                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Krippe.Status, ::DOIF_time($hash,32,33,$wday,$hms), Test, 12-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Krippe.aktiv') eq "on" and ($md ge "12-01" or $md le "01-31")) {
    if (::DOIF_time($hash,34,35,$wday,$hms)) {
      fhem_set("Test on");
      set_State("Szene: Krippe");
      set_Reading("Krippe.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Krippe.Status, ::DOIF_time($hash,36,37,$wday,$hms), Test, 12-01, 01-31";
    } else {
      fhem_set ("Test off");
      set_Reading("Krippe.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Krippe.Status, ::DOIF_time($hash,38,39,$wday,$hms), Test, 12-01, 01-31";
    }
  }

     5                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Krippe-Frueh.Status, ::DOIF_time($hash,40,41,$wday,$hms), Test, 12-01, 01-01, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Krippe-Frueh.aktiv') eq "on" and ($md ge "12-01" or $md le "01-01")) {
    if (::DOIF_time($hash,42,43,$wday,$hms)) {
      fhem_set("Test on");
      set_State("Szene: Krippe-Frueh");
      set_Reading("Krippe-Frueh.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Krippe-Frueh.Status, ::DOIF_time($hash,44,45,$wday,$hms), Test, 12-01, 01-01";
    } else {
      fhem_set ("Test off");
      set_Reading("Krippe-Frueh.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Krippe-Frueh.Status, ::DOIF_time($hash,46,47,$wday,$hms), Test, 12-01, 01-01";
    }
  }

     6                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Stiege.Status, ::DOIF_time($hash,48,49,$wday,$hms), MQTT2_shellyplug_s_EAE605, 12-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Stiege.aktiv') eq "on" and ($md ge "12-01" or $md le "01-31")) {
    if (::DOIF_time($hash,50,51,$wday,$hms)) {
      fhem_set("MQTT2_shellyplug_s_EAE605 on");
      set_State("Szene: Stiege");
      set_Reading("Stiege.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Stiege.Status, ::DOIF_time($hash,52,53,$wday,$hms), MQTT2_shellyplug_s_EAE605, 12-01, 01-31";
    } else {
      fhem_set ("MQTT2_shellyplug_s_EAE605 off");
      set_Reading("Stiege.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Stiege.Status, ::DOIF_time($hash,54,55,$wday,$hms), MQTT2_shellyplug_s_EAE605, 12-01, 01-31";
    }
  }

   days:
   defs:
     tpl:
       TPL_light    light_$1 {                          Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, $1.Status, $2, $3, $4, $5, $md";
  if ([?di_Weihnachtsbeleuchtung_szenen:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {
    if ($2) {
      fhem_set("$3 on");
      set_State("Szene: $1");
      set_Reading("$1.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: $1.Status, $2, $3, $4, $5";
    } else {
      fhem_set ("$3 off");
      set_Reading("$1.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: $1.Status, $2, $3, $4, $5";
    }
  }

   helper:
     DEVFILTER  ^global$|^Test$|^MQTT2_shellyplug_s_EAE605$|^MQTT2_shellyswitch25_68C63AFB9B27_CH2$|^di_Weihnachtsbeleuchtung_szenen$|^MQTT2_shellyswitch25_E098068D28BC_CH2$
     NOTIFYDEV  global|Test|MQTT2_shellyplug_s_EAE605|MQTT2_shellyswitch25_68C63AFB9B27_CH2|di_Weihnachtsbeleuchtung_szenen|MQTT2_shellyswitch25_E098068D28BC_CH2
     globalinit 1
     last_timer 56
     sleeptimer -1
     bm:
       DOIF_Get:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 10:47:44
         max        4.31537628173828e-05
         tot        0.000144004821777344
         mAr:
           HASH(0x8d7f210)
           di_Weihnachtsbeleuchtung_szenen
           ?
       DOIF_Notify:
         cnt        32013
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 13:12:54
         max        0.0977201461791992
         tot        24.7185292243958
         mAr:
           HASH(0x8d7f210)
           HASH(0x9149278)
       DOIF_Set:
         cnt        11
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 10:47:44
         max        0.000296831130981445
         tot        0.00136470794677734
         mAr:
           HASH(0x8d7f210)
           di_Weihnachtsbeleuchtung_szenen
           ?
   interval:
     0          -1
     1          0
     10         -1
     11         10
     12         -1
     13         12
     14         -1
     15         14
     16         -1
     17         16
     18         -1
     19         18
     2          -1
     20         -1
     21         20
     22         -1
     23         22
     24         -1
     25         24
     26         -1
     27         26
     28         -1
     29         28
     3          2
     30         -1
     31         30
     32         -1
     33         32
     34         -1
     35         34
     36         -1
     37         36
     38         -1
     39         38
     4          -1
     40         -1
     41         40
     42         -1
     43         42
     44         -1
     45         44
     46         -1
     47         46
     48         -1
     49         48
     5          4
     50         -1
     51         50
     52         -1
     53         52
     54         -1
     55         54
     6          -1
     7          6
     8          -1
     9          8
   intervalfunc:
   localtime:
     0          1607526408
     1          1607547600
     10         1607575560
     11         1607583525
     12         1607575560
     13         1607583525
     14         1607575560
     15         1607583525
     16         1607526407
     17         1607551560
     18         1607526407
     19         1607551560
     2          1607526408
     20         1607526407
     21         1607551560
     22         1607526407
     23         1607551560
     24         1607575620
     25         1607583526
     26         1607575620
     27         1607583526
     28         1607575620
     29         1607583526
     3          1607547600
     30         1607575620
     31         1607583526
     32         1607526407
     33         1607551620
     34         1607526407
     35         1607551620
     36         1607526407
     37         1607551620
     38         1607526407
     39         1607551620
     4          1607526408
     40         1607575680
     41         1607583527
     42         1607575680
     43         1607583527
     44         1607575680
     45         1607583527
     46         1607575680
     47         1607583527
     48         1607526406
     49         1607551680
     5          1607547600
     50         1607526406
     51         1607551680
     52         1607526406
     53         1607551680
     54         1607526406
     55         1607551680
     6          1607526408
     7          1607547600
     8          1607575560
     9          1607583525
   perlblock:
     0          light_Terrasse_Ost
     1          light_Terrasse_West
     2          light_Terrasse_West
     3          light_Krippe
     4          light_Krippe
     5          light_Stiege
     6          light_Stiege
   realtime:
     0          16:06:48
     1          22:00:00
     10         05:46:00
     11         07:58:45
     12         05:46:00
     13         07:58:45
     14         05:46:00
     15         07:58:45
     16         16:06:47
     17         23:06:00
     18         16:06:47
     19         23:06:00
     2          16:06:48
     20         16:06:47
     21         23:06:00
     22         16:06:47
     23         23:06:00
     24         05:47:00
     25         07:58:46
     26         05:47:00
     27         07:58:46
     28         05:47:00
     29         07:58:46
     3          22:00:00
     30         05:47:00
     31         07:58:46
     32         16:06:47
     33         23:07:00
     34         16:06:47
     35         23:07:00
     36         16:06:47
     37         23:07:00
     38         16:06:47
     39         23:07:00
     4          16:06:48
     40         05:48:00
     41         07:58:47
     42         05:48:00
     43         07:58:47
     44         05:48:00
     45         07:58:47
     46         05:48:00
     47         07:58:47
     48         16:06:46
     49         23:08:00
     5          22:00:00
     50         16:06:46
     51         23:08:00
     52         16:06:46
     53         23:08:00
     54         16:06:46
     55         23:08:00
     6          16:06:48
     7          22:00:00
     8          05:46:00
     9          07:58:45
   time:
     0          {sunset(-1800)}
     1          22:00:00
     10         05:46:00
     11         {sunrise(3601)}
     12         05:46:00
     13         {sunrise(3601)}
     14         05:46:00
     15         {sunrise(3601)}
     16         {sunset(-1801)}
     17         23:06:00
     18         {sunset(-1801)}
     19         23:06:00
     2          {sunset(-1800)}
     20         {sunset(-1801)}
     21         23:06:00
     22         {sunset(-1801)}
     23         23:06:00
     24         05:47:00
     25         {sunrise(3602)}
     26         05:47:00
     27         {sunrise(3602)}
     28         05:47:00
     29         {sunrise(3602)}
     3          22:00:00
     30         05:47:00
     31         {sunrise(3602)}
     32         {sunset(-1801)}
     33         23:07:00
     34         {sunset(-1801)}
     35         23:07:00
     36         {sunset(-1801)}
     37         23:07:00
     38         {sunset(-1801)}
     39         23:07:00
     4          {sunset(-1800)}
     40         05:48:00
     41         {sunrise(3603)}
     42         05:48:00
     43         {sunrise(3603)}
     44         05:48:00
     45         {sunrise(3603)}
     46         05:48:00
     47         {sunrise(3603)}
     48         {sunset(-1802)}
     49         23:08:00
     5          22:00:00
     50         {sunset(-1802)}
     51         23:08:00
     52         {sunset(-1802)}
     53         23:08:00
     54         {sunset(-1802)}
     55         23:08:00
     6          {sunset(-1800)}
     7          22:00:00
     8          05:46:00
     9          {sunrise(3601)}
   timeCond:
     0          0
     1          0
     10         1
     11         1
     12         1
     13         1
     14         1
     15         1
     16         2
     17         2
     18         2
     19         2
     2          0
     20         2
     21         2
     22         2
     23         2
     24         3
     25         3
     26         3
     27         3
     28         3
     29         3
     3          0
     30         3
     31         3
     32         4
     33         4
     34         4
     35         4
     36         4
     37         4
     38         4
     39         4
     4          0
     40         5
     41         5
     42         5
     43         5
     44         5
     45         5
     46         5
     47         5
     48         6
     49         6
     5          0
     50         6
     51         6
     52         6
     53         6
     54         6
     55         6
     6          0
     7          0
     8          1
     9          1
   timer:
     0          0
     1          0
     10         0
     11         0
     12         0
     13         0
     14         0
     15         0
     16         0
     17         0
     18         0
     19         0
     2          0
     20         0
     21         0
     22         0
     23         0
     24         0
     25         0
     26         0
     27         0
     28         0
     29         0
     3          0
     30         0
     31         0
     32         0
     33         0
     34         0
     35         0
     36         0
     37         0
     38         0
     39         0
     4          0
     40         0
     41         0
     42         0
     43         0
     44         0
     45         0
     46         0
     47         0
     48         0
     49         0
     5          0
     50         0
     51         0
     52         0
     53         0
     54         0
     55         0
     6          0
     7          0
     8          0
     9          0
   timers:
     0           0  1  2  3  4  5  6  7
     1           8  9  10  11  12  13  14  15
     2           16  17  18  19  20  21  22  23
     3           24  25  26  27  28  29  30  31
     4           32  33  34  35  36  37  38  39
     5           40  41  42  43  44  45  46  47
     6           48  49  50  51  52  53  54  55
   triggertime:
     1607526406:
       localtime  1607526406
       hash:
     1607526407:
       localtime  1607526407
       hash:
     1607526408:
       localtime  1607526408
       hash:
     1607547600:
       localtime  1607547600
       hash:
     1607551560:
       localtime  1607551560
       hash:
     1607551620:
       localtime  1607551620
       hash:
     1607551680:
       localtime  1607551680
       hash:
     1607575560:
       localtime  1607575560
       hash:
     1607575620:
       localtime  1607575620
       hash:
     1607575680:
       localtime  1607575680
       hash:
     1607583525:
       localtime  1607583525
       hash:
     1607583526:
       localtime  1607583526
       hash:
     1607583527:
       localtime  1607583527
       hash:
   uiTable:
     dev        di_Weihnachtsbeleuchtung_szenen
     package    package ui_Table;
     reading    Stiege-Frueh.aktiv
     table:
       0:
         0:
           0:
             0          package ui_Table;"Szene"
         1:
           0:
             0          package ui_Table;"Zeitspanne"
         2:
           0:
             0          package ui_Table;"von"
         3:
           0:
             0          package ui_Table;"bis"
         4:
           0:
             0          package ui_Table;"Aktor"
         5:
           0:
             0          package ui_Table;"Status"
         6:
           0:
             0          package ui_Table;"aktiv"
       1:
         0:
           0:
             0          package ui_Table;ICON("christmas_lights")
             1          package ui_Table;" "
             2          package ui_Table;"Terrasse_Ost"
         1:
           0:
             0          package ui_Table;"[{sunset(-1800)}-22:00]"
         2:
           0:
             0          package ui_Table;"11-01"
         3:
           0:
             0          package ui_Table;"01-31"
         4:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_4_0_0',switch (::ReadingValDoIf($hash,'MQTT2_shellyswitch25_E098068D28BC_CH2','state')),'','MQTT2_shellyswitch25_E098068D28BC_CH2','state')
         5:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_5_0_0',icon(::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.Status')),'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.Status')
         6:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_6_0_0',::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv'),"","select,on,off",'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv')
       2:
         0:
           0:
             0          package ui_Table;ICON("christmas_lights")
             1          package ui_Table;" "
             2          package ui_Table;"Terrasse_Ost-Frueh"
         1:
           0:
             0          package ui_Table;"[05:46-{sunrise(3601)}]"
         2:
           0:
             0          package ui_Table;"11-01"
         3:
           0:
             0          package ui_Table;"01-31"
         4:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_4_0_0',switch (::ReadingValDoIf($hash,'MQTT2_shellyswitch25_E098068D28BC_CH2','state')),'','MQTT2_shellyswitch25_E098068D28BC_CH2','state')
         5:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_5_0_0',icon(::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost-Frueh.Status')),'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost-Frueh.Status')
         6:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_2_6_0_0',::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost-Frueh.aktiv'),"","select,on,off",'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost-Frueh.aktiv')
       3:
         0:
           0:
             0          package ui_Table;ICON("christmas_lights")
             1          package ui_Table;" "
             2          package ui_Table;"Terrasse_West"
         1:
           0:
             0          package ui_Table;"[{sunset(-1801)}-23:06]"
         2:
           0:
             0          package ui_Table;"12-01"
         3:
           0:
             0          package ui_Table;"01-31"
         4:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_4_0_0',switch (::ReadingValDoIf($hash,'MQTT2_shellyswitch25_68C63AFB9B27_CH2','state')),'','MQTT2_shellyswitch25_68C63AFB9B27_CH2','state')
         5:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_5_0_0',icon(::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_West.Status')),'','di_Weihnachtsbeleuchtung_szenen','Terrasse_West.Status')
         6:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_3_6_0_0',::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_West.aktiv'),"","select,on,off",'','di_Weihnachtsbeleuchtung_szenen','Terrasse_West.aktiv')
       4:
         0:
           0:
             0          package ui_Table;ICON("christmas_lights")
             1          package ui_Table;" "
             2          package ui_Table;"Terrasse_West-Frueh"
         1:
           0:
             0          package ui_Table;"[05:47-{sunrise(3602)}]"
         2:

Damian

Normalerweise sollten zwei Timer pro Szenario entstehen also 8*2=16

Kommentiere alle Szenarien bis auf eins aus, drücke auf modify und dann schaust du was passiert.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

#9
Wenn ich nur einen Eintrag habe
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
dann bekomme ich 8 Timer:
timer_01_c01 10.12.2020 16:06:49
timer_02_c01 09.12.2020 22:00:00
timer_03_c01 10.12.2020 16:06:49
timer_04_c01 09.12.2020 22:00:00
timer_05_c01 10.12.2020 16:06:49
timer_06_c01 09.12.2020 22:00:00
timer_07_c01 10.12.2020 16:06:49
timer_08_c01 09.12.2020 22:00:00


bei 2 Einträgen dann 16 Timer, bei 3 Einträgen 24 Timer usw.
Wenn ich aber die 2 Einträge für den selben Aktor nehme, dann bekomme ich nur 8 Einträge.
Sobald ich einen 2. Aktor dazu nehme, dann sind es 3x8 Einträge.
Bei 2 gleichen Aktoren und je 2 Einträgen sind es 24 Timer.

Darum sind es auch bei 8 Einträgen nur 7x8 Timer, weil ich ja je 2 Einträge für einen Aktor anlege (in der Früh und am Abend).

Hilft das was?

lg, Gerhard

Damian

Dann poste noch mal ein list mit einem Eintrag.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Bitte sehr. Hier mit dem Eintrag:
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
Internals:
   DEF        subs  {
## Parameter    1             2                       3               4        5        6      7     8
@{$_params}=(qw(Szene         Zeitspanne              Aktor           von      bis      Status aktiv icon));
## Szenarien werden durch Hinzufügen einer Definitionszeile erstellt
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
#push (@{$_sc},[("Terrasse_Ost-Frueh",    "[05:46-{sunrise(3601)}]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);
#push (@{$_sc},[("Terrasse_West",    "[{sunset(-1801)}-23:06]",    "MQTT2_shellyswitch25_68C63AFB9B27_CH2",       "12-01", "01-31", "on", "on", "christmas_lights")]);
#push (@{$_sc},[("Terrasse_West-Frueh",     "[05:47-{sunrise(3602)}]",    "MQTT2_shellyswitch25_68C63AFB9B27_CH2",        "12-01", "01-01", "on", "on", "christmas_lights")]);
#push (@{$_sc},[("Krippe",    "[{sunset(-1801)}-23:07]",    "Test",       "12-01", "01-31", "on", "on", "krippe")]);
#push (@{$_sc},[("Krippe-Frueh",     "[05:48-{sunrise(3603)}]",    "Test",        "12-01", "01-01", "on", "on"), "krippe"]);
#push (@{$_sc},[("Stiege",    "[{sunset(-1802)}-23:08]",    "MQTT2_shellyplug_s_EAE605",       "12-01", "01-31", "on", "on", "christmas_lights")]);
#push (@{$_sc},[("Stiege-Frueh",     "[05:49-{sunrise(3604)}]",    "MQTT2_shellyplug_s_EAE605",        "12-01", "01-01", "on", "on", "christmas_lights")]);

## Bei Änderung der Definition werden erfoderliche Readings erstellt und vorbelegt
if ($::init_done) {
  fhem("deletereading $SELF .*");
  set_State("initialized");
  for (my $i=0;$i < @{$_sc};$i++) {
    for (my $j=5;$j < @{$_params};$j++) { ## Parameter 6 und 7 werden als Reading angelegt
      set_Reading ($_sc[$i][0].".".$_params[$j],$_sc[$i][$j]);
    }
  }
}
} ## end of subs

DEF TPL_light ( ## Definition des Templates namens TPL_light
light_$1 {      ## Parameter: Szene Zeitspanne Aktor von bis
                ##            $1    $2         $3    $4  $5
  Log 1, "Weihnachts-DOIF: SELF=$SELF, $1.Status, $2, $3, $4, $5, $md";
  if ([?$SELF:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {
    if ($2) {
      fhem_set("$3 on");
      set_State("Szene: $1");
      set_Reading("$1.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: $1.Status, $2, $3, $4, $5";
    } else {
      fhem_set ("$3 off");
      set_Reading("$1.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: $1.Status, $2, $3, $4, $5";
    }
  }
} ## Ende des light-Blocks
) ## Ende der Templatedefinition

## Generierung der Steuerung pro Beschattung-Szene mit Hilfe des obigen Templates
FOR (@{$_sc},TPL_light($_$1,$_$2,$_$3,$_$4,$_$5))
   FUUID      5fc403f2-f33f-0b7a-ef32-d5354fbb0b303c93
   FVERSION   98_DOIF.pm:0.232350/2020-11-25
   MODEL      Perl
   NAME       di_Weihnachtsbeleuchtung_szenen
   NOTIFYDEV  MQTT2_shellyswitch25_E098068D28BC_CH2,global,di_Weihnachtsbeleuchtung_szenen
   NR         1826
   NTFY_ORDER 50-di_Weihnachtsbeleuchtung_szenen
   STATE      initialized
   TYPE       DOIF
   VERSION    23235 2020-11-25 22:42:28
   OLDREADINGS:
   READINGS:
     2020-12-09 21:33:16   Terrasse_Ost.Status on
     2020-12-09 21:33:16   Terrasse_Ost.aktiv on
     2020-12-09 21:33:16   Terrasse_Ost.icon christmas_lights
     2020-12-09 21:33:16   state           initialized
     2020-12-09 21:33:16   timer_01_c01    10.12.2020 16:06:49
     2020-12-09 21:33:16   timer_02_c01    09.12.2020 22:00:00
     2020-12-09 21:33:16   timer_03_c01    10.12.2020 16:06:49
     2020-12-09 21:33:16   timer_04_c01    09.12.2020 22:00:00
     2020-12-09 21:33:16   timer_05_c01    10.12.2020 16:06:49
     2020-12-09 21:33:16   timer_06_c01    09.12.2020 22:00:00
     2020-12-09 21:33:16   timer_07_c01    10.12.2020 16:06:49
     2020-12-09 21:33:16   timer_08_c01    09.12.2020 22:00:00
   Regex:
     accu:
     uiTable:
       MQTT2_shellyswitch25_E098068D28BC_CH2:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_4_0_0:
           state      ^MQTT2_shellyswitch25_E098068D28BC_CH2$:^state:
       di_Weihnachtsbeleuchtung_szenen:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_5_0_0:
           Terrasse_Ost.Status ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost.Status:
         di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_6_0_0:
           Terrasse_Ost.aktiv ^di_Weihnachtsbeleuchtung_szenen$:^Terrasse_Ost.aktiv:
   condition:
     0                                    Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, Terrasse_Ost.Status, ::DOIF_time($hash,0,1,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31, $md";
  if (::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv') eq "on" and ($md ge "11-01" or $md le "01-31")) {
    if (::DOIF_time($hash,2,3,$wday,$hms)) {
      fhem_set("MQTT2_shellyswitch25_E098068D28BC_CH2 on");
      set_State("Szene: Terrasse_Ost");
      set_Reading("Terrasse_Ost.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: Terrasse_Ost.Status, ::DOIF_time($hash,4,5,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    } else {
      fhem_set ("MQTT2_shellyswitch25_E098068D28BC_CH2 off");
      set_Reading("Terrasse_Ost.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: Terrasse_Ost.Status, ::DOIF_time($hash,6,7,$wday,$hms), MQTT2_shellyswitch25_E098068D28BC_CH2, 11-01, 01-31";
    }
  }

   days:
   defs:
     tpl:
       TPL_light    light_$1 {                          Log 1, "Weihnachts-DOIF: SELF=di_Weihnachtsbeleuchtung_szenen, $1.Status, $2, $3, $4, $5, $md";
  if ([?di_Weihnachtsbeleuchtung_szenen:$1.aktiv] eq "on" and ($md ge "$4" or $md le "$5")) {
    if ($2) {
      fhem_set("$3 on");
      set_State("Szene: $1");
      set_Reading("$1.Status","on",1);
  Log 1, "Weihnachts-DOIF: true: $1.Status, $2, $3, $4, $5";
    } else {
      fhem_set ("$3 off");
      set_Reading("$1.Status","off",1);
  Log 1, "Weihnachts-DOIF: false: $1.Status, $2, $3, $4, $5";
    }
  }

   helper:
     DEVFILTER  ^global$|^di_Weihnachtsbeleuchtung_szenen$|^MQTT2_shellyswitch25_E098068D28BC_CH2$
     NOTIFYDEV  global|di_Weihnachtsbeleuchtung_szenen|MQTT2_shellyswitch25_E098068D28BC_CH2
     globalinit 1
     last_timer 8
     sleeptimer -1
     bm:
       DOIF_Get:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 21:33:18
         max        7.48634338378906e-05
         tot        7.48634338378906e-05
         mAr:
           HASH(0x8d7f210)
           di_Weihnachtsbeleuchtung_szenen
           ?
       DOIF_Notify:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 21:33:16
         max        0.000104188919067383
         tot        0.000145196914672852
         mAr:
           HASH(0x8d7f210)
           HASH(0xdd9898)
       DOIF_Set:
         cnt        5
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        09.12. 21:33:18
         max        0.000327825546264648
         tot        0.000710010528564453
         mAr:
           HASH(0x8d7f210)
           di_Weihnachtsbeleuchtung_szenen
           ?
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   intervalfunc:
   localtime:
     0          1607612809
     1          1607547600
     2          1607612809
     3          1607547600
     4          1607612809
     5          1607547600
     6          1607612809
     7          1607547600
   perlblock:
     0          light_Terrasse_Ost
   realtime:
     0          16:06:49
     1          22:00:00
     2          16:06:49
     3          22:00:00
     4          16:06:49
     5          22:00:00
     6          16:06:49
     7          22:00:00
   time:
     0          {sunset(-1800)}
     1          22:00:00
     2          {sunset(-1800)}
     3          22:00:00
     4          {sunset(-1800)}
     5          22:00:00
     6          {sunset(-1800)}
     7          22:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0  1  2  3  4  5  6  7
   triggertime:
     1607547600:
       localtime  1607547600
       hash:
     1607612809:
       localtime  1607612809
       hash:
   uiTable:
     dev        di_Weihnachtsbeleuchtung_szenen
     package    package ui_Table;
     reading    Terrasse_Ost.aktiv
     table:
       0:
         0:
           0:
             0          package ui_Table;"Szene"
         1:
           0:
             0          package ui_Table;"Zeitspanne"
         2:
           0:
             0          package ui_Table;"von"
         3:
           0:
             0          package ui_Table;"bis"
         4:
           0:
             0          package ui_Table;"Aktor"
         5:
           0:
             0          package ui_Table;"Status"
         6:
           0:
             0          package ui_Table;"aktiv"
       1:
         0:
           0:
             0          package ui_Table;ICON("christmas_lights")
             1          package ui_Table;" "
             2          package ui_Table;"Terrasse_Ost"
         1:
           0:
             0          package ui_Table;"[{sunset(-1800)}-22:00]"
         2:
           0:
             0          package ui_Table;"11-01"
         3:
           0:
             0          package ui_Table;"01-31"
         4:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_4_0_0',switch (::ReadingValDoIf($hash,'MQTT2_shellyswitch25_E098068D28BC_CH2','state')),'','MQTT2_shellyswitch25_E098068D28BC_CH2','state')
         5:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_5_0_0',icon(::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.Status')),'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.Status')
         6:
           0:
             0          package ui_Table;::DOIF_Widget($hash,$reg,'di_Weihnachtsbeleuchtung_szenen_uiTable_c_1_6_0_0',::ReadingValDoIf($hash,'di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv'),"","select,on,off",'','di_Weihnachtsbeleuchtung_szenen','Terrasse_Ost.aktiv')
     tc:
       1          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       10         style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       2          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       3          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       4          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       5          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       6          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       7          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       8          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
       9          style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'
     td:
       0:
       1:
     tr:
   var:
     params:
       Szene
       Zeitspanne
       Aktor
       von
       bis
       Status
       aktiv
       icon
     sc:
       ARRAY(0x1b9c4918)
Attributes:
   icon       christmas_tree_2
   room       Weihnachten
   uiTable    {
  package ui_Table;
  $TC{1..10}="style='padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 3px;' align='center'";
}
"Szene"|"Zeitspanne"|"von"|"bis"|"Aktor"|"Status"|"aktiv"
FOR (@{$_sc},ICON("$_$8")." "."$_$1"|"$_$2"|"$_$4"|"$_$5"|switch ([$_$3:state])|icon([$SELF:$_$1.Status])|WID([$SELF:$_$1.aktiv],"select,on,off"))

Damian

OK.

Die zusätzlichen Timer hast du dir durch die Logs eingebaut:

z. B.:

Log 1, "Weihnachts-DOIF: true: $1.Status, $2, $3, $4, $5";

$2 entspricht [{sunset(-1800)}-22:00]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

gestein

Hallo,

das ist echt ärgerlich. Tut mir leid. Dass dadurch Timer erstellt werden, dessen war ich mir überhaupt nicht bewußt.
Die logs sind wieder draussen.

Anscheinend gibt es aber trotzdem noch ein Thema mit der Anzahl der Timer.
Wenn ich nur eine Szene erstelle, dann werden nun 2 Timer erstellt.
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
Führt zu den beiden folgenden Timern:
timer_01_c01 10.12.2020 16:06:49
timer_02_c01 10.12.2020 22:00:00


Bei einer zweiten Szene mit dem gleichen Aktor werden aber auch nur 2 Timer erstellt:
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_Ost-Frueh",    "[05:46-{sunrise(3600)}]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);

timer_01_c01 10.12.2020 16:06:49
timer_02_c01 10.12.2020 22:00:00


Bei einer dritten Szene mit einem neuen Aktor werden dann 6 Timer angelegt:
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_Ost-Frueh",    "[05:46-{sunrise(3600)}]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_West",    "[{sunset(-1800)}-23:06]",    "MQTT2_shellyswitch25_68C63AFB9B27_CH2",       "12-01", "01-31", "on", "on", "christmas_lights")]);

timer_01_c01 10.12.2020 16:06:49
timer_02_c01 10.12.2020 22:00:00
timer_03_c02 10.12.2020 05:46:00
timer_04_c02 10.12.2020 07:58:44
timer_05_c03 10.12.2020 16:06:49
timer_06_c03 10.12.2020 23:06:00


Und wenn ich 3 Szenen mit dem jeweils gleichen Aktor anlege, dann habe ich auch nur 2 Timer:
push (@{$_sc},[("Terrasse_Ost","[{sunset(-1800)}-22:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2",   "11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_Ost-Frueh",    "[05:46-{sunrise(3600)}]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);
push (@{$_sc},[("Terrasse_Ost-Frueh2",    "[11:47-12:00]", "MQTT2_shellyswitch25_E098068D28BC_CH2","11-01", "01-31", "on", "on", "christmas_lights")]);

timer_01_c01 10.12.2020 16:06:49
timer_02_c01 10.12.2020 22:00:00


Im Endeffekt kann man das aber durch z.B. einer Dummy-Szene mit einem Dummy-Aktor abfangen.

Ich hoffe, ich habe nicht noch einen Fehler eingebaut.
lg, Gerhard

Damian

Vielleicht hast du sie nur nicht gesehen. Sonst mit F5 Browser aktualisieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF