Mehrfaches triggern vom KNX Bus

Begonnen von Philipp1596, 19 April 2019, 13:49:36

Vorheriges Thema - Nächstes Thema

Philipp1596

Hallo zusammen,

ich habe derzeit vor, mehrere Taster zu KNX MDT Glastaster zu tauschen. Die Anbindung habe ich über KNXd und einem TUL Stick gelöst. Das funktioniert soweit auch.
Mein Problem ist jetzt folgendes: Ich möchte die Betätigung einer Taste auf dem Glastaster den Trigger über UDP weiter versenden. Dazu habe ich ein Notify erstellt, welches auf den trigger 0 und 1 des Tasters reagiert. Dieses ruft dann eine sub auf, welche dann den Trigger weiter versendet. Das Problem ist jetzt, dass der Wandschalter bei einer Betätigung 4 mal sendet. Somit wird der Trigger insgesamt 12 mal gesendet, also 4 mal getG1, 4 mal setG1 und 4 mal state.
Mein erster Versuch war, das Notify per attr DisableAfterTrigger für eine kurze Zeit zu deaktivieren, jedoch leider ohne Erfolg. Selbst wenn das attr auf 10 Sekunden steht, wird immer 12 mal gesendet.

Hier meine Konfiguration vom KNX Device
define UG_Sz_Ws_Taste_1_2_Bel_Status KNX 0/0/3:dpt1
setuuid UG_Sz_Ws_Taste_1_2_Bel_Status 5cb364cc-f33f-3457-e101-ba8a7d103045433d
attr UG_Sz_Ws_Taste_1_2_Bel_Status IODev UG_KNX_Gateway
attr UG_Sz_Ws_Taste_1_2_Bel_Status alias Beleuchtung Status
attr UG_Sz_Ws_Taste_1_2_Bel_Status group Wandschalter
attr UG_Sz_Ws_Taste_1_2_Bel_Status room UG Schlafzimmer


Hier mein Notify
define KNXDPT1000ToLoxone notify (UG_Sz_Ws_Tasten_1_2_Bel:.*|UG_Sz_Ws_Schlafen_gehen:.*) {KNXDPT1000ToLoxone("$NAME")}
setuuid KNXDPT1000ToLoxone 5cb5fe03-f33f-3457-3e28-b94b4fbb4591d38c
attr KNXDPT1000ToLoxone alias KNX DPT1000 zu Loxone
attr KNXDPT1000ToLoxone disabledAfterTrigger 3
attr KNXDPT1000ToLoxone group Notify
attr KNXDPT1000ToLoxone room Logik


Hier noch die Events die beim betätigen generiert werden
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel getG1: 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel last-sender: 1/1/1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel getG1: 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel last-sender: 1/1/1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel getG1: 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel last-sender: 1/1/1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel getG1: 1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel last-sender: 1/1/1
2019-04-19 13:50:23 KNX UG_Sz_Ws_Tasten_1_2_Bel 1


Hat jemand einen Tipp für mich, wie das klappt, dass insgesamt nur einmal bei Betätigung gesendet wird?
Vielen dank im Voraus und schöne Ostern! :)

JoeALLb

Nimm statt notity DOIF, da kannst du einen wiederaufruf für eine gegebene Zeit, zB 1s, sperren.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

CoolTux

Schau Dir mal das Attribut disableAfterTrigger beim Notify Device an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: JoeALLb am 19 April 2019, 13:57:04
Nimm statt notity DOIF, da kannst du einen wiederaufruf für eine gegebene Zeit, zB 1s, sperren.
Geht beim Notify auch. Siehe meinen Post
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Philipp1596

Zitat von: CoolTux am 19 April 2019, 13:57:35
Schau Dir mal das Attribut disableAfterTrigger beim Notify Device an.

Das habe ich bereits probiert, jedoch wird dann trotzdem 12 mal getriggert. Ich habe es testweise auch 10 Sekunden disabled, aber auch das funktioniert nicht.

CoolTux

Also das kann ich nicht verstehen. Bei mir triggerst er danach für die x Sekunden nicht mehr.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Und wenn Du zusätzlich Dein RegEx etwas besser setzt?


define KNXDPT1000ToLoxone notify (UG_Sz_Ws_Tasten_1_2_Bel|UG_Sz_Ws_Schlafen_gehen):getG1:.1
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Philipp1596

Wenn ich die RegEx so anpasse wie du geschrieben hast, dann wird es nur 4 mal getriggert, eben so oft, wie es vom KNX Bus kommt.

Was ich beobachtet habe beim DisableAfterTrigger, dass er erst für die eingestellte Zeit disabled, wenn die 4fachen Trigger vom KNX vorbei sind. Also quasi die 4 Trigger werden durch gelassen und danach wird es für 10 Sekunden deaktiviert. Dann werden die Tastendrücke auch nicht mehr über das notify versendet.

JoeALLb

Du bist dir sicher, dass der taster 4x sendet? Könnte diese Multiplikation auch innerhalb FHEM entstehen? (diesen Effekt habe ich manchmal ...)
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Philipp1596

Sicher bin ich mir nicht, aber ich gehe davon aus, da auch die Logeinträge 4-fach vom gleichen Taster sind.

CoolTux

Zitat von: Philipp1596 am 19 April 2019, 14:58:08
Wenn ich die RegEx so anpasse wie du geschrieben hast, dann wird es nur 4 mal getriggert, eben so oft, wie es vom KNX Bus kommt.

Was ich beobachtet habe beim DisableAfterTrigger, dass er erst für die eingestellte Zeit disabled, wenn die 4fachen Trigger vom KNX vorbei sind. Also quasi die 4 Trigger werden durch gelassen und danach wird es für 10 Sekunden deaktiviert. Dann werden die Tastendrücke auch nicht mehr über das notify versendet.

Sorry aber irgendwie habe ich Probleme das so Recht zu glauben.
Am besten erstmal testen.


define KNXDPT1000ToLoxone notify (UG_Sz_Ws_Tasten_1_2_Bel|UG_Sz_Ws_Schlafen_gehen):getG1:.1 { Log('Test Notify Taster') }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JoeALLb

Zitat von: Philipp1596 am 20 April 2019, 15:41:06
Sicher bin ich mir nicht, aber ich gehe davon aus, da auch die Logeinträge 4-fach vom gleichen Taster sind.
Hast Du FHEM neu gestartet? Teste das mal.... (Das löst diesen effekt bei mir!)
Ich habe auch den Glastaster, und bei mir sendet er nicht 4x!
Aber man kann ihn sicherlich so einstellen... (sende Flanke, wiederholrate, etc...) . Aber auch dann sollte es nicht imme rgenau 4x sein.
Oder wie sieht deine restliche KNX-Topologie aus? Hast Du mehrere KNX-Router, Gateways oder TUL-Device einzeln oder gemischt im Einsatz?
Oder KNXD?
Hast Du zugriff auf die ETS? Mach dort mal ein en Screenshot des Monitors beim drücken des Tasters...

Unabhängig davon wundert mich das Notify ähnlich wie CoolTux. Zeig noch mal ein Eventlog von dem Testdummy, den er dir geschickt hat.

sG Joe


FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270