Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [Gelöst] Doppelter Tastendruck

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[Gelöst] Doppelter Tastendruck

Geplant Angeheftet Gesperrt Verschoben Blockly
7 Beiträge 3 Kommentatoren 829 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mrFenyxM Offline
    mrFenyxM Offline
    mrFenyx
    schrieb am zuletzt editiert von mrFenyx
    #1

    Hi, ich versuche auch ein Doppelter Tastendruck zu fangen, dieses Mal von einem Ikea Tradfri Taster. Ich habe versucht es vie hier zu machen Doppelter Tastendruck innerhalb 3 Sekunden [gelöst] aber das funktioniert bei mir leider nicht. Ich kriege immer nur "Function 1" als Ausgabe. Hier mein Blockly:
    3110607c-2633-46db-a234-d7b7f1a5712d-image.png

    Und das JavaScript:

    var timeout;
    
    on({id: 'deconz.0.sensors.ec1bbdfffeaac1cb.buttons.1.release_press', val: true}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (timeout) {
        (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
        console.log('Function 1');
      } else {
        timeout = setTimeout(function () {
          timeout = null;
          console.log('Function 2');
        }, 1000);
      }
    });
    

    Das Problem ist dass anscheinend das Tastendrücken auf dem Ikea Tradfri Schalter automatisch 2 mal das Wert auf "true" setzt, direkt nacheinander innerhalb 10-20 ms. Das hier ist was geloggt wird wenn ich einmal drauf drücke:

    val	ack	from	Timestamp	Last change
    
    false 	true 	deconz.0 	2020-09-18 13:34:01.813 	
    false 	true 	deconz.0 	2020-09-18 13:34:01.804 	
    true 	true 	deconz.0 	2020-09-18 13:34:01.657 	
    true 	true 	deconz.0 	2020-09-18 13:34:01.646 	
    

    Hat jemand eine Idee wie man so was lösen kann, bzw. wie ich einen Doppelclick abfangen kann?
    Danke!

    HomoranH paul53P 2 Antworten Letzte Antwort
    0
    • mrFenyxM mrFenyx

      Hi, ich versuche auch ein Doppelter Tastendruck zu fangen, dieses Mal von einem Ikea Tradfri Taster. Ich habe versucht es vie hier zu machen Doppelter Tastendruck innerhalb 3 Sekunden [gelöst] aber das funktioniert bei mir leider nicht. Ich kriege immer nur "Function 1" als Ausgabe. Hier mein Blockly:
      3110607c-2633-46db-a234-d7b7f1a5712d-image.png

      Und das JavaScript:

      var timeout;
      
      on({id: 'deconz.0.sensors.ec1bbdfffeaac1cb.buttons.1.release_press', val: true}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (timeout) {
          (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
          console.log('Function 1');
        } else {
          timeout = setTimeout(function () {
            timeout = null;
            console.log('Function 2');
          }, 1000);
        }
      });
      

      Das Problem ist dass anscheinend das Tastendrücken auf dem Ikea Tradfri Schalter automatisch 2 mal das Wert auf "true" setzt, direkt nacheinander innerhalb 10-20 ms. Das hier ist was geloggt wird wenn ich einmal drauf drücke:

      val	ack	from	Timestamp	Last change
      
      false 	true 	deconz.0 	2020-09-18 13:34:01.813 	
      false 	true 	deconz.0 	2020-09-18 13:34:01.804 	
      true 	true 	deconz.0 	2020-09-18 13:34:01.657 	
      true 	true 	deconz.0 	2020-09-18 13:34:01.646 	
      

      Hat jemand eine Idee wie man so was lösen kann, bzw. wie ich einen Doppelclick abfangen kann?
      Danke!

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @mrFenyx ich kenne Deconz nicht.
      Kannst du nicht die Zeitdifferenz von der jetzigen Statusänderun/aktualisierung mit der letzten Statusänderung/aktualisierung berechnen. und wenn diese kleiner x msec ist ist das ein Doppelklick?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • mrFenyxM Offline
        mrFenyxM Offline
        mrFenyx
        schrieb am zuletzt editiert von
        #3

        Hi @Homoran , zu Deconz, das ist eigentlich nur ein Adapter für meine Zigbee Geräte.
        Zum eigentlichen Problem, ich bin mir nicht sicher dass ich verstehe was du meinst. Das Problem scheint zu sein dass wenn ich 1x auf mein Taster drücke, gleich 2x das Wert des Objektes auf "true" gesetzt wird und das Skript es automatisch als Doppelklick sieht. Wenn ich z.B. mein Timeout auf 1ms setze dann wird immer nur das "Function 2" getriggered weil das "automatische" Doppelklick etwa 10ms braucht. Ich müsste also irgendwie im Trigger von der "on" Funktion neben "val: true" auch irgendwas in der Richtung "ts > oldTs + 50ms"

        1 Antwort Letzte Antwort
        0
        • mrFenyxM mrFenyx

          Hi, ich versuche auch ein Doppelter Tastendruck zu fangen, dieses Mal von einem Ikea Tradfri Taster. Ich habe versucht es vie hier zu machen Doppelter Tastendruck innerhalb 3 Sekunden [gelöst] aber das funktioniert bei mir leider nicht. Ich kriege immer nur "Function 1" als Ausgabe. Hier mein Blockly:
          3110607c-2633-46db-a234-d7b7f1a5712d-image.png

          Und das JavaScript:

          var timeout;
          
          on({id: 'deconz.0.sensors.ec1bbdfffeaac1cb.buttons.1.release_press', val: true}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (timeout) {
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              console.log('Function 1');
            } else {
              timeout = setTimeout(function () {
                timeout = null;
                console.log('Function 2');
              }, 1000);
            }
          });
          

          Das Problem ist dass anscheinend das Tastendrücken auf dem Ikea Tradfri Schalter automatisch 2 mal das Wert auf "true" setzt, direkt nacheinander innerhalb 10-20 ms. Das hier ist was geloggt wird wenn ich einmal drauf drücke:

          val	ack	from	Timestamp	Last change
          
          false 	true 	deconz.0 	2020-09-18 13:34:01.813 	
          false 	true 	deconz.0 	2020-09-18 13:34:01.804 	
          true 	true 	deconz.0 	2020-09-18 13:34:01.657 	
          true 	true 	deconz.0 	2020-09-18 13:34:01.646 	
          

          Hat jemand eine Idee wie man so was lösen kann, bzw. wie ich einen Doppelclick abfangen kann?
          Danke!

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @mrFenyx sagte:

          on({id: 'deconz.0.sensors.ec1bbdfffeaac1cb.buttons.1.release_press', val: true},

          Ist "release_press" der richtige Datenpunkt ? Welche werden noch angeboten ?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • mrFenyxM Offline
            mrFenyxM Offline
            mrFenyx
            schrieb am zuletzt editiert von
            #5

            Ja, das sollte der richtige sein. Hier die anderen DPs:
            dc04e918-6e17-4f94-b8a8-24efbb16178e-image.png

            paul53P 1 Antwort Letzte Antwort
            0
            • mrFenyxM mrFenyx

              Ja, das sollte der richtige sein. Hier die anderen DPs:
              dc04e918-6e17-4f94-b8a8-24efbb16178e-image.png

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @mrFenyx
              Trigger mal auf "ist größer als letztes" anstelle von "ist wahr".

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • mrFenyxM Offline
                mrFenyxM Offline
                mrFenyx
                schrieb am zuletzt editiert von
                #7

                Scheint so zu funktionieren! Es gibt ein anderes Problem jetzt aber das ist wahrscheinlich eine Hardware Beschränkung dass zu schnelles 2x Klick nicht erkannt wird (muss mindestens um die 300-400ms zwischen den Klicks warten). Danke @paul53 !

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                630

                Online

                32.7k

                Benutzer

                82.4k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe