Hauptmenü

[Erledigt] DOIF mit on-for-timer

Begonnen von SamNitro, 13 Januar 2022, 22:16:23

Vorheriges Thema - Nächstes Thema

SamNitro

Hallo zusammen,
ich habe seit Ewigkeiten ein Doif am laufen was seit geraumer zeit nicht mehr richtig funktioniert.
Mein Licht geht zwar an, aber nicht mehr aus. Liegt es an einem update oder habe ich einen Fehler in meiner Config?

LIST:
Internals:
   DEF        ([HmIPW_Anzeige_Schiebetor] eq "true" and [4:30-5:15])
(set HmIPW_Licht_Esszimmer on-for-timer 300)
(set HmIPW_Licht_Garten on-for-timer 180)
(set HmIPW_Licht_Gartenweg on-for-timer 180)
(set HmIPW_Licht_Stellplatz on-for-timer 180)
(set HmIPW_Rollo_Esszimmer_Tuer open)
DOELSEIF
([HmIPW_Anzeige_Schiebetor:"^STATE:.true$"] and [HmIP_Helligkeitssensor:licht] eq "1")
(set HmIPW_Licht_Garten on-for-timer 180)
(set HmIPW_Licht_Gartenweg on-for-timer 180)
(set HmIPW_Licht_Stellplatz on-for-timer 180)
   FUUID      5f36ab05-f33f-19ae-ed49-8921b2156b86a678
   MODEL      FHEM
   NAME       doif_Schiebetor_licht
   NOTIFYDEV  global,HmIP_Helligkeitssensor,HmIPW_Anzeige_Schiebetor
   NR         136
   NTFY_ORDER 50-doif_Schiebetor_licht
   STATE      cmd_1
   TYPE       DOIF
   VERSION    25386 2021-12-28 22:19:25
   READINGS:
     2022-01-13 21:00:44   Device          HmIPW_Anzeige_Schiebetor
     2022-01-13 21:59:35   cmd             1.5
     2022-01-13 21:59:35   cmd_event       set_cmd_1
     2022-01-13 21:59:35   cmd_nr          1
     2022-01-13 21:59:35   cmd_seqnr       5
     2022-01-13 21:00:44   e_HmIPW_Anzeige_Schiebetor_STATE false
     2022-01-13 21:00:44   e_HmIPW_Anzeige_Schiebetor_events false,STATE: false,hmstate: false
     2022-01-13 16:52:03   e_HmIP_Helligkeitssensor_licht 1
     2022-01-12 21:52:04   mode            enabled
     2022-01-13 21:59:35   state           cmd_1
     2022-01-13 05:15:00   timer_01_c01    14.01.2022 04:30:00
     2022-01-13 05:15:00   timer_02_c01    14.01.2022 05:15:00
   Regex:
     accu:
     collect:
     cond:
       HmIPW_Anzeige_Schiebetor:
         0:
           &STATE     ^HmIPW_Anzeige_Schiebetor$
         1:
           &STATE     ^HmIPW_Anzeige_Schiebetor$
       HmIP_Helligkeitssensor:
         0:
         1:
           licht      ^HmIP_Helligkeitssensor$:^licht:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'HmIPW_Anzeige_Schiebetor','STATE') eq "true" and ::DOIF_time($hash,0,1,$wday,$hms)
     1          ::EventDoIf('HmIPW_Anzeige_Schiebetor',$hash,'^STATE:.true$',1) and ::ReadingValDoIf($hash,'HmIP_Helligkeitssensor','licht') eq "1"
   days:
   do:
     0:
       0          set HmIPW_Licht_Esszimmer on-for-timer 300
       1          set HmIPW_Licht_Garten on-for-timer 180
       2          set HmIPW_Licht_Gartenweg on-for-timer 180
       3          set HmIPW_Licht_Stellplatz on-for-timer 180
       4          set HmIPW_Rollo_Esszimmer_Tuer open
     1:
       0          set HmIPW_Licht_Garten on-for-timer 180
       1          set HmIPW_Licht_Gartenweg on-for-timer 180
       2          set HmIPW_Licht_Stellplatz on-for-timer 180
     2:
   helper:
     DEVFILTER  ^global$|^HmIP_Helligkeitssensor$|^HmIPW_Anzeige_Schiebetor$
     NOTIFYDEV  global|HmIP_Helligkeitssensor|HmIPW_Anzeige_Schiebetor
     event      false,STATE: false,hmstate: false
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   HmIPW_Anzeige_Schiebetor
     timerevent STATE: true
     triggerDev HmIPW_Anzeige_Schiebetor
     timerevents:
       true
       STATE: true
       hmstate: true
     timereventsState:
       state: true
       STATE: true
       hmstate: true
     triggerEvents:
       false
       STATE: false
       hmstate: false
     triggerEventsState:
       state: false
       STATE: false
       hmstate: false
   internals:
     all         HmIPW_Anzeige_Schiebetor:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1642131000
     1          1642133700
   readings:
     all         HmIP_Helligkeitssensor:licht
   realtime:
     0          04:30:00
     1          05:15:00
   time:
     0          4:30
     1          5:15
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
     all         HmIPW_Anzeige_Schiebetor
   triggertime:
     1642131000:
       localtime  1642131000
       hash:
     1642133700:
       localtime  1642133700
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       DOIF,Homematic


