[HM-Wired] Überarbeitung "Key-Sim"-Befehle

Begonnen von Thorsten Pferdekaemper, 03 Januar 2016, 18:30:38

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
ich habe mir gerade diesen Post hier genauer betrachtet: http://forum.fhem.de/index.php/topic,10607.msg380504.html#msg380504.
Eigentlich dachte ich, dass ich das "schnell mal" lösen könnte, aber rund um die Key-Sim-Befehle gibt es noch ein paar andere Ungereimtheiten, die ich gerne auch gleich aufräumen würde. Vielleicht hat auch noch jemand eine CCU laufen und kann mir sagen, wie es dort läuft.
Jetzt erst einmal eine kleine Erklärung, was bei FHEM grob passiert, wenn man in einem Taster-Kanal press_short oder press_long absetzt. (Also so etwas wie "set HMW_LC_Bl1_DR_KEQ0021546_01 press_short".)

  • Der neue sim_counter wird ermittelt
  • Es werden alle mit dem Tasterkanal gepeerten Aktorkanäle rausgesucht.
  • Für jeden dieser Aktorkanäle wird der key_sim-Befehl geschickt.
Das ist prinzipiell meiner Meinung nach gar nicht so schlecht. Allerdings ergeben sich ein paar Problemchen:

  • state wird auf "press_short nn" bzw. "press_long nn" gesetzt. Mal davon abgesehen, dass der Underscore fehlt (siehe den oben verlinkten Post), sieht das so aus, als ob die Taste wirklich gedrückt wurde. Soll das so sein? Meiner Meinung nach ist das nicht ganz richtig.
  • state wird immer auf die vorhergehende Nummer gesetzt, nicht die, die tatsächlich benutzt wird.
  • Das Device, zu dem die simulierte Taste gehört, setzt den internen Tastendruck-Counter nicht auf den verwendeten Sim-Counter. Im Allgemeinen kann das Device das auch gar nicht, da es sein kann, dass keiner der gepeerten Aktorkanäle zum selben Device gehört. D.h. das Device mit der Taste bekommt vom key_sim-Befehl nicht unbedingt etwas mit. Allerdings scheinen sich die Aktorkanäle intern den Counter zu speichern. Das ist derselbe Counter, egal ob echter Tastendruck oder simulierter Tastendruck. (Auf Aktor-Seite, wohlgemerkt.)
    Dadurch kann es passieren, dass ein Key-Sim-Event an den Aktor gesendet wird, das dieselbe Nummer hat wie ein vorher gesendeter "echter" Tastendruck. (Oder auch umgekehrt.) Events von der selben Quelle mit derselben Nummer werden aber vom Aktor ignoriert. (Ich habe das ausprobiert, es passiert wirklich.)
  • Aus dem oben gesagten ergibt sich auch, dass man in FHEM die Readings sim_counter und press_long/short nicht zusammenfassen sollte. Anders gesagt: Die Readings press_long/short sollten durch einen key_sim-Befehl nicht geändert werden.
  • Zumindest laut meinen Tests reicht es, das key_sim-Event an jedes gepeerte Device nur einmal zu senden (und nicht pro gepeertem Kanal). Von der Funktionalität her ist das egal (da alles mit derselben Nummer ignoriert wird), aber die Performance könnte dadurch schon etwas leiden. (Möglicherweise könnten sich bei key_sim_long allerdings tatsächlich Probleme ergeben.)
Momentan bin ich mir selbst nicht klar, wie man das am Besten lösen sollte. Folgendes ist mir noch einigermaßen klar:

  • Beim Ermitteln des sim_counter müssen auch die momentanen Werte für press_long/short beachtet werden. Der sim_counter darf weder denselben Wert wie der letzte "echte" Counter haben, noch darf der sim_counter sozusagen auf den nächsten "echten" Counter-Wert gesetzt werden. Also in etwa so: sim_counter hochzählen. Wenn dann der sim_counter gleich dem "echten" Counter ist, oder gleich dem "echten" Counter +1, dann sim_counter nochmal um 2 erhöhen. (Dadurch überspringt man praktisch das Problem.)
    Vielleicht weiß ja jemand, wie die CCU das handhabt.
  • Beim Senden der Events dafür sorgen, dass an jedes Device maximal einmal gesendet wird. (Es gibt bei HMW-Devices das Problem, dass Peerings mehrerer Aktorkanäle im selben Device nicht richtig ausgewertet werden. Ich weiß nicht, inwiefern das auch bei key_sim-Befehlen passiert. Möglichweise ändert sich hier etwas, wenn man die Events nur einmal pro Device sendet. Allerdings wäre das dann nur konsequent.)
Was mir nicht so klar ist, das ist die Sache mit den Readings. Eigentlich sollten die key_sim-Befehle (also ein set ... press_long/short) die Readings gar nicht direkt beeinflussen. Es handelt sich ja nicht wirklich um Befehle, die an den Kanal gesendet werden, bei dem sie ausgelöst werden. Eine Möglichkeit wäre also, das Reading sim_counter zu einem Internal zu machen und state gar nicht zu ändern.
Bei einem "set ... press_long/short" würde dann gar kein Event ausgelöst werden. Man könnte jetzt aber der Meinung sein, dass das nicht besonders FHEM-like ist. Wie oben schon gesagt wäre es meiner Meinung nach aber falsch, die Readings press_long/short zu verwenden. Richtiger wäre es dann, neue Readings "key_sim_short" und "key_sim_long" einzuführen. Diese wären dann analog zu press_long/short, nur halt für "set ... press_short/long". Entsprechend würde dann state auf "key_sim_short_nn" etc. gesetzt.

