Hauptmenü

Wait Befehl wird ignoriert!

Begonnen von Toto1973, 03 Oktober 2024, 12:01:04

Vorheriges Thema - Nächstes Thema

Toto1973

Hallo Zusammen!
Inzwischen benutze ich FHEM seit vielen jahren. Daher würde ich mich schon als "alter Hase" bezeichenen.
Aber leider bekomme ich dennoch was nicht gelöst!
Ich habe auf einem 2. Raspberry FHEM neu aufgesetzt.
Auf diesem läuft ein DOIF zur Heizungssteuerung.
defmod anwesenheit_doif_temp DOIF ([Jahreszeit] eq "Sommer") (set fritz refreshstate, set fritz template sommer, set myTelegramBot msg Papa: Es ist Sommer! Heizung ist aus.) \
DOELSEIF ([anwesend25] eq "absent" and [Jahreszeit] eq "Winter") (set fritz refreshstate, set fritz template abwesend, set myTelegramBot msg Papa: Es ist niemand zu Hause! Heizung wird heruntergefahren.) \
DOELSEIF ([anwesend25] eq "present" and [Jahreszeit] eq "Winter") (set fritz refreshstate, set FBDECT_fritz_grp6C9542_3F19A3D72 boost 900, set fritz template anwesendwo, set fritz template anwesendneben, set fritz template anwesendzimmer, set fritz template anwesendbad, set myTelegramBot msg Papa: Es ist jemand da. Heizung heizt wieder!)
attr anwesenheit_doif_temp alias anwesenheit_doif_temp
attr anwesenheit_doif_temp cmdState Sommer|(Nur im Winter) Alle weg|(Nur im Winter) Jemand da
attr anwesenheit_doif_temp timerWithWait 1
attr anwesenheit_doif_temp wait 0,60,10:0,60,10:0,60,980,30,30,30,30
#   DEF        ([Jahreszeit] eq "Sommer") (set fritz refreshstate, set fritz template sommer, set myTelegramBot msg Papa: Es ist Sommer! Heizung ist aus.)
#DOELSEIF ([anwesend25] eq "absent" and [Jahreszeit] eq "Winter") (set fritz refreshstate, set fritz template abwesend, set myTelegramBot msg Papa: Es ist niemand zu Hause! Heizung wird heruntergefahren.)
#DOELSEIF ([anwesend25] eq "present" and [Jahreszeit] eq "Winter") (set fritz refreshstate, set FBDECT_fritz_grp6C9542_3F19A3D72 boost 900, set fritz template anwesendwo, set fritz template anwesendneben, set fritz template anwesendzimmer, set fritz template anwesendbad, set myTelegramBot msg Papa: Es ist jemand da. Heizung heizt wieder!)
#   FUUID      65361aa7-f33f-4df8-3b0e-04d7954cda50fc74
#   MODEL      FHEM
#   NAME       anwesenheit_doif_temp
#   NOTIFYDEV  global,anwesend25,Jahreszeit
#   NR         74
#   NTFY_ORDER 50-anwesenheit_doif_temp
#   STATE      (Nur im Winter) Jemand da
#   TYPE       DOIF
#   VERSION    28546 2024-02-23 20:11:05
#   eventCount 7
#   READINGS:
#     2024-10-03 11:54:26   Device          anwesend25
#     2024-10-03 11:54:26   cmd             3
#     2024-10-03 11:54:26   cmd_event       anwesend25
#     2024-10-03 11:54:26   cmd_nr          3
#     2024-10-03 11:54:26   e_anwesend25_STATE present
#     2024-10-03 11:52:17   mode            enabled
#     2024-10-03 11:54:26   state           (Nur im Winter) Jemand da
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     cond:
#       Jahreszeit:
#         0:
#           &STATE     ^Jahreszeit$
#         1:
#           &STATE     ^Jahreszeit$
#         2:
#           &STATE     ^Jahreszeit$
#       anwesend25:
#         0:
#         1:
#           &STATE     ^anwesend25$
#         2:
#           &STATE     ^anwesend25$
#   attr:
#     cmdState:
#       0:
#         Sommer
#       1:
#         (Nur im Winter) Alle weg
#       2:
#         (Nur im Winter) Jemand da
#     wait:
#       0:
#         0
#         60
#         10
#       1:
#         0
#         60
#         10
#       2:
#         0
#         60
#         980
#         30
#         30
#         30
#         30
#     waitdel:
#   condition:
#     0          ::InternalDoIf($hash,'Jahreszeit','STATE') eq "Sommer"
#     1          ::InternalDoIf($hash,'anwesend25','STATE') eq "absent" and ::InternalDoIf($hash,'Jahreszeit','STATE') eq "Winter"
#     2          ::InternalDoIf($hash,'anwesend25','STATE') eq "present" and ::InternalDoIf($hash,'Jahreszeit','STATE') eq "Winter"
#   do:
#     0:
#       0          set fritz refreshstate, set fritz template sommer, set myTelegramBot msg Papa: Es ist Sommer! Heizung ist aus.
#     1:
#       0          set fritz refreshstate, set fritz template abwesend, set myTelegramBot msg Papa: Es ist niemand zu Hause! Heizung wird heruntergefahren.
#     2:
#       0          set fritz refreshstate, set FBDECT_fritz_grp6C9542_3F19A3D72 boost 900, set fritz template anwesendwo, set fritz template anwesendneben, set fritz template anwesendzimmer, set fritz template anwesendbad, set myTelegramBot msg Papa: Es ist jemand da. Heizung heizt wieder!
#     3:
#   helper:
#     NOTIFYDEV  global,anwesend25,Jahreszeit
#     event      present
#     globalinit 1
#     last_timer 0
#     sleeptimer -1
#     timerdev   anwesend25
#     timerevent present
#     triggerDev anwesend25
#     DOIF_eventa:
#       cmd_nr: 3
#       cmd: 3
#       cmd_event: anwesend25
#       (Nur im Winter) Jemand da
#     DOIF_eventas:
#       cmd_nr: 3
#       cmd: 3
#       cmd_event: anwesend25
#       state: (Nur im Winter) Jemand da
#     timerevents:
#       present
#     timereventsState:
#       state: present
#     triggerEvents:
#       present
#     triggerEventsState:
#       state: present
#   internals:
#     all         Jahreszeit:STATE anwesend25:STATE
#   readings:
#   trigger:
#   uiState:
#   uiTable:
#
setstate anwesenheit_doif_temp (Nur im Winter) Jemand da
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 Device anwesend25
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 cmd 3
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 cmd_event anwesend25
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 cmd_nr 3
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 e_anwesend25_STATE present
setstate anwesenheit_doif_temp 2024-10-03 11:52:17 mode enabled
setstate anwesenheit_doif_temp 2024-10-03 11:54:26 state (Nur im Winter) Jemand da

