Hauptmenü

Fehler im DOIF

Begonnen von Rampler, 07 Dezember 2015, 20:33:16

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
erstmal das Listing:
Internals:
   CHANGED
   DEF        ([HW.tk:?closed$] and
[HW.gk:?closed$])
(set FL.EG.anzeige.led07 led green)
DOELSEIF
([HW.tk] eq "closed" and
[HW.gk] eq "open")
(set FL.EG.anzeige.led07 led orange)
DOELSEIF
([HW.tk:?open$])
(set FL.EG.anzeige.led07 led red)
   NAME       HW.ledcontrol
   NR         290
   NTFY_ORDER 50-HW.ledcontrol
   STATE      initialize
   TYPE       DOIF
   Readings:
     2015-12-07 20:24:27   Device          HW.gk
     2015-12-07 20:24:27   e_HW.gk_STATE   closed
     2015-12-07 20:24:27   e_HW.gk_events  closed
     2015-12-07 20:24:22   e_HW.tk_STATE   closed
     2015-12-07 20:24:22   e_HW.tk_events  closed
     2015-12-07 20:28:57   state           initialize
     2015-12-07 20:24:23   wait_timer      no timer
   Condition:
     0          EventDoIf('HW.tk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$') and  EventDoIf('HW.gk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$')
     1          InternalDoIf('HW.tk','STATE','') eq "closed" and  InternalDoIf('HW.gk','STATE','') eq "open"
     2          EventDoIf('HW.tk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'open$')
   Devices:
     0           HW.tk HW.gk
     1           HW.tk HW.gk
     2           HW.tk
     all         HW.tk HW.gk
   Do:
     0:
       0          set FL.EG.anzeige.led07 led green
     1:
       0          set FL.EG.anzeige.led07 led orange
     2:
       0          set FL.EG.anzeige.led07 led red
     3:
   Helper:
     globalinit 1
     last_timer 0
     sleepdevice HW.tk
     sleepsubtimer -1
     sleeptimer -1
     triggerDev HW.gk
     triggerEvents:
       closed
   Internals:
     1           HW.tk:STATE HW.gk:STATE
     all         HW.tk:STATE HW.gk:STATE
   Itimer:
   Readings:
   State:
   Timerfunc:
   Trigger:
     all         HW.tk HW.gk
Attributes:
   cmdState   grün | orange | red
   event-on-change-reading no
   icon       message_attention
   room       HW-Raum
   wait       2:1:0


Bei   ([HW.tk:?closed$] and [HW.gk:?closed$]) tut sich nichts, erst wenn ich  ([HW.tk] eq "closed" and  ([HW.gk] eq "closed") codiere ..
Wie aus dem Listing zu erkennen ist, müsste der State eigentlich auf grün sein.
gruß Klaus


3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Damian

Zitat von: Rampler am 07 Dezember 2015, 20:33:16
Hallo zusammen,
erstmal das Listing:
Internals:
   CHANGED
   DEF        ([HW.tk:?closed$] and
[HW.gk:?closed$])
(set FL.EG.anzeige.led07 led green)
DOELSEIF
([HW.tk] eq "closed" and
[HW.gk] eq "open")
(set FL.EG.anzeige.led07 led orange)
DOELSEIF
([HW.tk:?open$])
(set FL.EG.anzeige.led07 led red)
   NAME       HW.ledcontrol
   NR         290
   NTFY_ORDER 50-HW.ledcontrol
   STATE      initialize
   TYPE       DOIF
   Readings:
     2015-12-07 20:24:27   Device          HW.gk
     2015-12-07 20:24:27   e_HW.gk_STATE   closed
     2015-12-07 20:24:27   e_HW.gk_events  closed
     2015-12-07 20:24:22   e_HW.tk_STATE   closed
     2015-12-07 20:24:22   e_HW.tk_events  closed
     2015-12-07 20:28:57   state           initialize
     2015-12-07 20:24:23   wait_timer      no timer
   Condition:
     0          EventDoIf('HW.tk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$') and  EventDoIf('HW.gk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'closed$')
     1          InternalDoIf('HW.tk','STATE','') eq "closed" and  InternalDoIf('HW.gk','STATE','') eq "open"
     2          EventDoIf('HW.tk',$hash->{helper}{triggerDev},$hash->{helper}{triggerEvents},'open$')
   Devices:
     0           HW.tk HW.gk
     1           HW.tk HW.gk
     2           HW.tk
     all         HW.tk HW.gk
   Do:
     0:
       0          set FL.EG.anzeige.led07 led green
     1:
       0          set FL.EG.anzeige.led07 led orange
     2:
       0          set FL.EG.anzeige.led07 led red
     3:
   Helper:
     globalinit 1
     last_timer 0
     sleepdevice HW.tk
     sleepsubtimer -1
     sleeptimer -1
     triggerDev HW.gk
     triggerEvents:
       closed
   Internals:
     1           HW.tk:STATE HW.gk:STATE
     all         HW.tk:STATE HW.gk:STATE
   Itimer:
   Readings:
   State:
   Timerfunc:
   Trigger:
     all         HW.tk HW.gk
Attributes:
   cmdState   grün | orange | red
   event-on-change-reading no
   icon       message_attention
   room       HW-Raum
   wait       2:1:0


Bei   ([HW.tk:?closed$] and [HW.gk:?closed$]) tut sich nichts, erst wenn ich  ([HW.tk] eq "closed" and  ([HW.gk] eq "closed") codiere ..
Wie aus dem Listing zu erkennen ist, müsste der State eigentlich auf grün sein.
gruß Klaus

  ([HW.tk:?closed$] and  [HW.gk:?closed$])

ist niemals wahr, denn zu einem Triggerzeitpunkt, ist nur eine der beiden Angaben wahr, je nachdem ob HW.tk oder HW.gk triggert.

Gruß

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

Rampler

ist niemals wahr, denn zu einem Triggerzeitpunkt, ist nur eine der beiden Angaben wahr, je nachdem ob HW.tk oder HW.gk triggert.

Gruß

Damian

Und wieder mal, wurde ich eines besseren belehrt... (macht Sinn)
Ducken und weg .. ;).
DANKE
Gruß
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!