Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Konzeptfrage: Tastendruck-sequenz prüfen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Konzeptfrage: Tastendruck-sequenz prüfen

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      chris299 last edited by

      Hallo zusammen,

      ich habe eine konzeptionelle Frage:
      Ich möchte einen einfachen Taster dazu benutzen, Sequenzen einzugeben, sowas wie doppel-Tastung oder auch komplexer wie kurz-kurz-lang gedrückt.

      Wie macht man das am besten mit einem Blockly?
      Wie definiert man die Sequenzen flexibel?
      und wie prüft man dann, wenn man ja jeweils sein script bei einem Tastendruck getriggert bekommt?
      schlimmstenfalls läuft dann das Scipt ja zweimal parallel gleichzeitig ab, oder?

      Viele Grüße
      Christoph

      mickym paul53 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @chris299 last edited by

        @chris299 Da ich kein Blockly Freund bin, sondern meine Logik grundsätzlich über NodeRed abwickle, hier mal ein paar Grundsatzüberlegungen, die Du brauchst.

        1. Liefert Dir Dein Taster ein false Signal beim loslassen bzw. wie erkennst Du kurze oder langes Drücken. Beim Shelly gibts da soweit ich weiß Parameter, sodass Du das unterscheiden kannst.
        2. Wenn Du keine Datenpunkte für lang oder kurz bekommst, dann musst Du (false benötigst Du für das Loslassen) - einen definierten Zeitraum, um kurz oder lang zu unterscheiden.
        3. Sequenzen kannst Du über einen String definieren, in dem Du kurz mit 0 und lang mit 1 kodierst.
        4. Du kannst ja in jedem Skript ein "aktiv" Datenpunkt definieren und damit vor erneutem Abarbeiten diesen Datenpunkt abfragen.

        Wie gesagt - meines Erachtens solltest Du die Fragen erst mal klären, bevor Du puzzelst.

        C 1 Reply Last reply Reply Quote 1
        • paul53
          paul53 @chris299 last edited by paul53

          @chris299 sagte: kurz-kurz-lang gedrückt.

          Blockly-Beispiel (HomeMatic-Taster):

          Blockly_temp.JPG

          C 1 Reply Last reply Reply Quote 0
          • C
            chris299 @mickym last edited by

            @mickym danke für die Hinweise. ja, das soll ein shelly liefern, insofern sollte ich einen wechsel true-false sehen, wenn er gedrückt und wieder losgelassen wird.

            paul53 2 Replies Last reply Reply Quote 0
            • C
              chris299 @paul53 last edited by

              @paul53 danke für das Muster. Was genau macht denn dieses falls-nicht-timeout?
              wenn ich z.b. 3 mal kurz möchte müsste ich bei jedem kurz-drücken prüfen, ob ich schon genügend im zähler zusammen habe, oder?

              paul53 2 Replies Last reply Reply Quote 0
              • OliverIO
                OliverIO last edited by

                @chris299

                auch sollte man beachten, blockly läuft auf dem server,
                der tastendruck wird auf dem client wahr genommen.
                daher wird es mit einer zeitmessung auf dem server schwierig.
                hier scheint es eine lösung für die unterscheidung normal oder long press mit blockly zu geben
                https://forum.iobroker.net/topic/36817/vis-button-long-press

                ich persönlich würde da eher eine lösung für den browser umsetzen, also etwas was in das script fenster von vis kommt.

                man könnte dann in einem html widget einen knopf mit einem eindeutigen id erzeugen
                und mit dem javascript dann auf die verschiedenen button down/button up events horchen.
                auf basis der zeit könnte man dann zeiten definieren, woran short press/long press, evtl mindest pausen dawischen definieren könnte, diese sammelt und wenn dann soundsolang nix gedrückt wird erst einen datenpunkt mit der gesammelten sequenz beschreiben.
                dadrauf könnte man dann wieder mit einem serverskript (js,blockly,node-red) reagieren und die aktionen ausführen.

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

                  @chris299 sagte: Was genau macht denn dieses falls-nicht-timeout?

                  Es sperrt den Timeout für die Timer-Dauer nach dem ersten kurzen Tastendruck, um die Zeit für die Tasten-Folge zu begrenzen. Es soll kein zweiter Timer nach dem ersten Tastendruck loslaufen.

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @OliverIO last edited by

                    @oliverio sagte in Konzeptfrage: Tastendruck-sequenz prüfen:

                    der tastendruck wird auf dem client wahr genommen.

                    es geht nach meinem Verständnis um Taster in der Elektroinstallation und nicht in der vis (z.b.)

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

                      @chris299 sagte: wenn ich z.b. 3 mal kurz möchte

                      Ich habe es mal um mehrere "kurz" erweitert:

                      Blockly_temp.JPG

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

                        @chris299 sagte: wechsel true-false sehen, wenn er gedrückt und wieder losgelassen wird.

                        Dann kann man so HomeMatic-Tasten emulieren:

                        Blockly_HM_Tastenemulation.JPG

                        1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Homoran last edited by

                          @homoran sagte in Konzeptfrage: Tastendruck-sequenz prüfen:

                          Taster in der Elektroinstallation

                          ah ok,
                          das latenz problem bleibt, aber in dem beispiel scheint es ja zu funktionieren
                          muss er halt erst mal tests machen ob das immer so funktioniert (besonders wenn man gerade mal videos über netzt/wlan schaut und das netz/router etwas mehr belastet ist wie normal.

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

                            @chris299 sagte: wechsel true-false sehen, wenn er gedrückt und wieder losgelassen wird.

                            Ohne HomeMatic-Emulation
                            drücken - true, loslassen - false:

                            Blockly_temp.JPG

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            849
                            Online

                            31.9k
                            Users

                            80.3k
                            Topics

                            1.3m
                            Posts

                            5
                            12
                            299
                            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