Ich komme einfach nicht drauf, warum die Wait-Angabe komplett ignoriert werden!
Hat jemand eine Idee?
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Nobbynews

#1
Work as designed....
Deine def enthält jeweils nur eine Sequenz pro Befehl und daher wird vom attr wait jeweils nur die '0' ausgeführt.
Ändere Deine def mal ab:
defmod anwesenheit_doif_temp DOIF ([Jahreszeit] eq "Sommer")
 (set fritz refreshstate)
 (set fritz template sommer)
 (set myTelegramBot msg Papa: Es ist Sommer! Heizung ist aus.)
DOELSEIF ([anwesend25] eq "absent" and [Jahreszeit] eq "Winter")
 (set fritz refreshstate)
 (set fritz template abwesend)
 (set myTelegramBot msg Papa: Es ist niemand zu Hause! Heizung wird heruntergefahren.)
DOELSEIF ([anwesend25] eq "present" and [Jahreszeit] eq "Winter")
 (set fritz refreshstate)
 (set FBDECT_fritz_grp6C9542_3F19A3D72 boost 900)
 (set fritz template anwesendwo)
 (set fritz template anwesendneben)
 (set fritz template anwesendzimmer)
 (set fritz template anwesendbad)
 (set myTelegramBot msg Papa: Es ist jemand da. Heizung heizt wieder!)

Siehe auf cref:
https://fhem.de/commandref_DE.html#DOIF_wait

Toto1973

Danke für den Denkanstoß!
Ich werde halt doch alt!
Ja, jetzt hat es wieder geklingelt. Klar, bei Wait muss jeder Befehl "Abgeschlossen sein" in runden Klammern.
Dankeschön :-)
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000