Hallo Damian,
nächstes Problem mit der aktuellen Version von heute: Ich habe einen Dummy wie folgt definiert:
Internals:
NAME Tueroeffner_Dummy
NR 728
STATE Auf
TYPE dummy
Helper:
Dblog:
State:
Eventlog:
TIME 1457093875.43308
VALUE Auf
Readings:
2016-03-04 13:17:55 state Auf
Attributes:
alias Türöffner
devStateIcon .*:control_x:Auf
fm_type smarttogglebutton
group Relais
icon fts_door_right_open
room Flur
webCmd Auf
Und dazu passend das folgende DOIF:
Internals:
DEF ([GarageToggle_Dummy]) (set GEN_4SW_GarageToggle prep)(set GEN_4SW_GarageToggle on)(set GarageToggle_Dummy off)
DOELSEIF ([GarageHoch_Dummy]) (set GEN_4SW_GarageHoch prep)(set GEN_4SW_GarageHoch on)(set GarageHoch_Dummy off)
DOELSEIF ([GarageRunter_Dummy]) (set GEN_4SW_GarageRunter prep)(set GEN_4SW_GarageRunter on)(set GarageRunter_Dummy off)
DOELSEIF ([Tueroffner_Dummy]) (set GEN_4SW_Tueroeffner prep)(set GEN_4SW_Tueroeffner on)(set Tueroeffner_Dummy off)
NAME DOIF_GEN_4SW
NR 732
NTFY_ORDER 50-DOIF_GEN_4SW
STATE cmd_3
TYPE DOIF
Readings:
2015-11-24 16:58:11 Device GarageRunter_Dummy
2015-11-24 16:58:13 cmd_event GarageRunter_Dummy
2015-11-24 16:58:13 cmd_nr 3
2015-11-24 16:58:13 cmd_seqnr 3
2015-11-24 16:57:55 e_GarageHoch_Dummy_STATE Hoch
2015-11-24 16:58:11 e_GarageRunter_Dummy_STATE Runter
2015-11-24 16:58:03 e_GarageToggle_Dummy_STATE Schalten
2015-11-24 16:58:13 state cmd_3
Condition:
0 InternalDoIf($hash,'GarageToggle_Dummy','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
1 InternalDoIf($hash,'GarageHoch_Dummy','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
2 InternalDoIf($hash,'GarageRunter_Dummy','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
3 InternalDoIf($hash,'Tueroffner_Dummy','STATE','','',AttrVal($hash->{NAME},'notexist',undef))
Devices:
0 GarageToggle_Dummy
1 GarageHoch_Dummy
2 GarageRunter_Dummy
3 Tueroffner_Dummy
all GarageToggle_Dummy GarageHoch_Dummy GarageRunter_Dummy Tueroffner_Dummy
Do:
0:
0 set GEN_4SW_GarageToggle prep
1 set GEN_4SW_GarageToggle on
2 set GarageToggle_Dummy off
1:
0 set GEN_4SW_GarageHoch prep
1 set GEN_4SW_GarageHoch on
2 set GarageHoch_Dummy off
2:
0 set GEN_4SW_GarageRunter prep
1 set GEN_4SW_GarageRunter on
2 set GarageRunter_Dummy off
3:
0 set GEN_4SW_Tueroeffner prep
1 set GEN_4SW_Tueroeffner on
2 set Tueroeffner_Dummy off
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
0 GarageToggle_Dummy:STATE
1 GarageHoch_Dummy:STATE
2 GarageRunter_Dummy:STATE
3 Tueroffner_Dummy:STATE
all GarageToggle_Dummy:STATE GarageHoch_Dummy:STATE GarageRunter_Dummy:STATE Tueroffner_Dummy:STATE
Itimer:
Regexp:
All:
State:
Attributes:
do always
Führe ich nun ein "set Tueroeffner_Dummy Auf" aus (zB über das WebIF), sehe ich im Event-Monitor den Eintrag
2016-03-04 13:24:52 dummy Tueroeffner_Dummy Auf
Nach meinem Verständnis wird also korrekt wegen nicht gesetzten Attributen event-change-reading oder event-update-reading ein Event jedes mal generiert, wenn ich den Dummy mit Auf setze, auch wenn er den Wert schon hat.
Normalerweise müsste doch nun das DOIF darauf reagieren? Es tut aber nicht (mehr). Hat definitiv schon mal geklappt ...
Ich kann keinen Fehler feststellen. Bei mir funktioniert ein nachgestellter Fall wie es soll.
Gruß
Damian
Edit: Dein Dummy heißt auch Tueroeffner_Dummy und nicht Tueroffner_Dummy
Verdammt. Danke Damian. So ein blöder Typo. Manchmal ist man einfach betriebsblind.