Autor Thema: Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"  (Gelesen 25443 mal)

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7028
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #30 am: 18 November 2016, 19:13:43 »
Hallo!

Danke und ich kann Dein Problem nachstellen. Seit dieser Aenderung https://forum.fhem.de/index.php/topic,60414.msg518405.html#msg518405 funktioniert der Code so nicht mehr. Das Verhalten des watchdogs mit gesetztem Attribut regexp1WontReactivate hat sich geaendet. Wenn Du auf die vorherige Version von 91_watchdog.pm zurückgehst, funktioniert es wieder. Zumindest bei mir.

Mit der aktuellen Version bekomme ich es auf die Schnelle nicht gelöst und bin mir unsicher, ob man das als Fehler sehen sollte oder nicht. Die Logik hat sich nach meinem Verstaendnis insoweit geaendert, dass der 2. Tastendruck beim Doppelklick den watchdog zurücksetzt und jetzt gleichzeitig einen weiteren Tastendruck wegen SAME innerhalb einer Sekunde erwartet, damit der watchdog-Befehl nicht ausgeführt wird. Ich habe aber beim Grübeln darüber schon einen Knoten im Kopf bekommen  :-[. Also müsste jemand anderes bitte ggfs. einsteigen.

Für Dich als kurzfristige und für mich einfacher verstaendliche Lösung: Stelle es auf die neuere Lösungs-Variante mit sequence und Nutzung von triggerpartial um.

Gruß, Christian
« Letzte Änderung: 19 November 2016, 07:52:12 von krikan »

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24732
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #31 am: 19 November 2016, 08:13:53 »
Zitat
Für Dich als kurzfristige und für mich einfacher verstaendliche Lösung: Stelle es auf die neuere Lösungs-Variante mit sequence und Nutzung von triggerpartial um.

Das wuerde ich auch begruessen. Wenn ich den watchdog reparieren soll/muss, dann bitte eine Liste der Events hier anhaengen, und das erwartete Verhalten auch kurz beschreiben.

Offline phil1283

  • New Member
  • *
  • Beiträge: 32
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #32 am: 22 November 2016, 08:54:32 »
Vielen dank für die Hilfe.
Ich werde es auf sequence und Nutzung von triggerpartial umstellen.
Das sollte dann wohl so aussehen:
define Sequenz sequence Taster_Schlafzimmer_2:channelB:.B0 0.5 Taster_Schlafzimmer_2:channelB:.B0
attr Sequenz triggerPartial
define einfachclick_Taster_Schlafzimmer_2 notify Sequenz:partial_1 set Wandleuchte_Schlafzimmer_Jessica 25;;set Rollladen_Schlafzimmer down
define doppelclick_Taster_Schlafzimmer_2 notify Sequenz:partial_2 set Rollladen_Schlafzimmer up
werde das heute Abend mal testen.

Offline phil1283

  • New Member
  • *
  • Beiträge: 32
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #33 am: 24 November 2016, 14:04:28 »
Also ein Tastendruck wird erkannt, ein doppelter Tastendruck leider nicht.
Hat jemand auf die schnelle eine Idee?
Danke.

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7028
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #34 am: 24 November 2016, 14:08:00 »
define doppelclick_Taster_Schlafzimmer_2 notify Sequenz:partial_2 set Rollladen_Schlafzimmer upersetzen durch
define doppelclick_Taster_Schlafzimmer_2 notify Sequenz:trigger set Rollladen_Schlafzimmer up

Offline phil1283

  • New Member
  • *
  • Beiträge: 32
Antw:Taster (FT55): notify für "Taste lange gedrückt" und "Doppelklick"
« Antwort #35 am: 26 November 2016, 21:32:06 »
Danke jetzt läufts.
Das war wieder mal ein Fall von blindem und hirnlosem copy-and-paste von mir.
Mit trigger funktioniert es...

Offline cabchen

  • New Member
  • *
  • Beiträge: 4
Hallo

ich bin gerade noch an Anfang mit Fhem aber bist jetz lief es Ziemlich gut und hatte alles hinbekommen aber das mit den Lang und Kurz Tasten grieg ich nicht hin

Zu mein Problem ich habe Fhem und dann per  I2C_PCF8574 als ein und Ausgangs Karten von Horter.de

ich habe das Script von crispinus und viele andere Probiert aber bei crispinus ging wenigstens kurz zu schalten zu mein Befehlen
define sKurzerLangerDruck sequence E38.1:on 0.5 E38.1:on:.released
attr sKurzerLangerDruck triggerPartial
define nKurzerDruck notify sKurzerLangerDruck:trigger set EG_Wohnzimmer_Jalousie stop
define nLangerDruck notify sKurzerLangerDruck:partial_1 set EG_Wohnzimmer_Jalousie closed

hab in der 1 zeile Jede variante probiert aber der lange Tasten Truck steh ich auf auf schlauch
mit 1 mal und 2 mal geht das Script aber mit den Langer Tastendruck nicht

könnte mir einer helfen?

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7028
Ist E38.1 überhaupt ein Device für einen EnOcean-Taster? Wie sehen denn die Events von E38.1 bei einem langen Tastendruck aus?

Gruß, Christian

Offline cabchen

  • New Member
  • *
  • Beiträge: 4
Hallo

das ist ein PCF8574A von Horter.de der low oder high erkennt und per i2c abrufbar ist ich hab den int als abrufen für alle i2c karten auf den Repeater von horter.de auf Gpio 17 das wenn der GPIO an geht er Alle karten abfragen soll
2019-05-08 19:25:10 readingsProxy E38.0 off
2019-05-08 19:25:10 I2C_PCF8574 modulE38 254
2019-05-08 19:25:10 I2C_PCF8574 modulE38 Port0: off
2019-05-08 19:25:10 RPI_GPIO interupt Dblclick: off
2019-05-08 19:25:10 RPI_GPIO interupt Pinlevel: low
2019-05-08 19:25:10 RPI_GPIO interupt off
2019-05-08 19:25:10 RPI_GPIO interupt Longpress: off
2019-05-08 19:25:10 RPI_GPIO interupt Dblclick: off
2019-05-08 19:25:10 RPI_GPIO interupt Pinlevel: low
2019-05-08 19:25:10 RPI_GPIO interupt off
2019-05-08 19:25:10 RPI_GPIO interupt Longpress: off

define modulE38 I2C_PCF8574 0x38
attr modulE38 IODev myI2C
attr modulE38 InputPorts 0,1,2,3,4,5,6,7
attr modulE38 OnStartup 0=on,1=on,2=on,3=on,4=on,5=on,6=on,7=on
attr modulE38 event-on-change-reading state,Port0,Port1,Port2,Port3,Port4,Port5,Port6,Port7
attr modulE38 group ModulE38
attr modulE38 room i2c
define E38.0 readingsProxy modulE38:Port0
attr E38.0 alias E38.0
attr E38.0 devStateIcon on:off:off off:on:on
attr E38.0 group ModulE38
attr E38.0 room i2c
define E38.1 readingsProxy modulE38:Port1
attr E38.1 devStateIcon on:off:off off:on:on
attr E38.1 group ModulE38
attr E38.1 room i2c
define E38.2 readingsProxy modulE38:Port2

Doppel und einfach tasten Funktioniert

define seq sequence E38.0:on 0.5 E38.0:on
attr seq triggerPartial 1
define nA notify seq:partial_1 set A27.1 on
define nC notify seq:trigger set A27.1 off
 
A27.1 ist ein Ausgang auf ein 8fach relais karte für Beleuchtung

Offline krikan

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7028
OK, hat also nichts mit EnOcean zu tuen.

Mit welchen Events kann man denn jetzt die Tastendruckdauer ermitteln? Erkenne ich in Deinen Angaben nicht. Um das EnOcean-Beispiel aus dem Thread übertragen zu können, braucht man u.a. separate Events für "Taster gedrückt" und "Taster loslassen". Falls es ein besonderes Event für "Taster lange gedrückt" gibt, ist der Weg über sequence vermutlich falsch.

Offline cabchen

  • New Member
  • *
  • Beiträge: 4
hat sich erledigt habe was gefunden in Forum
https://forum.fhem.de/index.php/topic,47219.0.html