LG Patrick
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Otto123

Mal solo probiert?
set HmIPW_Licht_Esszimmer on-for-timer 300
Mal die Events angeschaut? Eventmonitor
HmIPW_Anzeige_Schiebetor.*

Du hast do always aktiv, jeder Event wird verlängern :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SamNitro

Solo klappt es.
das Event Schiebetor auf kommt ja eigentlich nur einmal. Hat ja auch lange funktioniert. (fast 2 jahre) Event Monitor schaue ich mir mal an.
eigentlich sollte es so sein:

[HmIPW_Anzeige_Schiebetor:"^STATE:.true$"]

komisch ist das es an geht aber nicht aus... als würden weitere Timer gelöscht oder ignoriert
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

#3
Testweise habe ich das mal versucht:
([FB_Eckig_Neu_1:"^action:.left$"] and [HmIP_Helligkeitssensor:licht] eq "1")
(set HmIPW_Licht_Keller_Flur on-for-timer 10)
(set HmIPW_Licht_Keller_Hobby on-for-timer 10)
(set HmIPW_Licht_Keller_Lager on-for-timer 10)


da geht nur das erste aus


EDIT: bei nur einem gerät funktioniert das DOIF
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Otto123

#4
naja solche Befehlstrennung ist eigentlich nicht nötig.
((set HmIPW_Licht_Keller_Flur,HmIPW_Licht_Keller_Hobby,HmIPW_Licht_Keller_Lager on-for-timer 10))

Aber DOIF ist speziell ::)

geht auch so:
(set HmIPW_Licht_Keller_Flur on-for-timer 10, set HmIPW_Licht_Keller_Hobby on-for-timer 10,set HmIPW_Licht_Keller_Lager on-for-timer 10))

Oder HMCCU (wer auch immer) braucht Zeit, hatte sowas woanders gelesen. Geht das in der FHEM Kommandozeile?
set HmIPW_Licht_Keller_Flur,HmIPW_Licht_Keller_Hobby,HmIPW_Licht_Keller_Lager on-for-timer 10

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SamNitro

Zitatset HmIPW_Licht_Keller_Flur,HmIPW_Licht_Keller_Hobby,HmIPW_Licht_Keller_Lager on-for-timer 10

an geht... aus nicht.. also liegt es nicht am DOIF
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

habe es gefunden...
habe mir selber das Ei gelegt....
https://forum.fhem.de/index.php/topic,83475.msg849109.html#msg849109

Zitat1. Nimm nonBlocking raus
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)