doif wird nur einmal ausgeführt

Begonnen von simon_eifel, 13 Juni 2021, 10:39:03

Vorheriges Thema - Nächstes Thema

simon_eifel

Guten morgen zusammen,
vielleicht kann mir jemand helfen.
Bin gerade mein FHEM am ersteinrichten und stoße nun an meine grenze :-(

Folgendes Problem

habe ein Flurlicht welches ich täglich von 05:55 bis 06:05 einschalten würde.
Das ganze funktioniert auch schon, jedoch bekomme ich es nicht hin das es am zweitem Tag auch passiert.
der Status bleibt dann beim zweiten Ausführungsteil hängen, selbst wenn ich ihn im zweitem Ausführungsteil wieder auf initialized setze.

Hier kurz der Code :

([05:55-06:05]) (set Flur_unten_L on) DOELSE (set Licht_gehen_06 initialized)

Habe ich hier einen Denkfehler ?

slor

Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

simon_eifel

ja das attr habe ich gesetzt,
aber er bleibt immer beim cmd_2 hängen.
müsste das doif nicht dann wieder auf initialized springen?




defmod Licht_gehen_06 DOIF ([05:55-06:05]) (set Flur_unten_L on) DOELSE (set Licht_gehen_06 initialized)
attr Licht_gehen_06 do always
attr Licht_gehen_06 group Steuerung
attr Licht_gehen_06 room Tradfri
attr Licht_gehen_06 selftrigger all

setstate Licht_gehen_06 initialized
setstate Licht_gehen_06 2021-06-13 10:51:48 cmd 0
setstate Licht_gehen_06 2021-06-13 10:51:48 mode enabled
setstate Licht_gehen_06 2021-06-13 10:51:48 state initialized
setstate Licht_gehen_06 2021-06-13 10:51:48 timer_01_c01 14.06.2021 05:55:00
setstate Licht_gehen_06 2021-06-13 10:51:48 timer_02_c01 14.06.2021 06:05:00

slor

Nutze bitte Code Tags.

Ansonsten einfach mal DOELSE ()
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

Otto123

Hi,

bitte poste ein komplettes list des DOIF in Codetags.
https://forum.fhem.de/index.php/topic,71806.0.html
Du willst das das Licht wieder ausgeht?
defmod Licht_gehen_06 DOIF ([05:55-06:05]) (set Flur_unten_L on) DOELSE (set Flur_unten_L off)

Gruß Otto
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

simon_eifel

das Licht geht wieder automatisch aus, jedoch habe ich festgestellt das es am nächstem morgen nicht wieder angeht, das doif also nicht erneut gestartet initialisiert wird.


Internals:
   DEF        ([05:55-06:05]) (set Flur_unten_L on) DOELSE (set Licht_gehen_06 initialized)
   FUUID      60c2eafb-f33f-d904-ce37-ad6ff1655ea5c5b6
   MODEL      FHEM
   NAME       Licht_gehen_06
   NOTIFYDEV  global
   NR         59
   NTFY_ORDER 50-Licht_gehen_06
   STATE      initialized
   TYPE       DOIF
   VERSION    24519 2021-05-27 17:06:34
   READINGS:
     2021-06-13 10:51:48   cmd             0
     2021-06-13 10:51:48   mode            enabled
     2021-06-13 10:51:48   state           initialized
     2021-06-13 10:51:48   timer_01_c01    14.06.2021 05:55:00
     2021-06-13 10:51:48   timer_02_c01    14.06.2021 06:05:00
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms)
   days:
   devices:
   do:
     0:
       0          set Flur_unten_L on
     1:
       0          set Licht_gehen_06 initialized
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 2
     sleeptimer -1
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1623642900
     1          1623643500
   realtime:
     0          05:55:00
     1          06:05:00
   time:
     0          05:55:00
     1          06:05:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1623642900:
       localtime  1623642900
       hash:
     1623643500:
       localtime  1623643500
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Steuerung
   room       Tradfri
   selftrigger all

Otto123

Den DOELSE Zweig halte ich für nicht notwendig, lass den einfach weg.
Auch das attribute selftrigger all ist nicht notwendig.

Allerdings musst Du wissen warum das Licht wieder ausgeht, dieses DOIF ist nicht dafür zuständig :)
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

simon_eifel

mit dem doif schalte ich doch den status des Devices Flur_unten_L zwischen 05:55 und 06:05 auf on und sonst auf off.
wie kann ich das denn anders lösen ?


Internals:
   DEF        Licht_gehen_06 DOIF ([05:55-06:05]) (set Flur_unten_L on) DOELSE (set Flur_unten_L off)

   FUUID      60c2eafb-f33f-d904-ce37-ad6ff1655ea5c5b6
   MODEL      Perl
   NAME       Licht_gehen_06
   NOTIFYDEV  global
   NR         59
   NTFY_ORDER 50-Licht_gehen_06
   STATE      initialized
   TYPE       DOIF
   VERSION    24519 2021-05-27 17:06:34
   READINGS:
     2021-06-13 11:25:36   mode            enabled
     2021-06-13 11:25:36   state           initialized
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
   devices:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Steuerung
   room       Tradfri



wie gesagt bin am Anfang das ganze erst zu verstehen

Otto123

Von der DEF her würde ich sagen: Jetzt ja, das Ding sollte 05:55 an gehen und 6:05 wieder aus. Allerdings ist da was faul.
Ich sehe keine Timer!?
MODEL steht auf Perl!?

So sieht ein schneller nachbau bei mir aus:
Internals:
   CFGFN     
   DEF        ([17:59-18:00])(set SD3 on) DOELSE (set SD3 off)
   FUUID      60c62b00-f33f-520c-5edf-ff1e667d402b6eed
   MODEL      FHEM
   NAME       d_sd3
   NOTIFYDEV  global
   NR         273878
   NTFY_ORDER 50-d_sd3
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24195 2021-04-08 21:50:20
   READINGS:
     2021-06-13 17:59:00   cmd             1
     2021-06-13 17:59:00   cmd_event       timer_1
     2021-06-13 17:59:00   cmd_nr          1
     2021-06-13 17:57:52   mode            enabled
     2021-06-13 17:59:00   state           cmd_1
     2021-06-13 17:57:52   timer_01_c01    13.06.2021 17:59:00
     2021-06-13 17:57:52   timer_02_c01    13.06.2021 18:00:00
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms)
   days:
   do:
     0:
       0          set SD3 on
     1:
       0          set SD3 off
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     event      timer_1
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_1
     triggerDev
     timerevents:
       timer_1
     timereventsState:
       timer_1
     triggerEvents:
       timer_1
     triggerEventsState:
       timer_1
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   localtime:
     0          1623599940
     1          1623600000
   realtime:
     0          17:59:00
     1          18:00:00
   time:
     0          17:59:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1623600000:
       localtime  1623600000
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
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

McShire

Das DOIF schaltet das Licht nur ein, und zwar am Anfang der Zeitspanne.
Probier es mal so, dann geht es jeden Tag um 5:55 an und um 6:05 aus.

([05:55]) (set Flur_unten_L on) DOELSEIF ([06:05]) (set Flur_unten_L off)

da braucht man auch kein always oder andere attr

Gruß
Werner