Meinungen?

Gruß,
   Thorsten
FUIP

holzwurm83

Hallo Torsten,

das die Thematik so ein Problem darstellt hätte ich nicht gedacht.

Eine CCU habe ich leider nicht, sonnst hätte ich das gerne mal überprüft.

Ich haben die letzten Tage versucht ein anderes Problem zu rekonstruieren, was evtl. damit zusammen hängen könnte!?
Ich habe ein Licht, welches ich über einen langen Tastendruck toggle und das Problem dabei ist das die Lampen beim Langen langen Tastendruck immer an und wieder aus geht bis ich dann die Taste los lasse. Der long_press zählt nur ein mal hoch.

Leider werde ich aus dem Problem nicht wirklich schlau. Vielleicht ist das Problem auch etwas ganz anderes? Allerdings hatte ich das in der Vergangenheit nicht.
Ich hatte zuerst ein notify und jetzt habe ich das auch mal über DOIF probiert und immer das gleiche.

Vielleicht kannst du damit mehr anfangen?

Hier mal mein DOIF:
define di_drueck_taste_lang_siedeboart DOIF ([HMW_LC_Bl1_DR_KEQ0021546_01:press_long:sec] > 0,5) (set LED_WZ_LW12 toggle)
attr di_drueck_taste_lang_siedeboart do always


Und hier mal der Mittschnitt wenn ich einens langen Tastendrucks:

2016-01-06 14:14:50 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 on
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 off
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 on
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 off
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 on
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 off
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:52 LW12 LED_WZ_LW12 on
2016-01-06 14:14:52 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:52 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:52 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:52 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:52 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:53 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:53 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:53 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:53 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:53 LW12 LED_WZ_LW12 off
2016-01-06 14:14:53 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:53 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:53 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:53 LW12 LED_WZ_LW12 on
2016-01-06 14:14:53 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:53 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:53 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:53 LW12 LED_WZ_LW12 off
2016-01-06 14:14:53 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:53 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:53 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:53 LW12 LED_WZ_LW12 on
2016-01-06 14:14:53 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:53 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:53 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:53 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:53 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 LW12 LED_WZ_LW12 off
2016-01-06 14:14:54 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:54 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:54 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 LW12 LED_WZ_LW12 on
2016-01-06 14:14:54 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:54 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:54 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:54 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:54 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:54 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:54 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:54 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:55 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 LW12 LED_WZ_LW12 off
2016-01-06 14:14:55 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:55 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:55 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 LW12 LED_WZ_LW12 on
2016-01-06 14:14:55 LW12 LED_WZ_LW12 rgb: 000000
2016-01-06 14:14:55 LW12 LED_WZ_LW12 hsv: 0 0 0
2016-01-06 14:14:55 LW12 LED_WZ_LW12 dim: 0
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_nr: 1
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_event: HMW_LC_Bl1_DR_KEQ0021546_01
2016-01-06 14:14:55 DOIF di_drueck_taste_lang_siedeboart cmd_1
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long: 4
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546_01 press_long_4
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:55 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:55 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:55 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:55 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:55 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:55 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:55 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:55 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:56 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:56 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:56 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:56 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:56 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:56 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:56 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:56 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:56 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:56 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:57 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:57 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:57 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:57 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:57 HM485 WG1_J_AK_OST level_100
2016-01-06 14:14:57 HM485 HMW_LC_Bl1_DR_KEQ0021546 ACK
2016-01-06 14:14:57 HM485 WG1_J_AK_OST level: 100
2016-01-06 14:14:57 HM485 WG1_J_AK_OST working: zu
2016-01-06 14:14:57 HM485 WG1_J_AK_OST direction: none
2016-01-06 14:14:57 HM485 WG1_J_AK_OST level_100
2016-01-06 14:15:00 LW12 LED_BAD_LW12 mode: -36
2016-01-06 14:15:00 LW12 LED_BAD_LW12 speed: 255
2016-01-06 14:15:00 LW12 LED_BAD_LW12 off
2016-01-06 14:15:00 LW12 LED_BAD_LW12 rgb: 000000
2016-01-06 14:15:00 LW12 LED_BAD_LW12 hsv: 0 0 0
2016-01-06 14:15:00 LW12 LED_BAD_LW12 dim: 0
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Thorsten Pferdekaemper

Hi,
das hat jetzt damit gar nichts zu tun.
Ein long_press wird vom Device selbst (also von der Hardware) so lange wiederholt (etwa alle 300ms), wie Du die Taste festhältst. Du darfst also nur auf Tastendrücke mit neuem Counter reagieren. Schau Dir dazu mal "event-on-change-reading" an http://www.fhemwiki.de/wiki/Event-on-change-reading.
Gruß,
   Thorsten
FUIP