FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matze1999 am 23 März 2025, 09:57:08

Titel: [gelöst] sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 09:57:08
Hallo,

ich habe ein DOIF mit folgender Bedingung:

([05:30-{sunrise()}] and [Bewegungsmelder:"^on-old-for-timer.60$"])
(set MQTT2_DVES_B642C2_CH2 on-for-timer 60)

und das DOIF schaltet auch tagsüber?

matze1999
Titel: Aw: sunrise DOIF Fehler
Beitrag von: Otto123 am 23 März 2025, 12:22:23
Hi,

ich habe bei ähnlichen Konstrukten immer sunrise_abs() genommen. sunrise() liefert immer den nächsten Termin, sunrise_abs() liefert den heutigen.

Gruß Otto
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 13:40:06
so, geändert in:

([05:30-{sunrise_abs()}] and [Bewegungsmelder:"^on-old-for-timer.60$"])
(set MQTT2_DVES_B642C2_CH2 on-for-timer 60)

gleiches Verhalten (selbst nach einem FHEM Neustart, schaltet immer.


setstate BewegungsmelderNeu 2025-03-23 13:34:32 cmd 2
setstate BewegungsmelderNeu 2025-03-23 13:34:32 cmd_event Bewegungsmelder
setstate BewegungsmelderNeu 2025-03-23 13:34:32 cmd_nr 2
setstate BewegungsmelderNeu 2025-03-23 13:34:32 e_Bewegungsmelder_events on-old-for-timer 60

matze1999
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 13:43:47
...oder gilt dieser Hinweis aus dem FHEMWiki noch:

Die sunset / sunrise Einstellungen arbeiten meist erst am nächsten Tag richtig. Das hängt zusammen mit einer Falschberechnung beim setzen dieses defines. An einer Korrektur wird gearbeitet (Stand Januar 2013).
Titel: Aw: sunrise DOIF Fehler
Beitrag von: Otto123 am 23 März 2025, 13:46:39
Zeig mal bitte ein komplettes list vom DOIF
Titel: Aw: sunrise DOIF Fehler
Beitrag von: rabehd am 23 März 2025, 13:48:08
Was gibt {sunrise_abs()} in der Kommandozeile zurück?
Ist Dein Standort in global definiert?
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 13:53:05
Zitat von: rabehd am 23 März 2025, 13:48:08Was gibt {sunrise_abs()} in der Kommandozeile zurück?
Ist Dein Standort in global definiert?

05:28:49
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 13:54:31
Zitat von: Otto123 am 23 März 2025, 13:46:39Zeig mal bitte ein komplettes list vom DOIF

Bitte schön:

[code]define BewegungsmelderNeu DOIF (\
[{sunset_abs()}-22:00] \
and [Bewegungsmelder:"^on-old-for-timer.60$"] \
and [MQTT2_DVES_F8DDE2:state] eq "off"\
and [MQTT2_DVES_D61F5E:state] eq "off"\
and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_D61F5E on-for-timer 300,\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 300,\
set MQTT2_zigbee_Aussenleichterkette white,\
set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)\
DOELSEIF\
(\
[05:30-{sunrise_abs()}] \
and [Bewegungsmelder:"^on-old-for-timer.60$"] \
and [MQTT2_DVES_F8DDE2:state] eq "off" \
and [MQTT2_DVES_D61F5E:state] eq "off"\
and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_D61F5E on-for-timer 60,\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 60)\
DOELSEIF\
([{sunset_abs()}-22:00] \
and [Bewegungsmelder1:"^on-old-for-timer.60$"] \
and [MQTT2_DVES_F8DDE2:state] eq "off"\
and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 300,\
set MQTT2_zigbee_Aussenleichterkette white,\
set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)\
DOELSEIF\
(\
[05:30-{sunrise_abs()}] \
and [Bewegungsmelder1:"^on-old-for-timer.60$"] \
and [MQTT2_DVES_F8DDE2:state] eq "off" \
and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
attr BewegungsmelderNeu alias BewegungsmelderNeu
attr BewegungsmelderNeu devStateStyle style="text-align:left;;font-weight:bold;;"
attr BewegungsmelderNeu do always
attr BewegungsmelderNeu group Garten
attr BewegungsmelderNeu room nt+di
attr BewegungsmelderNeu verbose 5
#   DEF        (
#[{sunset_abs()}-22:00]
#and [Bewegungsmelder:"^on-old-for-timer.60$"]
#and [MQTT2_DVES_F8DDE2:state] eq "off"
#and [MQTT2_DVES_D61F5E:state] eq "off"
#and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_D61F5E on-for-timer 300,
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 300,
#set MQTT2_zigbee_Aussenleichterkette white,
#set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)
#DOELSEIF
#(
#[05:30-{sunrise_abs()}]
#and [Bewegungsmelder:"^on-old-for-timer.60$"]
#and [MQTT2_DVES_F8DDE2:state] eq "off"
#and [MQTT2_DVES_D61F5E:state] eq "off"
#and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_D61F5E on-for-timer 60,
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
#DOELSEIF
#([{sunset_abs()}-22:00]
#and [Bewegungsmelder1:"^on-old-for-timer.60$"]
#and [MQTT2_DVES_F8DDE2:state] eq "off"
#and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 300,
#set MQTT2_zigbee_Aussenleichterkette white,
#set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)
#DOELSEIF
#(
#[05:30-{sunrise_abs()}]
#and [Bewegungsmelder1:"^on-old-for-timer.60$"]
#and [MQTT2_DVES_F8DDE2:state] eq "off"
#and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
#   FUUID      619a6f7a-f33f-214e-fd1c-d606de4f22a6f6fe
#   MODEL      FHEM
#   NAME       BewegungsmelderNeu
#   NOTIFYDEV  Bewegungsmelder,Bewegungsmelder1,MQTT2_DVES_D61F5E,MQTT2_DVES_F8DDE2,MQTT2_zigbee_Aussenleichterkette,global
#   NR         179
#   NTFY_ORDER 50-BewegungsmelderNeu
#   STATE      cmd_2
#   TYPE       DOIF
#   VERSION    29460 2024-12-29 20:25:48
#   eventCount 13
#   OLDREADINGS:
#   READINGS:
#     2025-03-23 13:53:40   Device          MQTT2_DVES_D61F5E
#     2025-03-23 13:53:40   cmd             2
#     2025-03-23 13:53:40   cmd_event       Bewegungsmelder
#     2025-03-23 13:53:40   cmd_nr          2
#     2025-03-23 13:39:07   e_Bewegungsmelder1_events on-old-for-timer 60
#     2025-03-23 13:53:40   e_Bewegungsmelder_events on-old-for-timer 60
#     2025-03-23 13:53:40   e_MQTT2_DVES_D61F5E_state on
#     2025-03-23 13:40:12   e_MQTT2_zigbee_Aussenleichterkette_state off
#     2025-03-23 13:30:07   mode            enabled
#     2025-03-23 13:53:40   state           cmd_2
#     2025-03-23 13:27:04   timer_01_c01    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_02_c01    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_05_c03    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_06_c03    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_07_c04    24.03.2025 05:30:00
#     2025-03-23 13:27:04   timer_08_c04    24.03.2025 05:28:49
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     cond:
#       Bewegungsmelder:
#         0:
#           &STATE     ^Bewegungsmelder$
#         1:
#           &STATE     ^Bewegungsmelder$
#       Bewegungsmelder1:
#         0:
#         1:
#         2:
#           &STATE     ^Bewegungsmelder1$
#         3:
#           &STATE     ^Bewegungsmelder1$
#       MQTT2_DVES_D61F5E:
#         0:
#           state      ^MQTT2_DVES_D61F5E$:^state:
#         1:
#           state      ^MQTT2_DVES_D61F5E$:^state:
#         2:
#         3:
#       MQTT2_DVES_F8DDE2:
#         0:
#           state      ^MQTT2_DVES_F8DDE2$:^state:
#         1:
#           state      ^MQTT2_DVES_F8DDE2$:^state:
#         2:
#           state      ^MQTT2_DVES_F8DDE2$:^state:
#         3:
#           state      ^MQTT2_DVES_F8DDE2$:^state:
#       MQTT2_zigbee_Aussenleichterkette:
#         0:
#           state      ^MQTT2_zigbee_Aussenleichterkette$:^state:
#         1:
#           state      ^MQTT2_zigbee_Aussenleichterkette$:^state:
#         2:
#           state      ^MQTT2_zigbee_Aussenleichterkette$:^state:
#         3:
#           state      ^MQTT2_zigbee_Aussenleichterkette$:^state:
#   attr:
#     cmdState:
#     wait:
#     waitdel:
#   condition:
#     0           ::DOIF_time($hash,0,1,$wday,$hms)  and ::EventDoIf('Bewegungsmelder',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_DVES_D61F5E','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     1           ::DOIF_time($hash,2,3,$wday,$hms)  and ::EventDoIf('Bewegungsmelder',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off"  and ::ReadingValDoIf($hash,'MQTT2_DVES_D61F5E','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     2          ::DOIF_time($hash,4,5,$wday,$hms)  and ::EventDoIf('Bewegungsmelder1',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     3           ::DOIF_time($hash,6,7,$wday,$hms)  and ::EventDoIf('Bewegungsmelder1',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off"  and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#   days:
#   do:
#     0:
#       0           set MQTT2_DVES_D61F5E on-for-timer 300, set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 300, set MQTT2_zigbee_Aussenleichterkette white, set MQTT2_zigbee_Aussenleichterkette on-for-timer 300
#     1:
#       0           set MQTT2_DVES_D61F5E on-for-timer 60, set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 60
#     2:
#       0           set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 300, set MQTT2_zigbee_Aussenleichterkette white, set MQTT2_zigbee_Aussenleichterkette on-for-timer 300
#     3:
#       0           set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 60
#     4:
#   helper:
#     NOTIFYDEV  Bewegungsmelder,Bewegungsmelder1,MQTT2_DVES_D61F5E,MQTT2_DVES_F8DDE2,MQTT2_zigbee_Aussenleichterkette,global
#     event      on
#     globalinit 1
#     last_timer 8
#     sleeptimer -1
#     timerdev   Bewegungsmelder
#     timerevent on-old-for-timer 60
#     triggerDev MQTT2_DVES_D61F5E
#     timerevents:
#       on-old-for-timer 60
#     timereventsState:
#       state: on-old-for-timer 60
#     triggerEvents:
#       on
#     triggerEventsState:
#       state: on
#   internals:
#   interval:
#     0          -1
#     1          0
#     2          -1
#     3          2
#     4          -1
#     5          4
#     6          -1
#     7          6
#   intervalfunc:
#   localtime:
#     0          1742752524
#     1          1742763600
#     2          1742790600
#     3          1742790529
#     4          1742752524
#     5          1742763600
#     6          1742790600
#     7          1742790529
#   perlblock:
#   readings:
#     all         MQTT2_DVES_F8DDE2:state MQTT2_DVES_D61F5E:state MQTT2_zigbee_Aussenleichterkette:state
#   realtime:
#     0          18:55:24
#     1          22:00:00
#     2          05:30:00
#     3          05:28:49
#     4          18:55:24
#     5          22:00:00
#     6          05:30:00
#     7          05:28:49
#   time:
#     0          {sunset_abs()}
#     1          22:00:00
#     2          05:30:00
#     3          {sunrise_abs()}
#     4          {sunset_abs()}
#     5          22:00:00
#     6          05:30:00
#     7          {sunrise_abs()}
#   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:
#     0           0  1
#     1           2  3
#     2           4  5
#     3           6  7
#   trigger:
#     all         Bewegungsmelder Bewegungsmelder1
#   triggertime:
#     1742752524:
#       localtime  1742752524
#       hash:
#     1742763600:
#       localtime  1742763600
#       hash:
#     1742790529:
#       localtime  1742790529
#       hash:
#     1742790600:
#       localtime  1742790600
#       hash:
#   uiState:
#   uiTable:
#
setstate BewegungsmelderNeu cmd_2
setstate BewegungsmelderNeu 2025-03-23 13:53:40 Device MQTT2_DVES_D61F5E
setstate BewegungsmelderNeu 2025-03-23 13:53:40 cmd 2
setstate BewegungsmelderNeu 2025-03-23 13:53:40 cmd_event Bewegungsmelder
setstate BewegungsmelderNeu 2025-03-23 13:53:40 cmd_nr 2
setstate BewegungsmelderNeu 2025-03-23 13:39:07 e_Bewegungsmelder1_events on-old-for-timer 60
setstate BewegungsmelderNeu 2025-03-23 13:53:40 e_Bewegungsmelder_events on-old-for-timer 60
setstate BewegungsmelderNeu 2025-03-23 13:53:40 e_MQTT2_DVES_D61F5E_state on
setstate BewegungsmelderNeu 2025-03-23 13:40:12 e_MQTT2_zigbee_Aussenleichterkette_state off
setstate BewegungsmelderNeu 2025-03-23 13:30:07 mode enabled
setstate BewegungsmelderNeu 2025-03-23 13:53:40 state cmd_2
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_01_c01 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_02_c01 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_05_c03 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_06_c03 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_07_c04 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 13:27:04 timer_08_c04 24.03.2025 05:28:49

[/code]
Titel: Aw: sunrise DOIF Fehler
Beitrag von: rabehd am 23 März 2025, 13:57:41
Zitat von: matze1999 am 23 März 2025, 13:53:05
Zitat von: rabehd am 23 März 2025, 13:48:08Was gibt {sunrise_abs()} in der Kommandozeile zurück?
Ist Dein Standort in global definiert?

05:28:49


5:30 bis 5:28, Dein Sonnenaufgang ist vor dem Beginn, bzw. 24 Stunden später.

Schau dir mal die Parameter von sunrise_abs() an. In Deinem Usecase sollte jetzt gar nicht mehr geschaltet werden.
Titel: Aw: sunrise DOIF Fehler
Beitrag von: Otto123 am 23 März 2025, 14:20:59
Bedingung 2 hat keinen Timer?  :o
Zitat#     2025-03-23 13:27:04   timer_01_c01    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_02_c01    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_05_c03    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_06_c03    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_07_c04    24.03.2025 05:30:00
#     2025-03-23 13:27:04   timer_08_c04    24.03.2025 05:28:49
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 14:28:06
Zitat von: Otto123 am 23 März 2025, 14:20:59Bedingung 2 hat keinen Timer?  :o
Zitat#     2025-03-23 13:27:04   timer_01_c01    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_02_c01    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_05_c03    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_06_c03    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_07_c04    24.03.2025 05:30:00
#     2025-03-23 13:27:04   timer_08_c04    24.03.2025 05:28:49

hatte ich gelöscht, war jeweils der 24.03.2025 mit 05:30:00 und 05:28:49.

matze1999
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 14:33:36
Zitat von: rabehd am 23 März 2025, 13:57:415:30 bis 5:28, Dein Sonnenaufgang ist vor dem Beginn, bzw. 24 Stunden später.

Schau dir mal die Parameter von sunrise_abs() an. In Deinem Usecase sollte jetzt gar nicht mehr geschaltet werden.

Ich hab jetzt folgendes eingetragen, so schaltet es wenigstens nicht mehr tagsüber:

{sunrise_abs(0,"05:30","10:00")}
matze1999
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 14:35:13
Zitat von: Otto123 am 23 März 2025, 14:20:59Bedingung 2 hat keinen Timer?  :o
Zitat#     2025-03-23 13:27:04   timer_01_c01    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_02_c01    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_05_c03    23.03.2025 18:55:24
#     2025-03-23 13:27:04   timer_06_c03    23.03.2025 22:00:00
#     2025-03-23 13:27:04   timer_07_c04    24.03.2025 05:30:00
#     2025-03-23 13:27:04   timer_08_c04    24.03.2025 05:28:49

mit den o.g. Parametern für sunrise, habe ich jetzt auch wieder alle timer:

setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_01_c01 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_02_c01 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_03_c02 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_04_c02 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_05_c03 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_06_c03 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_07_c04 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 14:30:08 timer_08_c04 24.03.2025 05:30:00
Titel: Aw: sunrise DOIF Fehler
Beitrag von: Otto123 am 23 März 2025, 14:40:27
Es macht keinen Sinn ein fake list zu posten  :o

Aber laut dem list hat cmd_2 ausgelöst und ich wüsste nicht wie:
Zitat(\
[05:30-{sunrise_abs()}] \
and [Bewegungsmelder:"^on-old-for-timer.60$"] \
and [MQTT2_DVES_F8DDE2:state] eq "off" \
and [MQTT2_DVES_D61F5E:state] eq "off"\
and [MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_D61F5E on-for-timer 60,\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 60)\
es sei denn Dein Timer ging zu dem Zeit vom 23.03 5:30 bis zum 24:03 5:28 ?
Allerdings würde ich "gefühlt" die Trigger ausschalten (? davor) die nicht triggern sollen. Du willst ja nur, dass der Event [Bewegungsmelder:"^on-old-for-timer.60$"] triggert alles andere soll doch nur abgefragt werden?!
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 14:48:41
ich hab noch mal die Parameter in cmd2 raus genommen, dann schaltet es wiede am Tage mit den u.a. timern für cmd2 für morgen:

define BewegungsmelderNeu DOIF (\
[{sunset_abs(0,"15:00","22:00")}-22:00] \
and [Bewegungsmelder:"^on-old-for-timer.60$"] \
and [?MQTT2_DVES_F8DDE2:state] eq "off"\
and [?MQTT2_DVES_D61F5E:state] eq "off"\
and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_D61F5E on-for-timer 300,\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 300,\
set MQTT2_zigbee_Aussenleichterkette white,\
set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)\
DOELSEIF\
(\
[05:30-{sunrise_abs()}] \
and [Bewegungsmelder:"^on-old-for-timer.60$"] \
and [?MQTT2_DVES_F8DDE2:state] eq "off" \
and [?MQTT2_DVES_D61F5E:state] eq "off"\
and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_D61F5E on-for-timer 60,\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 60)\
DOELSEIF\
([{sunset_abs(0,"15:00","22:00")}-22:00] \
and [Bewegungsmelder1:"^on-old-for-timer.60$"] \
and [?MQTT2_DVES_F8DDE2:state] eq "off"\
and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 300,\
set MQTT2_zigbee_Aussenleichterkette white,\
set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)\
DOELSEIF\
(\
[05:30-{sunrise_abs(0,"05:30","10:00")}] \
and [Bewegungsmelder1:"^on-old-for-timer.60$"] \
and [?MQTT2_DVES_F8DDE2:state] eq "off" \
and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"\
) (\
set MQTT2_DVES_B642C2_CH2 rgb EB2F09,\
set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
attr BewegungsmelderNeu alias BewegungsmelderNeu
attr BewegungsmelderNeu devStateStyle style="text-align:left;;font-weight:bold;;"
attr BewegungsmelderNeu do always
attr BewegungsmelderNeu group Garten
attr BewegungsmelderNeu room nt+di
attr BewegungsmelderNeu verbose 5
#   DEF        (
#[{sunset_abs(0,"15:00","22:00")}-22:00]
#and [Bewegungsmelder:"^on-old-for-timer.60$"]
#and [?MQTT2_DVES_F8DDE2:state] eq "off"
#and [?MQTT2_DVES_D61F5E:state] eq "off"
#and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_D61F5E on-for-timer 300,
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 300,
#set MQTT2_zigbee_Aussenleichterkette white,
#set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)
#DOELSEIF
#(
#[05:30-{sunrise_abs()}]
#and [Bewegungsmelder:"^on-old-for-timer.60$"]
#and [?MQTT2_DVES_F8DDE2:state] eq "off"
#and [?MQTT2_DVES_D61F5E:state] eq "off"
#and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_D61F5E on-for-timer 60,
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
#DOELSEIF
#([{sunset_abs(0,"15:00","22:00")}-22:00]
#and [Bewegungsmelder1:"^on-old-for-timer.60$"]
#and [?MQTT2_DVES_F8DDE2:state] eq "off"
#and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 300,
#set MQTT2_zigbee_Aussenleichterkette white,
#set MQTT2_zigbee_Aussenleichterkette on-for-timer 300)
#DOELSEIF
#(
#[05:30-{sunrise_abs(0,"05:30","10:00")}]
#and [Bewegungsmelder1:"^on-old-for-timer.60$"]
#and [?MQTT2_DVES_F8DDE2:state] eq "off"
#and [?MQTT2_zigbee_Aussenleichterkette:state] eq "off"
#) (
#set MQTT2_DVES_B642C2_CH2 rgb EB2F09,
#set MQTT2_DVES_B642C2_CH2 on-for-timer 60)
#   FUUID      619a6f7a-f33f-214e-fd1c-d606de4f22a6f6fe
#   MODEL      FHEM
#   NAME       BewegungsmelderNeu
#   NOTIFYDEV  global,Bewegungsmelder1,Bewegungsmelder
#   NR         179
#   NTFY_ORDER 50-BewegungsmelderNeu
#   STATE      cmd_2
#   TYPE       DOIF
#   VERSION    29460 2024-12-29 20:25:48
#   eventCount 26
#   OLDREADINGS:
#   READINGS:
#     2025-03-23 14:47:12   Device          Bewegungsmelder
#     2025-03-23 14:47:12   cmd             2
#     2025-03-23 14:47:12   cmd_event       Bewegungsmelder
#     2025-03-23 14:47:12   cmd_nr          2
#     2025-03-23 14:47:12   e_Bewegungsmelder_events on-old-for-timer 60
#     2025-03-23 14:44:53   mode            enabled
#     2025-03-23 14:47:12   state           cmd_2
#     2025-03-23 14:44:53   timer_01_c01    23.03.2025 18:55:24
#     2025-03-23 14:44:53   timer_02_c01    23.03.2025 22:00:00
#     2025-03-23 14:44:53   timer_03_c02    24.03.2025 05:30:00
#     2025-03-23 14:44:53   timer_04_c02    24.03.2025 05:28:49
#     2025-03-23 14:44:53   timer_05_c03    23.03.2025 18:55:24
#     2025-03-23 14:44:53   timer_06_c03    23.03.2025 22:00:00
#     2025-03-23 14:44:53   timer_07_c04    24.03.2025 05:30:00
#     2025-03-23 14:44:53   timer_08_c04    24.03.2025 05:30:00
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     cond:
#       Bewegungsmelder:
#         0:
#           &STATE     ^Bewegungsmelder$
#         1:
#           &STATE     ^Bewegungsmelder$
#       Bewegungsmelder1:
#         2:
#           &STATE     ^Bewegungsmelder1$
#         3:
#           &STATE     ^Bewegungsmelder1$
#   attr:
#     cmdState:
#     wait:
#     waitdel:
#   condition:
#     0           ::DOIF_time($hash,0,1,$wday,$hms)  and ::EventDoIf('Bewegungsmelder',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_DVES_D61F5E','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     1           ::DOIF_time($hash,2,3,$wday,$hms)  and ::EventDoIf('Bewegungsmelder',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off"  and ::ReadingValDoIf($hash,'MQTT2_DVES_D61F5E','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     2          ::DOIF_time($hash,4,5,$wday,$hms)  and ::EventDoIf('Bewegungsmelder1',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off" and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#     3           ::DOIF_time($hash,6,7,$wday,$hms)  and ::EventDoIf('Bewegungsmelder1',$hash,'^on-old-for-timer.60$',1)  and ::ReadingValDoIf($hash,'MQTT2_DVES_F8DDE2','state') eq "off"  and ::ReadingValDoIf($hash,'MQTT2_zigbee_Aussenleichterkette','state') eq "off"
#   days:
#   do:
#     0:
#       0           set MQTT2_DVES_D61F5E on-for-timer 300, set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 300, set MQTT2_zigbee_Aussenleichterkette white, set MQTT2_zigbee_Aussenleichterkette on-for-timer 300
#     1:
#       0           set MQTT2_DVES_D61F5E on-for-timer 60, set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 60
#     2:
#       0           set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 300, set MQTT2_zigbee_Aussenleichterkette white, set MQTT2_zigbee_Aussenleichterkette on-for-timer 300
#     3:
#       0           set MQTT2_DVES_B642C2_CH2 rgb EB2F09, set MQTT2_DVES_B642C2_CH2 on-for-timer 60
#     4:
#   helper:
#     NOTIFYDEV  global,Bewegungsmelder1,Bewegungsmelder
#     event      on-old-for-timer 60
#     globalinit 1
#     last_timer 8
#     sleeptimer -1
#     timerdev   Bewegungsmelder
#     timerevent on-old-for-timer 60
#     triggerDev Bewegungsmelder
#     DOIF_eventa:
#       cmd_nr: 2
#       cmd: 2
#       cmd_event: Bewegungsmelder
#       cmd_2
#     DOIF_eventas:
#       cmd_nr: 2
#       cmd: 2
#       cmd_event: Bewegungsmelder
#       state: cmd_2
#     timerevents:
#       on-old-for-timer 60
#     timereventsState:
#       state: on-old-for-timer 60
#     triggerEvents:
#       on-old-for-timer 60
#     triggerEventsState:
#       state: on-old-for-timer 60
#   internals:
#   interval:
#     0          -1
#     1          0
#     2          -1
#     3          2
#     4          -1
#     5          4
#     6          -1
#     7          6
#   intervalfunc:
#   localtime:
#     0          1742752524
#     1          1742763600
#     2          1742790600
#     3          1742790529
#     4          1742752524
#     5          1742763600
#     6          1742790600
#     7          1742790600
#   readings:
#   realtime:
#     0          18:55:24
#     1          22:00:00
#     2          05:30:00
#     3          05:28:49
#     4          18:55:24
#     5          22:00:00
#     6          05:30:00
#     7          05:30:00
#   time:
#     0          {sunset_abs(0,"15:00","22:00")}
#     1          22:00:00
#     2          05:30:00
#     3          {sunrise_abs()}
#     4          {sunset_abs(0,"15:00","22:00")}
#     5          22:00:00
#     6          05:30:00
#     7          {sunrise_abs(0,"05:30","10: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:
#     0           0  1
#     1           2  3
#     2           4  5
#     3           6  7
#   trigger:
#     all         Bewegungsmelder Bewegungsmelder1
#   triggertime:
#     1742752524:
#       localtime  1742752524
#       hash:
#     1742763600:
#       localtime  1742763600
#       hash:
#     1742790529:
#       localtime  1742790529
#       hash:
#     1742790600:
#       localtime  1742790600
#       hash:
#   uiState:
#   uiTable:
#
setstate BewegungsmelderNeu cmd_2
setstate BewegungsmelderNeu 2025-03-23 14:47:12 Device Bewegungsmelder
setstate BewegungsmelderNeu 2025-03-23 14:47:12 cmd 2
setstate BewegungsmelderNeu 2025-03-23 14:47:12 cmd_event Bewegungsmelder
setstate BewegungsmelderNeu 2025-03-23 14:47:12 cmd_nr 2
setstate BewegungsmelderNeu 2025-03-23 14:47:12 e_Bewegungsmelder_events on-old-for-timer 60
setstate BewegungsmelderNeu 2025-03-23 14:44:53 mode enabled
setstate BewegungsmelderNeu 2025-03-23 14:47:12 state cmd_2
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_01_c01 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_02_c01 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_03_c02 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_04_c02 24.03.2025 05:28:49
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_05_c03 23.03.2025 18:55:24
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_06_c03 23.03.2025 22:00:00
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_07_c04 24.03.2025 05:30:00
setstate BewegungsmelderNeu 2025-03-23 14:44:53 timer_08_c04 24.03.2025 05:30:00

Titel: Aw: sunrise DOIF Fehler
Beitrag von: Otto123 am 23 März 2025, 15:02:14
Zum nachstellen, so löst cmd_1 nicht aus, mit dem Timer [5:30-5:28] löst es aus:
defmod d_test DOIF ([5:30-5:33] and [Lampe1:"^on$"])(set Lampe1Strom on)
attr d_test room Test

defmod Lampe1 dummy
attr Lampe1 room Test
attr Lampe1 setList on off

defmod Lampe1Strom dummy
attr Lampe1Strom room Test
attr Lampe1Strom setList on off
wahrscheinlich löst es dann nur 5:29 nicht aus :)
Lösung: verwende sunrise_el() mit den Parametern die verhindern, dass die Endezeit vor der Anfangszeit liegt!
Beispiel: {sunrise("REAL",0,"05:30","06:20")}
Titel: Aw: sunrise DOIF Fehler
Beitrag von: matze1999 am 23 März 2025, 15:13:14
Hallo,

ich hab ja jetzt die Parameter gesetzt (s.o.), damit scheint es erst mal zu funktionierenm.

Danke.

matze1999