DOIF im Datumsbereich arbeitet nicht so wie ich es will?

Begonnen von Jogi, 14 Januar 2019, 09:57:53

Vorheriges Thema - Nächstes Thema

Jogi

Hallo,
ich möchte mit einem DOIF die jährliche Freigabe der Weihnachtsbeleuchtung automatisieren. Dazu soll die Beleuchtung vom 28.11. bis 15.01. des jeweiligen Jahres eingeschaltet werden.
Ich habe versucht, das so zu lösen:
($md ge "11-28" and $md le "01-15") (set Freigabe_WeihnBel on) DOELSE (set Freigabe_WeihnBel off)
Doch leider steht das DOIF immer auf CMD2.
Wo liegt mein Fehler?

Gruß,
Jogi


Internals:
   CFGFN     
   DEF        ($md ge "11-28" and $md le "01-15") (set Freigabe_WeihnBel on) DOELSE (set Freigabe_WeihnBel off)
   MODEL      FHEM
   NAME       WeihnBelAutoDatum1
   NR         509858
   NTFY_ORDER 50-WeihnBelAutoDatum1
   STATE      cmd_2
   TYPE       DOIF
   READINGS:
     2019-01-14 09:53:03   cmd             2
     2019-01-14 09:53:03   cmd_event       WeihnBelAutoDatum1
     2019-01-14 09:53:03   cmd_nr          2
     2019-01-13 12:38:16   mode            enabled
     2019-01-14 09:53:03   state           cmd_2
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          $md ge "11-28" and $md le "01-15"
   devices:
   do:
     0:
       0          set Freigabe_WeihnBel on
     1:
       0          set Freigabe_WeihnBel off
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: WeihnBelAutoDatum1
       state: cmd_2
   internals:
   itimer:
   readings:
   uiState:
   uiTable:
Attributes:
   checkall   all
   do         always
   startup    set $SELF checkall

Damian

Zitat von: Jogi am 14 Januar 2019, 09:57:53
Hallo,
ich möchte mit einem DOIF die jährliche Freigabe der Weihnachtsbeleuchtung automatisieren. Dazu soll die Beleuchtung vom 28.11. bis 15.01. des jeweiligen Jahres eingeschaltet werden.
Ich habe versucht, das so zu lösen:
($md ge "11-28" and $md le "01-15") (set Freigabe_WeihnBel on) DOELSE (set Freigabe_WeihnBel off)
Doch leider steht das DOIF immer auf CMD2.
Wo liegt mein Fehler?

Gruß,
Jogi


cmd2 hast du wahrscheinlich mit set ... cmd2 selbst ausglöst.

Deine Bedingung hat keinen Trigger, daher wird dein DOIF niemals von alleine schalten ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Jogi

Zitat von: Damian am 14 Januar 2019, 10:03:12
cmd2 hast du wahrscheinlich mit set ... cmd2 selbst ausglöst.

Deine Bedingung hat keinen Trigger, daher wird dein DOIF niemals von alleine schalten ;)
Sorry, das verstehe ich nicht ganz. Ich hatte für mein DOIF Deinen Beitrag
https://forum.fhem.de/index.php/topic,66153.msg585264.html#msg585264
als Basis genommen, aber wahrscheinlich habe ich etwas falsch verstanden.
Ich dachte
($md ge "11-28" and $md le "01-15")
sei der Trigger (wenn das Datum zwischen 28.11. und 15.01. liegt)
Ich habe leider kein Beispiel gefunden, wie das in ein DOIF eingebaut wird, sonst hätte ich es anders gemacht.

Gruß,
Jogi

Damian

Zitat von: Jogi am 14 Januar 2019, 10:48:44
Sorry, das verstehe ich nicht ganz. Ich hatte für mein DOIF Deinen Beitrag
https://forum.fhem.de/index.php/topic,66153.msg585264.html#msg585264
als Basis genommen, aber wahrscheinlich habe ich etwas falsch verstanden.
Ich dachte
($md ge "11-28" and $md le "01-15")
sei der Trigger (wenn das Datum zwischen 28.11. und 15.01. liegt)
Ich habe leider kein Beispiel gefunden, wie das in ein DOIF eingebaut wird, sonst hätte ich es anders gemacht.

Gruß,
Jogi

Was hälst du von?

DOIF ( [00:00] and $md ge "11-28" and $md le "01-15")

$md ist nur eine Variable - die kann nicht triggern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Neben dem fehlenden Trigger würde ich or statt and empfehlen. Denn es gibt kein Datum, für welches and zutrifft.

Jogi

Zitat von: Damian am 14 Januar 2019, 11:09:20
Was hälst du von?

DOIF ( [00:00] and $md ge "11-28" and $md le "01-15")

$md ist nur eine Variable - die kann nicht triggern.

Alles klar, vielen Dank, jetzt habe ich es verstanden.

Gruß,
Jogi

Damian

Zitat von: Per am 14 Januar 2019, 12:48:01
Neben dem fehlenden Trigger würde ich or statt and empfehlen. Denn es gibt kein Datum, für welches and zutrifft.
so ist es wohl ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF