Hallo zusammen,
ich habe erfolgreich einen Doif laufen, der zwei sets hat.
Einer sofort, einer nach 60 Minuten und beide wiederholen sich bis sich der Status ändert.
Nun wollte ich noch einen doeleseif definieren, allerdings ohne wait und nur 1x ausführen.
Leider wird der repeatcmd auch für cmd_2 angewendet.
Wie kann ich das verhindern oder umgehen?
Internals:
DEF ([MQTT2_zigbee_Rasihaus:"open"]) (set AlleechosFHEM speak "Achtung!! Rasi ist unterwegs!")({DebianMail('xxx@web.de','Achtung!! Rasi ist unterwegs!!','Achtung!! Rasi ist unterwegs!')}) DOELSEIF ([MQTT2_zigbee_Rasihaus:"close"]) (set AlleechosFHEM speak "Achtung!! Rasi ist wieder zuhause!")
FUUID 62751abd-f33f-5a77-d8ac-aede930c71b9e79c
MODEL FHEM
NAME di_Rasi_unterwegs
NOTIFYDEV MQTT2_zigbee_Rasihaus,global
NR 215
NTFY_ORDER 50-di_Rasi_unterwegs
STATE cmd_2
TYPE DOIF
VERSION 26020 2022-05-03 16:28:02
READINGS:
2022-05-23 13:38:08 Device MQTT2_zigbee_Rasihaus
2022-05-23 14:14:14 cmd 2
2022-05-23 14:14:14 cmd_event set_cmd_2
2022-05-23 14:14:14 cmd_nr 2
2022-05-23 13:38:08 e_MQTT2_zigbee_Rasihaus_events close,linkquality: 45,voltage: 2985,battery: 99,last_seen: 2022-05-23T13:38:07+02:00,temperature: 28
2022-05-23 14:13:59 mode enabled
2022-05-23 14:14:14 state cmd_2
2022-05-23 14:14:14 wait_timer 23.05.2022 15:14:14 cmd_2 set_cmd_2
Regex:
accu:
collect:
cond:
MQTT2_zigbee_Rasihaus:
0:
&STATE ^MQTT2_zigbee_Rasihaus$
1:
&STATE ^MQTT2_zigbee_Rasihaus$
attr:
cmdState:
repeatcmd:
3600
3600
repeatsame:
wait:
0:
1
3600
waitdel:
condition:
0 ::EventDoIf('MQTT2_zigbee_Rasihaus',$hash,'open',1)
1 ::EventDoIf('MQTT2_zigbee_Rasihaus',$hash,'close',1)
do:
0:
0 set AlleechosFHEM speak "Achtung!! Rasi ist unterwegs!"
1 {DebianMail('xxx@web.de','Achtung!! Rasi ist unterwegs!!','Achtung!! Rasi ist unterwegs!')}
1:
0 set AlleechosFHEM speak "Achtung!! Rasi ist wieder zuhause!"
2:
helper:
NOTIFYDEV MQTT2_zigbee_Rasihaus,global
event close
globalinit 1
last_timer 0
sleepdevice set_cmd_2
sleepsubtimer 0
sleeptimer 1
timerdev MQTT2_zigbee_Rasihaus
timerevent close
triggerDev
timerevents:
close
linkquality: 45
voltage: 2985
battery: 99
last_seen: 2022-05-23T13:38:07+02:00
temperature: 28
timereventsState:
state: true
linkquality: 45
voltage: 2985
battery: 99
last_seen: 2022-05-23T13:38:07+02:00
temperature: 28
internals:
readings:
trigger:
all MQTT2_zigbee_Rasihaus
uiState:
uiTable:
Attributes:
repeatcmd 3600:3600
room DOIF_Labor
wait 1,3600
ZitatLeider wird der repeatcmd auch für cmd_2 angewendet.
Klar, Du hast es ja auch extra angegeben.
Syntax: attr <Modulname> repeatcmd <Sekunden für Befehlsfolge des ersten DO-Falls>:<Sekunden für Befehlsfolge des zweiten DO-Falls>:...
Ich könnte schwören bei Ersteinrichtung vor Monaten galt 3600:3600 für die beiden Set Commandos des Doif.
Vielleicht irre ich mich aber auch.
Ich versuche es mal.
*Edit*
Sorry für die Verwirrung, es passt und klappt so wie Du es geschrieben hast.
vereinfacht gesagt: Der : trennt die einzelnen Zweige/Befehlsfolgen/Ifs.
Innerhalb einer Befehlsfolge wird pro Klammerblock/Befehlsblock mit , getrennt.
attr Dher wait 0,120,840:0,100,240:0,45,300:0,6,36,6,145,4:0,5,18,6,180,10:0,10,22,4,780,45