(ERLEDIGT) DOIF hat gestern abend nicht geschaltet...

Begonnen von misux, 25 April 2018, 05:23:41

Vorheriges Thema - Nächstes Thema

misux

HI!

Mein DOIF hat gestern abend um 22Uhr die Lichter nicht aus geschaltet was mich etwas wundert weil die Tage davor hat es eigentlich funktioniert...

Das DOIF ist im cmd_1 hängengeblieben...hätte doch aber um 22Uhr + 600 und 900 sek die Lichter ausschalten sollen oder ist mein DOIF irgendwie falsch?

Als ich heute morgen um 4 anuell set checkall durchgeführt habe sprang das DOIF auf cmd_3 und schaltete ds Licht korrekt  600 und 900 Sek später aus...

Hier das DOF
([Tageslicht_indoor] eq "Nacht" and [?TVTime:state] eq "off" and [?15:00-22:00]) (set WZBodenLed on, set WZEZ_WZFLed on)
DOELSEIF
([?Tageslicht_indoor] eq "Nacht" and [TVTime:state] eq "off" and [?15:00-22:00]) (set WZBodenLed on, set WZEZ_WZFLed on)
DOELSEIF
([TVTime:state] eq "off" and [22:00-05:00] and [?PartyTime:state] eq "off")
(set WZEZ_WZFLed on-for-timer 600) (set WZBodenLed on-for-timer 900)
DOELSEIF
([?TVTime:state] eq "off" and [?22:00-05:00] and [PartyTime:state] eq "off") (set WZBodenLed off) (set WZEZ_WZFLed off)



Und ein List davon:
Internals:
   DEF        ([Tageslicht_indoor] eq "Nacht" and [?TVTime:state] eq "off" and [?15:00-22:00]) (set WZBodenLed on, set WZEZ_WZFLed on)
DOELSEIF
([?Tageslicht_indoor] eq "Nacht" and [TVTime:state] eq "off" and [?15:00-22:00]) (set WZBodenLed on, set WZEZ_WZFLed on)
DOELSEIF
([TVTime:state] eq "off" and [22:00-05:00] and [?PartyTime:state] eq "off")
(set WZEZ_WZFLed on-for-timer 600) (set WZBodenLed on-for-timer 900)
DOELSEIF
([?TVTime:state] eq "off" and [?22:00-05:00] and [PartyTime:state] eq "off") (set WZBodenLed off) (set WZEZ_WZFLed off)
   MODEL      FHEM
   NAME       DOIFWzEzBeleuchtung
   NR         108
   NTFY_ORDER 50-DOIFWzEzBeleuchtung
   STATE      cmd_3
   TYPE       DOIF
   READINGS:
     2018-04-24 20:12:37   Device          Tageslicht_indoor
     2018-04-25 04:12:37   cmd             3.2
     2018-04-25 04:12:37   cmd_event       DOIFWzEzBeleuchtung
     2018-04-25 04:12:37   cmd_nr          3
     2018-04-25 04:12:37   cmd_seqnr       2
     2018-04-22 20:52:45   e_PartyTime_state off
     2018-04-22 20:52:22   e_TVTime_state  off
     2018-04-24 20:12:37   e_Tageslicht_indoor_STATE Nacht
     2018-04-22 09:21:18   mode            enabled
     2018-04-25 04:12:37   state           cmd_3
     2018-04-24 22:00:00   timer_01_c01    25.04.2018 15:00:00
     2018-04-24 22:00:00   timer_02_c01    25.04.2018 22:00:00
     2018-04-24 22:00:00   timer_03_c02    25.04.2018 15:00:00
     2018-04-24 22:00:00   timer_04_c02    25.04.2018 22:00:00
     2018-04-25 05:00:00   timer_05_c03    26.04.2018 22:00:00
     2018-04-25 05:00:00   timer_06_c03    26.04.2018 05:00:00
     2018-04-25 05:00:00   timer_07_c04    26.04.2018 22:00:00
     2018-04-25 05:00:00   timer_08_c04    26.04.2018 05:00:00
     2018-04-24 20:27:37   wait_timer      no timer
   Regex:
   condition:
     0          InternalDoIf($hash,'Tageslicht_indoor','STATE') eq "Nacht" and ReadingValDoIf($hash,'TVTime','state') eq "off" and DOIF_time($hash,0,1,$wday,$hms)
     1          InternalDoIf($hash,'Tageslicht_indoor','STATE') eq "Nacht" and ReadingValDoIf($hash,'TVTime','state') eq "off" and DOIF_time($hash,2,3,$wday,$hms)
     2          ReadingValDoIf($hash,'TVTime','state') eq "off" and DOIF_time($hash,4,5,$wday,$hms) and ReadingValDoIf($hash,'PartyTime','state') eq "off"
     3          ReadingValDoIf($hash,'TVTime','state') eq "off" and DOIF_time($hash,6,7,$wday,$hms) and ReadingValDoIf($hash,'PartyTime','state') eq "off"
   days:
   devices:
     0           Tageslicht_indoor
     1           TVTime
     2           TVTime
     3           PartyTime
     all         Tageslicht_indoor TVTime PartyTime
   do:
     0:
       0          set WZBodenLed on, set WZEZ_WZFLed on
     1:
       0          set WZBodenLed on, set WZEZ_WZFLed on
     2:
       0          set WZEZ_WZFLed on-for-timer 600
       1          set WZBodenLed on-for-timer 900
     3:
       0          set WZBodenLed off
       1          set WZEZ_WZFLed off
     4:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      timer_6
     globalinit 1
     last_timer 8
     sleepdevice Tageslicht_indoor
     sleepsubtimer -1
     sleeptimer -1
     timerdev   
     timerevent Nacht
     triggerDev
     timerevents:
       Nacht
     timereventsState:
       state: Nacht
     triggerEvents:
       timer_6
     triggerEventsState:
       state: Nacht
   internals:
     0           Tageslicht_indoor:STATE
     1           Tageslicht_indoor:STATE
     all         Tageslicht_indoor:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   itimer:
   localtime:
     0          1524661200
     1          1524686400
     2          1524661200
     3          1524686400
     4          1524772800
     5          1524711600
     6          1524772800
     7          1524711600
   perlblock:
   readings:
     1           TVTime:state
     2           TVTime:state
     3           PartyTime:state
     all         TVTime:state PartyTime:state
   realtime:
     0          15:00:00
     1          22:00:00
     2          15:00:00
     3          22:00:00
     4          22:00:00
     5          05:00:00
     6          22:00:00
     7          05:00:00
   time:
     0          15:00:00
     1          22:00:00
     2          15:00:00
     3          22:00:00
     4          22:00:00
     5          05:00:00
     6          22:00:00
     7          05:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     2           4  5
   trigger:
   triggertime:
     1524661200:
       localtime  1524661200
       hash:
     1524686400:
       localtime  1524686400
       hash:
     1524711600:
       localtime  1524711600
       hash:
     1524772800:
       localtime  1524772800
       hash:
   uiState:
   uiTable:
Attributes:
   room       2 DOIF
   wait       900

pc1246

#1
Moin
Ohne das genauer angesehen zu haben, faellt mir erstmal auf, das 1 und 2 sowie 3 und 4 jeweils die gleichen Bedingungen haben. Bist Du Dir ueber die Bedeutung der Fragezeichen im klaren? Zudem sind die Bedingungen nicht so klar abgegrenzt, dass es nicht unmoeglich ist, dass eine "vordere" Bedingung erfuellt ist, obwohl Du es anders erwartest. Denn DOIF bleibt in der ersten komplett erfuellten Bedingung haengen!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Damian

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

misux

Zitat von: pc1246 am 25 April 2018, 06:59:50
Moin
Ohne das genauer angesehen zu haben, faellt mir erstmal auf, das 1 und 2 sowie 3 und 4 jeweils die gleichen Bedingungen haben. Bist Du Dir ueber die Bedeutung der Fragezeichen im klaren? Zudem sind die Bedingungen nicht so klar abgegrenzt, dass es nicht unmoeglich ist, dass eine "vordere" Bedingung erfuellt ist, obwohl Du es anders erwartest. Denn DOIF bleibt in der ersten komplett erfuellten Bedingung haengen!
Gruss Christoph

Verstehe ich nicht... Es hat ja alles wunderbar funktioniert...

cmd 1 und 2 haben zwar die gleichen Bedingungen Triggern aber bei 1 nur auf ([Tageslicht_indoor] eq "Nacht" und bei 2 nur auf [TVTime:state] eq "off" überprüfen tun sie aber die ? weil die auch Voraussetzungen erfüllt sein müssen bevor getriggert wird.

bei 3 wird auf [TVTime:state] eq "off" UND [22:00-05:00] getriggert aber nur wenn [?PartyTime:state] eq "off" ist

bei 4 wird auf  [PartyTime:state] eq "off" getriggert aber nur wenn [?TVTime:state] eq "off" und [?22:00-05:00] ist.

Also falls ich etwas falsch verstanden habe dann hat jedenfalls das DOIF mich verstanden  ;D

pc1246

#4
Hallo misux
Sorry, ich war heute morgen durcheinander und hatte mich etwas verrannt. (Toll wenn der Arbeitgeber meint es ist Sommer und man hier mit Jacke frieren muss!)
Du hast recht, und mache das was Damian geschrieben hat!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

misux

Alles gut! Update durchgeführt! Bin gespannt  ;D