Moin,
ich hänge bei folgendem DOIF fest:
Internals:
DEF (([Schalter1_Garage_T:"^power1:.1$"])
and ([Bewegung_Garage_T_neu:mode]eq"enabled") and [?$SELF] eq "off")
((set Bewegung_Garage_T_neu disable) (set Schalter1_Garage_T on))
((set Bewegung_Garage_T_neu enable) (set Schalter1_Garage_T off)(set $SELF cmd_2))
DOELSEIF
(([Schalter1_Garage_T:"^power1:.1$"]) and ([?$SELF] eq "on"))
((set Bewegung_Garage_T_neu enable) (set Schalter1_Garage_T off))
FUUID 604fa478-f33f-0880-d6e6-4efba70bb5bb6a6b
MODEL FHEM
NAME Licht_Garage_T_dauer
NOTIFYDEV Schalter1_Garage_T,global,Bewegung_Garage_T_neu
NR 358
NTFY_ORDER 50-Licht_Garage_T_dauer
STATE off
TYPE DOIF
VERSION 23925 2021-03-11 14:27:39
READINGS:
2021-03-16 09:27:38 Device Schalter1_Garage_T
2021-03-16 09:27:38 cmd 2
2021-03-16 09:27:38 cmd_event set_cmd_2
2021-03-16 09:27:38 cmd_nr 2
2021-03-16 09:27:38 e_Bewegung_Garage_T_neu_mode enabled
2021-03-16 09:27:38 e_Schalter1_Garage_T_events power1: off
2021-03-16 09:26:59 mode enabled
2021-03-16 09:27:38 state off
2021-03-16 09:27:14 wait_timer no timer
Regex:
accu:
cond:
Bewegung_Garage_T_neu:
0:
mode ^Bewegung_Garage_T_neu$:^mode:
1:
Schalter1_Garage_T:
0:
&STATE ^Schalter1_Garage_T$
1:
&STATE ^Schalter1_Garage_T$
attr:
cmdState:
0:
on
1:
off
wait:
0:
0
10
0
waitdel:
condition:
0 (::EventDoIf('Schalter1_Garage_T',$hash,'^power1:.1$',1)) and (::ReadingValDoIf($hash,'Bewegung_Garage_T_neu','mode')eq"enabled") and ::InternalDoIf($hash,'Licht_Garage_T_dauer','STATE') eq "off"
1 (::EventDoIf('Schalter1_Garage_T',$hash,'^power1:.1$',1)) and (::InternalDoIf($hash,'Licht_Garage_T_dauer','STATE') eq "on")
do:
0:
0 (set Bewegung_Garage_T_neu disable) (set Schalter1_Garage_T on)
1 (set Bewegung_Garage_T_neu enable) (set Schalter1_Garage_T off)(set Licht_Garage_T_dauer cmd_2)
1:
0 (set Bewegung_Garage_T_neu enable) (set Schalter1_Garage_T off)
2:
helper:
DEVFILTER ^global$|^Bewegung_Garage_T_neu$|^Schalter1_Garage_T$
NOTIFYDEV global|Bewegung_Garage_T_neu|Schalter1_Garage_T
event power1: off
globalinit 1
last_timer 0
sleepdevice set_on_cmd_1
sleepsubtimer -1
sleeptimer -1
triggerDev Schalter1_Garage_T
triggerEvents:
power1: off
triggerEventsState:
power1: off
internals:
all Licht_Garage_T_dauer:STATE
readings:
all Bewegung_Garage_T_neu:mode
trigger:
all Schalter1_Garage_T
uiState:
uiTable:
Attributes:
cmdState on|off
do resetwait
room Garage T.
setList on off
wait 0,10,0
webCmd on:off
Soll nach Aktivierung am Ende mit "(set $SELF cmd_2)" auf cmd 2 springen, geht aber nicht. Wo ist mein Denkfehler?
TRS
Den Zustand des Moduls selbst per set zu setzen ist keine gute Idee - das ist dem Modul selbst vorbehalten. Am Ende der Ausführung setzt das Modul seinen Zustand und überschreibt das, was der User selbst gesetzt hat.