Taste drücken und Taste loslassen seperat erkennen, geht das?

Begonnen von The Spirit, 05 April 2017, 09:11:26

Vorheriges Thema - Nächstes Thema

The Spirit

HI,
ich habe einen Taster (HM-RC-2-PBU-FM).
Besteht die Möglichkeit in FHEM, das drücken des Tasters und das loslassen des Tasters seperat zu erkenne?
Danke,
Andreas
THZ 304 Eco Baujahr 2015

zap

Die Taster die ich kenne unterscheiden nur bei  langem Tastendruck zwischen drücken und loslassen. Beim kurzen Tastendruck nicht
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

The Spirit

das hört sich ja schon mal gut an. kannst du mir da mehr darüber erzählen?
geht das direkt in der ccu2 oder dann erst mit fhem?
Danke
THZ 304 Eco Baujahr 2015

darkness

Zitat von: The Spirit am 05 April 2017, 15:01:06
... kannst du mir da mehr darüber erzählen?

Schreib doch lieber was du vor hast  :)

Du kannst in FHEM das Event auswerten.


The Spirit

Ich nutze hauptsächlich Loxone.
FHEM bindet mir nur alles ein, was mit Loxone nicht geht.
Hier bin ich jetzt mit der CCu2 und Homematic an günstige Taster gekommen (welche auch noch mein Schalterprogramm unterstützt).
Jetzt will ich mit einem Taster meine Lampen dimmen.
Dazu muss ich ja erkennen, wann ein Taster gedrückt wird und wann er wieder losgelassen wird.
Dies ist ja so nicht in HomeMatic vorgesehen.
Eine Direktverknüpfung ist nicht möglich, da der Dimmer von Loxone ist.
Daher würde ich jetzt gerne herausfinden, wann der Taster gedrückt wird und wann er wieder losgelassen wird.
Hoffte, das geht in FHEM, da es in Homematic selbst leider nicht geht (oder ich es noch nicht heraus gefunden habe wie).
Danke,
Andreas
THZ 304 Eco Baujahr 2015

zap

Ich vermute es geht auch in der CCU, allerdings nur per Homematic Script.

Wenn Du die CCU per HMCCU an FHEM anbindest und z.B. mit HMCCUDEV ein Device für den Taster definierst, kannst Du die Events für Drücken und Loslassen der Taste per Notify abfangen.

Vermutlich willst Du die Helligkeit von der Dauer des Tastendrucks abhängig machen. Das könnte schwierig werden, da FHEM kein Echtzeitsystem ist. Die Events können daher verzögert kommen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

The Spirit

Also in der CCU hab ich es nicht hinbekommen.
Wäre super wenn du da noch ein paar Tips für mich vielleicht hättest.

Das heisst dann aber, das ich mit Homematic tastern nur homematic dimmer ansteuern kann, oder sehe ich das falsch.
Alle anderen mir bekannten Dimmer gehen dann ja nicht.

Oder wie löst ihr das?
Danke
THZ 304 Eco Baujahr 2015

darkness

Hast du dich schon mal in das Homemeatic-Wiki eingelesen?  Da findest du wichtige Grundlagen.

Die HM Geräte kann man peeren. Dann sendet der Taster den Befehl direkt an den Dimmer. In FHEM wird das Event dann nur noch "mitgeschrieben"
Hat den Vorteil, dass es auch ohne FHEM läuft und direkt funktioniert.

Natürlich kannst du auch nur den Taster verwenden und auf dessen Events reagieren und andere Geräte schalten. Ein-/Aus sollte wohl noch gehen. Aber Dimmen könnte, wie geschrieben, nicht richtig klappen.
Da ist dann ein Zeitverzug, der nicht sonderlich groß ist, aber "spürbar" beim Dimmen z.B.

Allerdings bin ich raus was Loxone und FHEM angeht.

zap

Zitat von: darkness am 06 April 2017, 08:44:58
Hast du dich schon mal in das Homemeatic-Wiki eingelesen?  Da findest du wichtige Grundlagen.

Die HM Geräte kann man peeren. Dann sendet der Taster den Befehl direkt an den Dimmer. In FHEM wird das Event dann nur noch "mitgeschrieben"
Hat den Vorteil, dass es auch ohne FHEM läuft und direkt funktioniert.

