[gelöst] Tastenprellen HM-PB-2-WM55-2

Begonnen von luke666s, 24 Februar 2018, 15:39:01

Vorheriges Thema - Nächstes Thema

luke666s

Hallo,
nachdem meine Homematic Zwischensteckdose das zeitliche gesegnet hat, wollte ich die LED's die da dran hingen direkt über ein MagicHome mit Tasmota schalten. Soweit so gut, aus FHEM raus oder auch der Tasmota oberfläche klappt das 1a :) wenn ich jetzt aber versuche das ganze mit dem HM-PB-2-WM55-2 zu triggern, macht sich ein Tasentprellen des Homatic schalter bemerktbar... je länger ich drücke, desto löfter flackert es... nicht gut... ein video hab ich mal angehängt.... jemand ne idee wie ich das abfangen kann?
hier noch das notify :) ein langes mit abfangen von short und longpress hatte das geliche ergebniss, genauso wie über statusabfrage und dann das gegenteil schlaten..

define Taste_Bett notify Taster_Bett_Btn_.* {fhem("set Bett_Led toggle")}
attr Taste_Bett room Schlafzimmer


und der Taster sieht so aus...

define Taster_Bett CUL_HM 30FB49
attr Taster_Bett IODev MapleCUL4
attr Taster_Bett IOgrp VCCU
attr Taster_Bett autoReadReg 4_reqStatus
attr Taster_Bett expert 2_raw
attr Taster_Bett firmware 1.4
attr Taster_Bett model HM-PB-2-WM55-2
attr Taster_Bett room CUL_HM,Schlafzimmer
attr Taster_Bett serialNr LEQ1099789
attr Taster_Bett subType pushButton
attr Taster_Bett webCmd getConfig:clear msgEvents

define Taster_Bett_Btn_01 CUL_HM 30FB4901
attr Taster_Bett_Btn_01 model HM-PB-2-WM55-2
attr Taster_Bett_Btn_01 peerIDs 00000000,13246501
attr Taster_Bett_Btn_01 room CUL_HM,Schlafzimmer

define Taster_Bett_Btn_02 CUL_HM 30FB4902
attr Taster_Bett_Btn_02 model HM-PB-2-WM55-2
attr Taster_Bett_Btn_02 peerIDs 00000000,13246502
attr Taster_Bett_Btn_02 room CUL_HM,Schlafzimmer


und der virtuelle schalter
define virt_LED_Bett_Btn1 CUL_HM 13246501
attr virt_LED_Bett_Btn1 model virtual_2
attr virt_LED_Bett_Btn1 peerIDs 30FB4901,
attr virt_LED_Bett_Btn1 webCmd press short:press long
define virt_LED_Bett_Btn2 CUL_HM 13246502
attr virt_LED_Bett_Btn2 model virtual_2
attr virt_LED_Bett_Btn2 peerIDs 30FB4902,
attr virt_LED_Bett_Btn2 webCmd press short:press long



betateilchen

Das hat nix mit Prellen des Tasters zu tun, sondern mit der völlig ungeeigneten regexp Taster_Bett_Btn_.* in Deinem notify.

Schau doch einfach mal in den Event Monitor, was wirklich passiert, wenn Du eine der beiden Tasten betätigst. Da werden eine ganze Reihe von events erzeugt.


2018-02-24 15:47:05.596 CUL_HM wz_PIR1_Btn_01 Short 1_9 (to hmvccu)
2018-02-24 15:47:05.596 CUL_HM wz_PIR1_Btn_01 trigger: Short_9
2018-02-24 15:47:05.596 CUL_HM wz_PIR1_Btn_01 trigger_cnt: 9


und Dein notify triggert auf JEDEN dieser events, was zu Deinem Leuchtfeuer führt.

In Wirklichkeit willst Du aber nur auf das "Short" reagieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

luke666s

#2
das problem war:
mit
Taster_Bett_Btn_01:(Short).* {fhem("set Bett_Led toggle") if( $EVENT =~ /Short/ )}
oder
Taster_Bett_Btn_01:(Short).* {if(Value("Bett_Led") eq "off"){fhem("set Bett_Led on")}else{fhem("set Bett_Led off")}}
gehen die led nur kurz an und dann wieder aus...

betateilchen

#3
Das Verhalten ist logisch, weil zwei Events erzeugt werden, in denen "Short" vorkommt.


2018-02-24 16:10:17.930 CUL_HM HM_39D35A HM_39D35A_Btn_08 Short
2018-02-24 16:10:17.935 CUL_HM HM_39D35A_Btn_08 Short 1_23 (to hmvccu)


Das heißt, Du toggelst zweimal und das Licht ist danach wieder aus.




Nochmal:

Zitat von: betateilchen am 24 Februar 2018, 15:48:46
Schau doch einfach mal in den Event Monitor, was wirklich passiert, wenn Du eine der beiden Tasten betätigst. Da werden eine ganze Reihe von events erzeugt.

Der Event, den Du brauchst, ist genau dieser hier:


2018-02-24 16:10:17.930 CUL_HM HM_39D35A HM_39D35A_Btn_08 Short


und im Eventmonitor kannst Du automatisch ein notify generieren lassen, das genau auf den von Dir dort ausgewählten event triggert.


define HM_39D35A_notify_2 notify HM_39D35A:HM_39D35A_Btn_08.Short {}





Das hier:

Zitat von: luke666s am 24 Februar 2018, 15:59:46
Taster_Bett_Btn_01:(Short).* {fhem("set Bett_Led toggle") if( $EVENT =~ /Short/ )}

ist ziemlich unsinnig. Wenn Du "vorne" schon "Short" in der regexp stehen hast, brauchst Du nicht nochmal explizit darauf prüfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

luke666s

ok... wenn ich nur auf den "short 1" ragiere
{fhem("set Bett_Led toggle") if( $EVENT =~ /Short 1/ )}

betateilchen

Warum probierst Du nicht einfach aus, was man Dir zur Lösung Deines Problems vorschlägt?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

luke666s

oder so wie du.... dann gehts auch :)

luke666s

Zitat von: betateilchen am 24 Februar 2018, 16:27:44
Warum probierst Du nicht einfach aus, was man Dir zur Lösung Deines Problems vorschlägt?
weil ich selbst grad am probieren war :)

Pfriemler

tja, alles ist schon gesagt, und dennoch habe ich noch eine interessierte Frage:

leicht offtopic:

Zitat von: luke666s am 24 Februar 2018, 15:39:01
nachdem meine Homematic Zwischensteckdose das zeitliche gesegnet hat, ...

Was ist daran kaputt und wo ist die jetzt? Kann man die nicht reparieren?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

luke666s

Zitat von: Pfriemler am 24 Februar 2018, 20:27:26
Was ist daran kaputt und wo ist die jetzt? Kann man die nicht reparieren?

Gute frage :) machte gar nix mehr... weder auf Tastendruck am Gerät noch übers Fhem... readings kamen auch keine mehr rein und nach dem löschen ging auch kein Pairing mehr...  konnte sie noch nichtmal sauber unpairen...werde sie die Tage mal aufschrauben...