Hallo zusammen,
ich verwende folgendes DOIF, das gerade eben nicht ausgeführt wurde.
([Fernbedienung03Heiko_Btn04:"Short"] or [Fernbedienung03Heiko_Btn04:"Long.1_.*"])
(set PollinKamera01WohnzimmerDauerbetriebChkBox off,set PollinKamera02KuecheDauerbetriebChkBox off,set PollinKamera03StudioDauerbetriebChkBox off,set PollinKamera07EsseckeDauerbetriebChkBox off,set PollinKamera09SchlafDauerbetriebChkBox off)
(set NAME=PollinKamera09Schlaf:FILTER=state=on off)
(set NAME=PollinKamera01Wohnzimmer:FILTER=state=on off)
(set NAME=PollinKamera07Essecke:FILTER=state=on off)
(set NAME=PollinKamera02Kueche:FILTER=state=on off)
(set NAME=PollinKamera03Studio:FILTER=state=on off)
DOELSE ()
Das Event müsste eigentlich passen:
Device
Fernbedienung03Heiko_Btn04
2017-01-10 17:24:19
e_Fernbedienung03Heiko_Btn04_events
Short (to vccu),trigger: Short_13,trigger_cnt: 13
2017-01-10 17:24:19
list:
Internals:
DEF ([Fernbedienung03Heiko_Btn04:"Short"] or [Fernbedienung03Heiko_Btn04:"Long.1_.*"])
(set PollinKamera01WohnzimmerDauerbetriebChkBox off,set PollinKamera02KuecheDauerbetriebChkBox off,set PollinKamera03StudioDauerbetriebChkBox off,set PollinKamera07EsseckeDauerbetriebChkBox off,set PollinKamera09SchlafDauerbetriebChkBox off)
(set NAME=PollinKamera09Schlaf:FILTER=state=on off)
(set NAME=PollinKamera01Wohnzimmer:FILTER=state=on off)
(set NAME=PollinKamera07Essecke:FILTER=state=on off)
(set NAME=PollinKamera02Kueche:FILTER=state=on off)
(set NAME=PollinKamera03Studio:FILTER=state=on off)
DOELSE ()
NAME di_Fernbedienung03Heiko_Btn04_Einfachklick
NR 3124
NTFY_ORDER 50-di_Fernbedienung03Heiko_Btn04_Einfachklick
STATE cmd_1
TYPE DOIF
Readings:
2017-01-10 17:24:19 Device Fernbedienung03Heiko_Btn04
2017-01-04 20:43:52 cmd 1.6
2017-01-04 20:43:52 cmd_event Fernbedienung03Heiko_Btn04
2017-01-04 20:43:52 cmd_nr 1
2017-01-04 20:43:52 cmd_seqnr 6
2017-01-10 17:24:19 e_Fernbedienung03Heiko_Btn04_events Short (to vccu),trigger: Short_13,trigger_cnt: 13
2017-01-04 20:43:52 state cmd_1
2017-01-10 17:24:19 wait_timer no timer
Condition:
0 EventDoIf('Fernbedienung03Heiko_Btn04',$hash,'Short',1) or EventDoIf('Fernbedienung03Heiko_Btn04',$hash,'Long.1_.*',1)
Devices:
0 Fernbedienung03Heiko_Btn04
all Fernbedienung03Heiko_Btn04
Do:
0:
0 set PollinKamera01WohnzimmerDauerbetriebChkBox off,set PollinKamera02KuecheDauerbetriebChkBox off,set PollinKamera03StudioDauerbetriebChkBox off,set PollinKamera07EsseckeDauerbetriebChkBox off,set PollinKamera09SchlafDauerbetriebChkBox off
1 set NAME=PollinKamera09Schlaf:FILTER=state=on off
2 set NAME=PollinKamera01Wohnzimmer:FILTER=state=on off
3 set NAME=PollinKamera07Essecke:FILTER=state=on off
4 set NAME=PollinKamera02Kueche:FILTER=state=on off
5 set NAME=PollinKamera03Studio:FILTER=state=on off
1:
0
Helper:
event Short (to vccu)
globalinit 1
last_timer 0
sleepdevice Fernbedienung03Heiko_Btn04
sleepsubtimer 0
sleeptimer -1
timerdev Fernbedienung03Heiko_Btn04
timerevent Short (to vccu)
triggerDev Fernbedienung03Heiko_Btn04
timerevents:
Short (to vccu)
trigger: Short_13
trigger_cnt: 13
timereventsState:
state: Short (to vccu)
trigger: Short_13
trigger_cnt: 13
triggerEvents:
Short (to vccu)
trigger: Short_13
trigger_cnt: 13
triggerEventsState:
state: Short (to vccu)
trigger: Short_13
trigger_cnt: 13
Internals:
Itimer:
Readings:
Regexp:
0:
All:
State:
Trigger:
all Fernbedienung03Heiko_Btn04
Attributes:
disable 0
do always
group 13_Fernbedienung03_Heiko
room Fernbedienung
sortby 23
wait 0,2,2,2,2,2
waitdel 3
Liegt es an dem waitdel-attribut?
Die Homematic-Devices zählen bei etwas zu langem Tastendruck ja hoch, eventuell kam das Event 2x an?
Viele Grüße,
Heiko
Warum hast du waitdel gesetzt?
Ich habe das Problem, dass DOIFs manchmal mehrfach getriggert werden bei Homematic-Fernbedienungen, wenn man "zu lang" auf der Taste bleibt oder diese warum auch immer 2 Befehle hintereinander senden. Insbesondere die "Funk-Handsender für Alarmfunktionen" (https://wiki.fhem.de/wiki/HM-RC-4-2_Funkfernbedienung_4_Tasten (https://wiki.fhem.de/wiki/HM-RC-4-2_Funkfernbedienung_4_Tasten)) lassen sich recht schwer drücken, so dass dies manchmal passiert.
Vermutlich ist waitdel hier falsch, ich habe auch schon "cmdpause 3" probiert, hat aber auch nicht zuverlässig funktioniert.
Für die anderen Tasten verwende ich, was recht zuverlässig eine mehrfache Auslösung verhindert.
([Fernbedienung03Heiko_Btn01:"Short"] or [Fernbedienung03Heiko_Btn01:"Long.1_.*"] or [Fernbedienung03Heiko_Dummy:state] eq "on" and [?Fernbedienung03Heiko_Dummy:Btn01] ne "on")
(setreading Fernbedienung03Heiko_Dummy Btn01 on)
({FernbedienungLogikNEU_mit_DOIF("Fernbedienung03Heiko", "on", $we)})
(setreading Fernbedienung03Heiko_Dummy Btn01 off)
attr wait 0,0,5:0
attr cmdpause 2
attr do always
Viele Grüße,
Heiko
Kannst du auf Fernbedienungsseite event-on-change einstellen? Oder meldet die, wie manche Bewegungsmelder, nur den on-Fall?
Die Homematic-Fernbedienungen zählen bei längerem Tastendruck hoch,
somit wäre das jeweils ein neues event und diese Einschränkung hätte hier vermutlich nicht die gewünschte Wirkung.
Heiko
Zitat von: heikoh81 am 14 Januar 2017, 19:11:51
Die Homematic-Fernbedienungen zählen bei längerem Tastendruck hoch,
somit wäre das jeweils ein neues event und diese Einschränkung hätte hier vermutlich nicht die gewünschte Wirkung.
Heiko
Poste mal Events eines Tastendrucks.