Er hat ja ne CCU und kein CUL.

Zitat
Das heisst dann aber, das ich mit Homematic tastern nur homematic dimmer ansteuern kann, oder sehe ich das falsch.
Alle anderen mir bekannten Dimmer gehen dann ja nicht.

Ja das ist richtig. Nur Homematic Dimmer. Habe nicht mehr daran gedacht, dass Du einen Loxon Dimmer steuern möchtest.

Wie steuerst Du den Loxon Dimmer? Wenn Du den nicht in FHEM integriert bekommst, kannst Du das eh vergessen. Dann musst Du Dir über die Abfrage des Tasters auch keine Gedanken mehr machen.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

RadioJames

Hallo,

wie schon richtig bemerkt wurde, gibt es "short" und "long" Tastendrücke. Eine Endeerkennung beim "short" gibt es nicht, wie auch schon erklärt wurde. Dies wäre auch vollkommen sinnlos. Nicht so beim "long" Tastendruck. Dieser kann z.B. für Auto-Increment Operationen verwendet werden (z.B. Lautstärke einstellen). Hier gibt es explizit ein Release Event.

Aber genug theoretisiert. Hier sind Beispiele:

Beispiel "short":
2017-04-08 16:42:41 CUL_HM azSwitch6 battery: ok
2017-04-08 16:42:41 CUL_HM azSwitch6 CMDs_done
2017-04-08 16:42:41 CUL_HM azSwitch6 azSwitch6_Btn_02 Short
2017-04-08 16:42:41 CUL_HM azSwitch6_Btn_02 Short (to vccu)
2017-04-08 16:42:41 CUL_HM azSwitch6_Btn_02 trigger: Short_133
2017-04-08 16:42:41 CUL_HM azSwitch6_Btn_02 trigger_cnt: 133

Wie du siehst, das Event kommt und gut ist.
Ich nehme immer gerne folgenden Ausdruck als Trigger:
2017-04-08 16:42:41 CUL_HM azSwitch6 azSwitch6_Btn_02 Short


Beispiel "long":
2017-04-08 16:52:21 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:21 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 Long 1_134 (to vccu)
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:21 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:21 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 Long 2_134 (to vccu)
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:21 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:21 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 Long 3_134 (to vccu)
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:21 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:21 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 Long 4_134 (to vccu)
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:21 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:22 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:22 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 Long 5_134 (to vccu)
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:22 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:22 CUL_HM azSwitch6 azSwitch6_Btn_02 Long
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 Long 6_134 (to vccu)
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134
2017-04-08 16:52:22 CUL_HM azSwitch6 battery: ok
2017-04-08 16:52:22 CUL_HM azSwitch6 CMDs_done
2017-04-08 16:52:22 CUL_HM azSwitch6 azSwitch6_Btn_02 LongRelease
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 LongRelease 7_134 (to vccu)
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger: Long_134
2017-04-08 16:52:22 CUL_HM azSwitch6_Btn_02 trigger_cnt: 134


Wie du siehst, kommen die Tastenevents in periodischen Abständen, laufend durchnummeriert. Wie gesagt, kannst du damit Auto-Increment Aktionen triggern.
Wenn dich nur eine Taste mit zwei Belegungen interessiert (short / long) kannst du hier als Trigger das Release Event nehmen:
2017-04-08 16:52:22 CUL_HM azSwitch6 azSwitch6_Btn_02 LongRelease


Zur Weiterverarbeitung verwende ich meinen eigenen Keyhandler, die Namensgebung meiner Tasten ist immer Switch6_Btn0xx bzw, Switch2_Btn0xx (2-fach bzw. 6-fach Taster).
Das entsprechende Notify ist dann:
define ntfy.KeyPressed notify .*Switch(6|2)_Btn.*:(Short.*|Long.*) {KeyHandler($NAME, $EVENT)}

Die Unterscheidung geht selbstverständlich mittels CCU, als auch FHEM. Allerdings besitze ich selbst keine CCU, so dass ich nur beim Thema FHEM weiterhelfen kann.

There are 10 kind of people. Those who understand binary and those who don't.