FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: DJ-Mix am 17 Dezember 2018, 16:46:38

Titel: [Gelöst] DOIF will nicht so wie ich es will . . . . .
Beitrag von: DJ-Mix am 17 Dezember 2018, 16:46:38
Hallo zusammen,

verstehe leider nicht wo mein Fehler liegt, jedoch schaltet das DOIF nicht zu den gewünschten Zeiten. Schalte ich es manuell ein, bleibt
es einfach eingeschaltet.
Internals:
   DEF        ([05:20-07:50|AT] and [{sunset(-1500,"16:00","19:00")}]) (set HM_22A35C on) DOELSEIF ([21:50]) (set HM_22A35C off)
   MODEL      FHEM
   NAME       LAMP_FRONT_OUT
   NR         293
   NTFY_ORDER 50-LAMP_FRONT_OUT
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-12-17 07:33:50   cmd             1
     2018-12-17 07:33:50   cmd_event       set_cmd_1
     2018-12-17 07:33:50   cmd_nr          1
     2018-12-15 22:28:07   mode            enabled
     2018-12-17 07:33:50   state           cmd_1
     2018-12-17 07:50:00   timer_01_c01    18.12.2018 05:20:00|AT
     2018-12-17 07:50:00   timer_02_c01    18.12.2018 07:50:00|AT
     2018-12-17 16:42:18   timer_03_c01    18.12.2018 16:42:35
     2018-12-16 21:50:00   timer_04_c02    17.12.2018 21:50:00
   Regex:
   attr:
     cmdState:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms,"AT") and ::DOIF_time_once($hash,2,$wday)
     1          ::DOIF_time_once($hash,3,$wday)
   days:
     0          AT
     1          AT
   devices:
   do:
     0:
       0          set HM_22A35C on
     1:
       0          set HM_22A35C off
     2:
   helper:
     event      timer_3
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   
     timerevent timer_4
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_cmd_1
       state: cmd_1
     timerevents:
       timer_4
     triggerEvents:
       timer_3
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1545106800
     1          1545115800
     2          1545147755
     3          1545079800
   perlblock:
   readings:
   realtime:
     0          05:20:00
     1          07:50:00
     2          16:42:35
     3          21:50:00
   time:
     0          05:20:00
     1          07:50:00
     2          {sunset(-1500,"16:00","19:00")}
     3          21:50:00
   timeCond:
     0          0
     1          0
     2          0
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2
     1           3
   triggertime:
     1545079800:
       localtime  1545079800
       hash:
     1545106800:
       localtime  1545106800
       hash:
     1545115800:
       localtime  1545115800
       hash:
     1545147755:
       localtime  1545147755
       hash:
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 0
   do         always
   room       CONTROL-ROOM


Leider sehe ich den Wald vor lauter Bäumen nicht.

Hier noch ein weiteres, welches nicht funktioniert.
Internals:
   DEF        ([22:00-08:00] and [Nachttischlampe] eq "on") (set Nachttischlampe off)
   MODEL      FHEM
   NAME       NACHTTISCHLAMPE.TIMER
   NR         252
   NTFY_ORDER 50-NACHTTISCHLAMPE.TIMER
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-12-16 23:47:54   Device          Nachttischlampe
     2018-12-15 22:54:56   cmd             1
     2018-12-15 22:54:56   cmd_event       Nachttischlampe
     2018-12-15 22:54:56   cmd_nr          1
     2018-12-16 23:47:54   e_Nachttischlampe_STATE OFF
     2018-12-04 14:41:55   mode            enabled
     2018-12-15 22:54:56   state           cmd_1
     2018-12-17 08:00:00   timer_01_c01    17.12.2018 22:00:00
     2018-12-17 08:00:00   timer_02_c01    18.12.2018 08:00:00
     2018-12-15 22:54:56   wait_timer      no timer
   Regex:
   attr:
     wait:
       0:
         1800
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'Nachttischlampe','STATE') eq "on"
   days:
   devices:
     0           Nachttischlampe
     all         Nachttischlampe
   do:
     0:
       0          set Nachttischlampe off
     1:
   helper:
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_2
     triggerEventsState:
       state: OFF
   internals:
     0           Nachttischlampe:STATE
     all         Nachttischlampe:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1545080400
     1          1545116400
   perlblock:
   readings:
   realtime:
     0          22:00:00
     1          08:00:00
   time:
     0          22:00:00
     1          08:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1545080400:
       localtime  1545080400
       hash:
     1545116400:
       localtime  1545116400
       hash:
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 0
   do         always
   group      LIGHT
   room       CONTROL-ROOM
   wait       1800



VG
DJ-Mix
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: Damian am 17 Dezember 2018, 16:49:54
Wie soll denn ein Zeitintervall von 05:20 und 7:50 und ein Zeittrigger zwischen 16:00 und 19:00 Uhr gleichzeitig jemals wahr sein.
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: DJ-Mix am 17 Dezember 2018, 17:50:13
Ok, hast Recht Damian. Aber mit "or" funktioniert es leider auch nicht. Hatte es zu Test Zwecken mit "and" versucht (völlig banal von mir ich weiß)
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: Damian am 17 Dezember 2018, 19:16:35
Zitat von: DJ-Mix am 17 Dezember 2018, 17:50:13
Ok, hast Recht Damian. Aber mit "or" funktioniert es leider auch nicht. Hatte es zu Test Zwecken mit "and" versucht (völlig banal von mir ich weiß)
or wäre aber korrekt.
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: Ellert am 17 Dezember 2018, 19:27:19
Zu Beispiel 2:
Irgend etwas hat geschaltet
Zitat2018-12-15 22:54:56   state           cmd_1
Hast Du den Vergleichswert für richtig geschrieben? ON oder on? weil
Zitate_Nachttischlampe_STATE OFF
Es gibt ein Attribut timerWithWait.
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: DJ-Mix am 17 Dezember 2018, 19:53:00
Hallo Ellert,

da habe ich das Attribut  timerWithWait nicht mitbekommen  ???
Habe es nun gesetzt und es scheint zu funktionieren.

Vielen Dank
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: DJ-Mix am 18 Dezember 2018, 08:19:28
Habe mein erstes DOIF auch umgestellt. Sollte nun (hoffe) funktionieren.

([05:20-07:50|AT] or [{sunset(-1500,"16:00","19:30")}-21:50]) (set HM_22A35C on) DOELSE (set HM_22A35C off)


VG
DJ-Mix
Titel: Antw:DOIF will nicht so wie ich es will . . . . .
Beitrag von: Ellert am 18 Dezember 2018, 11:15:29
Zitat von: DJ-Mix am 18 Dezember 2018, 08:19:28
Habe mein erstes DOIF auch umgestellt. Sollte nun (hoffe) funktionieren.

([05:20-07:50|AT] or [{sunset(-1500,"16:00","19:30")}-21:50]) (set HM_22A35C on) DOELSE (set HM_22A35C off)


VG
DJ-Mix
Gibt's da ein Attribut wait?