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?
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 (https://fhem.de/commandref_DE.html#DOIF_wait)
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 :-)