Hallo zusammen,
warum triggert es in der "or" Verknüpfung auf alles und nicht nur auf das Reading "brightness_down_hold".
Es kann z.B. auch [IkeaSchalterHWR:action] eq "xx" drin stehen. Sobald sich das Reading action ändert wird der cmd ausgeführt.
Ist hier was falsch in der Reihenfolge mit "and" und "or". Die Klammern sind ja auch vorhanden.
Diese Attr. sind gesetzt:
checkReadingEvent 1
disable 0
do always
room 12_Wohnzimmer
(
([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "brightness_down_hold") and
[?$SELF:OnOff] eq "off" and
[?$SELF:trigger1] eq "true"
)
(setreading $SELF trigger1 wait, setreading $SELF OnOff on)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe on)
DOELSEIF
(
([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "brightness_down_hold") and
[?$SELF:OnOff] eq "on" and
[?$SELF:trigger1] eq "true"
)
(setreading $SELF trigger1 wait, setreading $SELF OnOff off)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe off)
DOELSE
Glaube du musst das dann so machen: https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events
Wie immer, zur Analyse, vollständiges "list" vom DOIF posten, am besten nachdem er deiner Meinung nach "falsch" getriggert hat.
Gerne und danke für die Hilfe.
Der HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT funktioniert weiterhin wie vorher und reagiert auf das Reading
Beim IkeaSchalterHWR wird auf jede Änderung reagiert.
Beide "list" habe hier eingefügt, wo ich vorher jeweils einmal mit dem Schalter eingeschaltet habe.
##Mit IkeaSchalterHWR geschaltet
Internals:
DEF (([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "xx") and [?$SELF:OnOff] eq "off" and [?$SELF:trigger1] eq "true")
(setreading $SELF trigger1 wait, setreading $SELF OnOff on)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe on)
DOELSEIF
(
([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "xx") and
[?$SELF:OnOff] eq "on" and
[?$SELF:trigger1] eq "true"
)
(setreading $SELF trigger1 wait, setreading $SELF OnOff off)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe off)
DOELSE
FUUID 5d975a32-f33f-96bc-d362-fef5c4f964ba5220
FVERSION 98_DOIF.pm:0.202680/2019-09-28
MODEL FHEM
NAME doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
NOTIFYDEV HM_Fernbedienung_Wohnzimmer,IkeaSchalterHWR,global
NR 56
NTFY_ORDER 50-doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
STATE cmd_1
TYPE DOIF
VERSION 20268 2019-09-28 21:00:39
READINGS:
2019-11-09 09:57:19 Device IkeaSchalterHWR
2019-11-09 09:57:19 cmd 1.3
2019-11-09 09:57:19 cmd_event IkeaSchalterHWR
2019-11-09 09:57:19 cmd_nr 1
2019-11-09 09:57:19 cmd_seqnr 3
2019-11-09 09:57:19 e_IkeaSchalterHWR_action brightness_down_click
2019-11-09 09:56:43 mode enabled
2019-11-09 09:57:19 state cmd_1
2019-11-09 09:57:22 trigger1 true
2019-11-09 09:57:19 OnOff on
Regex:
accu:
cond:
HM_Fernbedienung_Wohnzimmer:
0:
5.PRESS_SHORT ^HM_Fernbedienung_Wohnzimmer$:^5.PRESS_SHORT:
1:
5.PRESS_SHORT ^HM_Fernbedienung_Wohnzimmer$:^5.PRESS_SHORT:
IkeaSchalterHWR:
0:
action ^IkeaSchalterHWR$:^action:
1:
action ^IkeaSchalterHWR$:^action:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::ReadingValDoIf($hash,'HM_Fernbedienung_Wohnzimmer','5.PRESS_SHORT') eq "pressed" or ::ReadingValDoIf($hash,'IkeaSchalterHWR','action') eq "xx") and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','OnOff') eq "off" and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','trigger1') eq "true"
1 (::ReadingValDoIf($hash,'HM_Fernbedienung_Wohnzimmer','5.PRESS_SHORT') eq "pressed" or ::ReadingValDoIf($hash,'IkeaSchalterHWR','action') eq "xx") and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','OnOff') eq "on" and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','trigger1') eq "true"
do:
0:
0 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 wait, setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe OnOff on
1 (defmod at_autocreate_doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe at +00:00:03 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 true)
2 set HUE_Wohnzimmer_Stehlampe on
1:
0 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 wait, setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe OnOff off
1 (defmod at_autocreate_doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe at +00:00:03 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 true)
2 set HUE_Wohnzimmer_Stehlampe off
2:
0
helper:
DEVFILTER ^global$|^IkeaSchalterHWR$|^HM_Fernbedienung_Wohnzimmer$
NOTIFYDEV global|IkeaSchalterHWR|HM_Fernbedienung_Wohnzimmer
event action: brightness_down_click
globalinit 1
last_timer 0
sleeptimer -1
timerdev IkeaSchalterHWR
timerevent action: brightness_down_click
triggerDev IkeaSchalterHWR
DOIF_eventa:
cmd_nr: 1
cmd_seqnr: 3
cmd_event: IkeaSchalterHWR
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd_seqnr: 3
cmd_event: IkeaSchalterHWR
state: cmd_1
bm:
DOIF_Notify:
cnt 6
dmx -1000
dtot 0
dtotcnt 0
mTS 09.11. 09:57:19
max 0.0659708976745605
tot 0.108037710189819
mAr:
HASH(0x55ae08468f28)
HASH(0x55ae0a2dfee0)
DOIF_Set:
cnt 27
dmx -1000
dtot 0
dtotcnt 0
mTS 09.11. 09:57:19
max 0.000105857849121094
tot 0.00119495391845703
mAr:
HASH(0x55ae08468f28)
doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
?
timerevents:
action: brightness_down_click
timereventsState:
action: brightness_down_click
triggerEvents:
action: brightness_down_click
triggerEventsState:
action: brightness_down_click
internals:
readings:
all HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT IkeaSchalterHWR:action
trigger:
uiState:
uiTable:
Attributes:
checkReadingEvent 1
disable 0
do always
room 12_Wohnzimmer
##Mit HM_Fernbedienung_Wohnzimmer_5.PRESS_SHORT geschaltet
Internals:
DEF (([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "xx") and [?$SELF:OnOff] eq "off" and [?$SELF:trigger1] eq "true")
(setreading $SELF trigger1 wait, setreading $SELF OnOff on)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe on)
DOELSEIF
(
([HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" or [IkeaSchalterHWR:action] eq "xx") and
[?$SELF:OnOff] eq "on" and
[?$SELF:trigger1] eq "true"
)
(setreading $SELF trigger1 wait, setreading $SELF OnOff off)
((defmod at_autocreate_$SELF at +00:00:03 setreading $SELF trigger1 true))
(set HUE_Wohnzimmer_Stehlampe off)
DOELSE
FUUID 5d975a32-f33f-96bc-d362-fef5c4f964ba5220
FVERSION 98_DOIF.pm:0.202680/2019-09-28
MODEL FHEM
NAME doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
NOTIFYDEV HM_Fernbedienung_Wohnzimmer,IkeaSchalterHWR,global
NR 56
NTFY_ORDER 50-doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
STATE cmd_1
TYPE DOIF
VERSION 20268 2019-09-28 21:00:39
READINGS:
2019-11-09 10:03:09 Device HM_Fernbedienung_Wohnzimmer
2019-11-09 10:03:09 cmd 1.3
2019-11-09 10:03:09 cmd_event HM_Fernbedienung_Wohnzimmer
2019-11-09 10:03:09 cmd_nr 1
2019-11-09 10:03:09 cmd_seqnr 3
2019-11-09 10:03:09 e_HM_Fernbedienung_Wohnzimmer_5.PRESS_SHORT pressed
2019-11-09 09:57:19 e_IkeaSchalterHWR_action brightness_down_click
2019-11-09 09:56:43 mode enabled
2019-11-09 10:03:09 state cmd_1
2019-11-09 10:03:12 trigger1 true
2019-11-09 10:03:09 OnOff on
Regex:
accu:
cond:
HM_Fernbedienung_Wohnzimmer:
0:
5.PRESS_SHORT ^HM_Fernbedienung_Wohnzimmer$:^5.PRESS_SHORT:
1:
5.PRESS_SHORT ^HM_Fernbedienung_Wohnzimmer$:^5.PRESS_SHORT:
IkeaSchalterHWR:
0:
action ^IkeaSchalterHWR$:^action:
1:
action ^IkeaSchalterHWR$:^action:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::ReadingValDoIf($hash,'HM_Fernbedienung_Wohnzimmer','5.PRESS_SHORT') eq "pressed" or ::ReadingValDoIf($hash,'IkeaSchalterHWR','action') eq "xx") and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','OnOff') eq "off" and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','trigger1') eq "true"
1 (::ReadingValDoIf($hash,'HM_Fernbedienung_Wohnzimmer','5.PRESS_SHORT') eq "pressed" or ::ReadingValDoIf($hash,'IkeaSchalterHWR','action') eq "xx") and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','OnOff') eq "on" and ::ReadingValDoIf($hash,'doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe','trigger1') eq "true"
do:
0:
0 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 wait, setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe OnOff on
1 (defmod at_autocreate_doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe at +00:00:03 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 true)
2 set HUE_Wohnzimmer_Stehlampe on
1:
0 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 wait, setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe OnOff off
1 (defmod at_autocreate_doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe at +00:00:03 setreading doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe trigger1 true)
2 set HUE_Wohnzimmer_Stehlampe off
2:
0
helper:
DEVFILTER ^global$|^IkeaSchalterHWR$|^HM_Fernbedienung_Wohnzimmer$
NOTIFYDEV global|IkeaSchalterHWR|HM_Fernbedienung_Wohnzimmer
event 5.PRESS_SHORT: pressed,hmstate: Initialized
globalinit 1
last_timer 0
sleeptimer -1
timerdev HM_Fernbedienung_Wohnzimmer
timerevent 5.PRESS_SHORT: pressed,hmstate: Initialized
triggerDev HM_Fernbedienung_Wohnzimmer
bm:
DOIF_Get:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 09.11. 10:00:26
max 7.89165496826172e-05
tot 8.89301300048828e-05
mAr:
HASH(0x55ae08468f28)
doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
?
DOIF_Notify:
cnt 28
dmx -1000
dtot 0
dtotcnt 0
mTS 09.11. 10:02:55
max 0.0670139789581299
tot 0.310815811157227
mAr:
HASH(0x55ae08468f28)
HASH(0x55ae07ecc648)
DOIF_Set:
cnt 80
dmx -1000
dtot 0
dtotcnt 0
mTS 09.11. 10:02:55
max 0.00291800498962402
tot 0.00624322891235352
mAr:
HASH(0x55ae08468f28)
doif_HM_Fernbedienung_Wohnzimmer_Bt5_Stehlampe
?
timerevents:
5.PRESS_SHORT: pressed
hmstate: Initialized
timereventsState:
5.PRESS_SHORT: pressed
hmstate: Initialized
triggerEvents:
5.PRESS_SHORT: pressed
hmstate: Initialized
triggerEventsState:
5.PRESS_SHORT: pressed
hmstate: Initialized
internals:
readings:
all HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT IkeaSchalterHWR:action
trigger:
uiState:
uiTable:
Attributes:
checkReadingEvent 1
disable 0
do always
room 12_Wohnzimmer
Also... beim ersten "list" hat "action" getriggert. Wenn 5.PRESS_SHORT wahr war, dann ist der OR auch wahr.
Beim 2. umgekehrt.
mit [HM_Fernbedienung_Wohnzimmer:5.PRESS_SHORT] eq "pressed" fragst du einen Aktor wie einen Schalter ab, er liefert ein Event beim Schalten und behält seinen Zustand, der abgefragt wird.
Du willst aber nur das Ereignis abfragen, ähnlich einem Taster, der ist immer aus und liefert nur beim Drücken ein Event.
Daher Ereignisabfrage angeben:
[HM_Fernbedienung_Wohnzimmer:"5.PRESS_SHORT: pressed"]
statt Statusabfrage.
Ja danke Damian,
das wollte ich auf den letzten post auch schreiben. Der Zustand "pressed" wird nur neu getriggert.
Die Ereignisabfrage wie du sie beschreibst, kannte ich noch gar nicht. Werde das gleich mal testen.
Danke, Stefan
Zitat von: stera am 09 November 2019, 17:53:44
Die Ereignisabfrage wie du sie beschreibst, kannte ich noch gar nicht. Werde das gleich mal testen.
Das hatte aber Eistee hieroben schon erwähnt ;)
Das stimmt schon und vielen Dank an Eistee.
Ich war nur bei der Variante wie sie auch beschrieben ist z.B. [HM_Fernbedienung_Wohnzimmer:"pressed"] stehen geblieben. Das hätte dann bei jeder Taste getriggert. ???