FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Jogi am 14 Januar 2019, 09:57:53

Titel: DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag 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


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
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag von: Damian am 14 Januar 2019, 10:03:12
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 ;)
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag von: Jogi am 14 Januar 2019, 10:48:44
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 (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
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag von: Damian am 14 Januar 2019, 11:09:20
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 (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.
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag 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.
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag von: Jogi am 14 Januar 2019, 12:51:59
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
Titel: Antw:DOIF im Datumsbereich arbeitet nicht so wie ich es will?
Beitrag von: Damian am 14 Januar 2019, 13:22:46
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 ;)