Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. HM-RPC Tasterschnittstelle HM-PBI-4-FM langer Tastendruck

    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

    HM-RPC Tasterschnittstelle HM-PBI-4-FM langer Tastendruck

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

      Vielen Dank für deine schnelle Rückmeldung.
      Was genau meinst du mit Zeitstempel? In meinen Objekten sehe ich unter "Press_Short" lediglich einen Button zum triggern.

      Das Script habe ich ausgeführt. Es führt zu folgendem Ergebnis:

      hm-rpc.0	2020-07-02 19:47:42.884	warn	(9369) xmlrpc <- undefined method updateDevice with parameters ["hm-rpc.0","QEQ1859022:1",1]
      javascript.0	2020-07-02 19:47:42.883	info	(1994) script.js.Entwicklung.hmte: {"result":false,"error":null}
      

      Wie im verlinkten Thread beschrieben habe ich den Taster von "gesichert" auf "standard" umgestellt.

      Drücke ich jetzt eine Taste, reagieren je nach Dauer des Drucks die bool Werte bei "Install_Test" und wenn ich länger drücke auch "Press_Cont" und beim Loslassen "Press_Long_Release".

      Damit kann ich fast schon arbeiten, vielen Dank 🙂 Jetzt wäre es noch klasse, wenn ich Zeitstempel für die Tastendrücke hätte. Sprich warum werden unter "press_long" und "press_short" keine Zeitstempel sondern diese Trigger angezeigt? Bekomme ich das noch geändert?

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

        @gammler2003 sagte:

        "press_long" und "press_short" keine Zeitstempel

        Wechsle mal im Tab "Objekte" in die Statusansicht (5. Button oben).

        1 Reply Last reply Reply Quote 0
        • G
          gammler2003 last edited by gammler2003

          Ja wahnsinn...wieder etwas gelernt. Vielen Dank! Zeitstempel aktualisieren sich.

          Aber welchen Wert nutze ich denn jetzt am schlausten als Trigger für lange/kurze Tastendrücke? Klar ich kann auf "press_long"/"press_short" abfragen und erhalte bei Druck ein true zurück - aber ein Zeitstempel wäre schon schicker, da ich prüfen kann ob der alte Wert ungleich dem neuen Wert ist, sprich ob es tatsächlich einen erneuten Tastendruck gab.

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

            @gammler2003 sagte:

            Trigger für lange/kurze Tastendrücke?

            Ein Trigger, der keine Wertänderung voraussetzt, triggert bei Aktualisierung des Zeitstempels:

            on({id: 'xxx.PRESS_SHORT'}, function() {});
            // oder
            on({id: 'xxx.PRESS_SHORT', val: true}, function() {});
            

            Der Zeitstempel wird nur bei Tastendruck aktualisiert.

            1 Reply Last reply Reply Quote 0
            • G
              gammler2003 last edited by gammler2003

              Du hast mir wirklich sehr geholfen - herzlichen Dank.
              Nur mal noch so aus Neugier, in wiefern unterscheiden sich diese beiden Varianten?

              Die Hilfe aus dem Forum ist allgemein sehr wertvoll und ich würde mich gerne revanchieren - weiß nur noch nicht genau wie 🙂

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

                @gammler2003 sagte:

                in wiefern unterscheiden sich diese beiden Varianten?

                Bezogen auf den HM-Taster: In der Wirkung kein Unterschied.
                Ansonsten: Im ersten Fall wird bei jeder Zustandsänderung getriggert, im 2. Fall nur, wenn der Wert true ist.

                1 Reply Last reply Reply Quote 0
                • G
                  gammler2003 last edited by

                  Prima, vielen Dank dir.

                  Ich habe festgestellt, dass der Trigger "Press_Cont" bei gedrückter Taste so häufig triggert, dass mein Hue-Adapter bzw. die Bridge nicht mitkommt und so das Dimmen nicht zuverlässig funktioniert.

                  Gibt es die Möglichkeit, den Trigger

                  on({id: 'xxx.PRESS_SHORT', val: true}, function() {});
                  
                  

                  so zu erweitern, dass er beispielsweise pro Sekunde nur einmal triggert oder auch nur bei jedem 5. Trigger tatsächlich auslöst?

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

                    @gammler2003 sagte:

                    Trigger "Press_Cont" bei gedrückter Taste so häufig triggert

                    Ja, er triggert alle 250 ms.

                    @gammler2003 sagte in HM-RPC Tasterschnittstelle HM-PBI-4-FM langer Tastendruck:

                    pro Sekunde nur einmal triggert oder auch nur bei jedem 5. Trigger tatsächlich auslöst?

                    Das ist nicht möglich. Aber man kann eine Zähl-Variable verwenden, mit der nur bei jedem 4. Trigger-Ereignis der Dimm-Wert verändert wird.
                    Alternative: Intervall, das mit PRESS_LONG gestartet und mit PRESS_LONG_RELEASE gestoppt wird.

                    1 Reply Last reply Reply Quote 0
                    • G
                      gammler2003 last edited by

                      Hallo zusammen,

                      anderes HM-Gerät - ähnliche Problematik.

                      Bei meinem neuen HmIP-FCI1 kann ich in den Objekten die Trigger "PRESS_LONG" und "PRESS_SHORT" auslesen. Kann das Gerät auch, analog dem HM-PBI-4-FM", die Trigger "PRESS_LONG_RELEASE" und "PRESS_CONT" auslesen? Falls ja, wie bringe ich es dazu 😉

                      Vielen Dank euch vorab!

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

                        @gammler2003 sagte:

                        HmIP-FCI1 kann ich in den Objekten die Trigger "PRESS_LONG" und "PRESS_SHORT" auslesen

                        HmIP-Taster funktionieren anders als HM-Taster.

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

                          @paul53 genial, danke!

                          Hast du zufällig eine Idee, wie ich den Press_Long_Release erzeugen/simulieren kann? Das habe ich an meinem HM-Taster genutzt, um die Dimmrichtung (heller/dunkler) zu ändern.

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

                            @gammler2003 sagte:

                            Press_Long_Release erzeugen/simulieren kann?

                            Timeout von 300...400 ms, der vorher bei jedem Trigger-Ereignis gestoppt wird. Wenn der Timer dann abläuft, ist PRESS_LONG_RELEASED erreicht.

                            1 Reply Last reply Reply Quote 0
                            • G
                              gammler2003 last edited by

                              Klingt logisch, aber so ganz bekomme ich es von der Reihenfolge nicht hin. Vielleicht verstehe ich dann die Timer endlich mal 😉

                              on({id: '<<trigger>>"}, function() {
                              
                              clearTimeout(timer);
                              
                              var timer = setTimeout (
                                 function () {
                                   console.log("Feuer");
                                 }, 
                                 400
                              );
                              });
                              
                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @gammler2003 last edited by

                                @gammler2003
                                Deklariere die Timer-Variable mal global.

                                const trigger = '...PRESS_LONG';
                                var timer = null;
                                
                                on({id: trigger}, function() {
                                   clearTimeout(timer);
                                   timer = setTimeout (function () {
                                      log("Feuer");
                                   }, 400);
                                });
                                
                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                920
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                hm-pbi-4-fm hm-rpc
                                2
                                16
                                763
                                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