Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Doppelter Tastendruck

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Doppelter Tastendruck

    This topic has been deleted. Only users with topic management privileges can see it.
    • mrFenyx
      mrFenyx last edited by 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!

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @mrFenyx last edited by

        @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?

        1 Reply Last reply Reply Quote 0
        • mrFenyx
          mrFenyx last edited by

          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 Reply Last reply Reply Quote 0
          • paul53
            paul53 @mrFenyx last edited by

            @mrFenyx sagte:

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

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

            1 Reply Last reply Reply Quote 0
            • mrFenyx
              mrFenyx last edited by

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

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @mrFenyx last edited by paul53

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

                1 Reply Last reply Reply Quote 0
                • mrFenyx
                  mrFenyx last edited by

                  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 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  435
                  Online

                  32.0k
                  Users

                  80.4k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  637
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo