Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Homematic Taster gedrückt halten

    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

    Homematic Taster gedrückt halten

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

      Hallo zusammen,

      ich versuche gerade ein neues Script zu erstellen.

      Ziel soll es sein mit einer Homematic Tasterschnittstelle eine Hue oder IKEA Lampe zu dimmen.

      Hierzu habe ich mir die Datenpunkte der Tasterschnitstelle angeschaut:
      394_2017-11-13_12_57_50-iobroker.admin.png

      Leider finde ich nicht den richtigen Weg um das gedrückt halten des Tasters auszulesen.

      Hat jemand eine Idee wie das klappen könnte ?

      Gruß

      Michael

      1 Reply Last reply Reply Quote 0
      • R
        RappiRN Most Active last edited by

        Betätige doch mal den Taster lange und schaue nach, ob da ein "true" bei Press_long kommt. Ich habe solch einen Taster noch nicht in Betrieb. Genauso sollte beim Loslassen auch bei Press_long_Release irgendwas kommen, oder?

        Enrico

        1 Reply Last reply Reply Quote 0
        • R
          RappiRN Most Active last edited by

          So, ich habe meinen Taster (HM-RC-2-PBU-FM) mal mit Spannung versorgt und ausprobiert. Also, alle Werte, außer "Short" gehen nur auf "true". Da diese Werte nicht gelöscht werden, würde ich sagen, wenn man darauf reagieren/triggern will, muss auf jeden Fall "aktualisieren" und nicht "ändern" ausgewählt sein.

          Die Long-Press Meldung kommt nach der eingestellten Zeit im Taster nur einmal die Cont-Meldung blinkt immer wieder auf, die könnte man also rein theoretisch noch länger als die Long-Press Meldung auswerten.

          ! 2216_hm_taster.jpg

          Sollte noch jemand Fragen dazu haben, bitte melden! :ugeek:

          Enrico

          1 Reply Last reply Reply Quote 0
          • D
            dwm last edited by

            Ok, Taster senden grundsätzlich nur "true" … aber halt immer, wenn man drückt.

            Ich hab da grade mal damit bissl experimentiert:

            ! subscribe({id: "hm-rpc.0.LEQ123456.1.PRESS_CONT"/*HM-PB-2-WM55-2 LEQ123456:1.PRESS_CONT*/, change:"any"}, function(dp){ dwmlog ("PRESS_CONT "+JSON.stringify(dp),4); }); ! subscribe({id: "hm-rpc.0.LEQ123456.1.PRESS_SHORT"/*HM-PB-2-WM55-2 LEQ123456:1.PRESS_SHORT*/, change:"any"}, function(dp){ dwmlog ("PRESS_SHORT "+JSON.stringify(dp),4); }); ! subscribe({id: "hm-rpc.0.LEQ123456.1.PRESS_LONG"/*HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG*/, change:"any"}, function(dp){ dwmlog ("PRESS_LONG "+JSON.stringify(dp),4); }); ! subscribe({id: "hm-rpc.0.LEQ123456.1.PRESS_LONG_RELEASE"/*HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG_RELEASE*/, change:"any"}, function(dp){ dwmlog ("PRESS_LONG_RELEASE "+JSON.stringify(dp),4); }); !

            Resultat nach etwa 5s auf den Taster drücken:

            ! ````
            09:18:54.179 [info] javascript.0 script.js.Steuerung.testzeugs: PRESS_LONG {
            "id": "hm-rpc.0.LEQ123456.1.PRESS_LONG",
            "newState": {
            "val": true,
            "ts": 1510733934161,
            "ack": true,
            "lc": 1510733165339,
            "from": "system.adapter.hm-rpc.0"
            },
            "oldState": {
            "val": true,
            "ts": 1510733611892,
            "ack": true,
            "lc": 1510733165339,
            "from": "system.adapter.hm-rpc.0"
            },
            "state": {
            "val": true,
            "ts": 1510733934161,
            "ack": true,
            "lc": 1510733165339,
            "from": "system.adapter.hm-rpc.0"
            },
            "common": {
            "def": false,
            "type": "boolean",
            "read": false,
            "write": true,
            "role": "button.long",
            "name": "HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG"
            },
            "native": {
            "CONTROL": "BUTTON.LONG",
            "DEFAULT": false,
            "FLAGS": 1,
            "ID": "PRESS_LONG",
            "MAX": true,
            "MIN": false,
            "OPERATIONS": 6,
            "TAB_ORDER": 1,
            "TYPE": "ACTION",
            "UNIT": ""
            },
            "name": "HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG",
            "channelId": "hm-rpc.0.LEQ123456.1",
            "channelName": "HM-PB-2-WM55-2 LEQ123456:1",
            "deviceId": "hm-rpc.0.LEQ123456",
            "deviceName": "Taster Test",
            "enumIds": ["enum.functions.Taster"],
            "enumNames": ["Taster"]
            }
            09:18:54.180 [info] javascript.0 script.js.Steuerung.testzeugs: PRESS_LONG_RELEASE {
            "id": "hm-rpc.0.LEQ123456.1.PRESS_LONG_RELEASE",
            "newState": {
            "val": true,
            "ts": 1510733934168,
            "ack": true,
            "lc": 1510733165344,
            "from": "system.adapter.hm-rpc.0"
            },
            "oldState": {
            "val": true,
            "ts": 1510733611908,
            "ack": true,
            "lc": 1510733165344,
            "from": "system.adapter.hm-rpc.0"
            },
            "state": {
            "val": true,
            "ts": 1510733934168,
            "ack": true,
            "lc": 1510733165344,
            "from": "system.adapter.hm-rpc.0"
            },
            "common": {
            "def": false,
            "type": "boolean",
            "read": false,
            "write": false,
            "role": "button.release",
            "name": "HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG_RELEASE"
            },
            "native": {
            "DEFAULT": false,
            "FLAGS": 3,
            "ID": "PRESS_LONG_RELEASE",
            "MAX": true,
            "MIN": false,
            "OPERATIONS": 4,
            "TAB_ORDER": 4,
            "TYPE": "ACTION",
            "UNIT": ""
            },
            "name": "HM-PB-2-WM55-2 LEQ123456:1.PRESS_LONG_RELEASE",
            "channelId": "hm-rpc.0.LEQ123456.1",
            "channelName": "HM-PB-2-WM55-2 LEQ123456:1",
            "deviceId": "hm-rpc.0.LEQ123456",
            "deviceName": "Taster Test",
            "enumIds": ["enum.functions.Taster"],
            "enumNames": ["Taster"]
            }

            (JSON Ausgabe der Objekte lesbar formatiert :))
            
            Bei langem Tastendruck werden PRESS_LONG und PRESS_LONG_RELEASE praktisch gleichzeitig gesendet, und zwar wenn man die Taste LOSLÄSST.
            
            Hm … z.B. für Dimmer-Implementationen per Script also eher ungeeignet ...
            
            Wieder ne Idee, die solange gut war solang sie gedauert hat ...
            1 Reply Last reply Reply Quote 0
            • R
              RappiRN Most Active last edited by

              @dwm:

              Bei langem Tastendruck werden PRESS_LONG und PRESS_LONG_RELEASE praktisch gleichzeitig gesendet, und zwar wenn man die Taste LOSLÄSST.

              Hm … z.B. für Dimmer-Implementationen per Script also eher ungeeignet ... `

              Das sollte doch aber auswertbar sein, also Dimmvorgang starten wenn Long_Press aktualisiert wird und stoppen, wenn auch Long_Press_Release aktualisiert wird, oder? Wenn man dann noch einen Dimmvorgang auf ca. 10 sek eingestellt bekommt, sollte das doch auch steuerbar sein. Mir fehlt im Moment die Idee einen Dimmvorgang per Skript (Blockly) zu erstellen.

              Ich hätte für solch ein Szenario z.B. einen Eltako-Dimmer FUD61NPN den man dann mit dem Taster schalten/Dimmen könnte.

              Enrico

              1 Reply Last reply Reply Quote 0
              • D
                dwm last edited by

                Ja, das war die Idee - also quasi die Direktverknüpfung nachbauen.

                Klappt aber eben NICHT, weil der PRESS_LONG nicht kommt, wenn der Taster das "LONG" detektiert (also nach 0.4s), sondern nach dem LOSLASSEN der Taste zusammen mit dem LONG_RELEASE.

                Nochmal, die beiden Events PRESS_LONG und PRESS_LONG_RELEASE kommen quasi gleichzeitig.

                Das ist für so ein Dimmer-Szenario eher … schlecht.

                Werner

                1 Reply Last reply Reply Quote 0
                • R
                  RappiRN Most Active last edited by

                  Ich habe jetztmal ein wenig probiert. Man kann sehr wohl dimmen, jedenfalls in meiner Konstellation. 😄 (Homematic Taster + Eltako Dimmer)

                  Ich habe jetzt mal einen Dimmer in fünf Stufen gebastelt, leider nur in Blockly. 😐

                  Ich habe jetzt erstmal nur hochdimmen sowie voll an und aus drin, runterdimmen sollte aber genau wie hochdimmen gehen, eben auf den anderen Taster. Oder man macht sich die Mühe, noch eine Logik reinzuprogrammieren, die noch die Richtungsumkehr mit einer Variable macht, dann könnte man mit einem Taster zwei Dimmer betätigen:

                  Hier mal das Blockly:

                  oberer Teil:

                  ! 2216_dimmer_oben.jpg
                  unterer Teil:

                  ! 2216_dimmer_unten.jpg
                  Und noch der Export, falls es noch einer probieren will:

                  ! ````
                  <block xmlns="http://www.w3.org/1999/xhtml" id="l9mSvbnid`.+gK#|~I!d" type="on_ext" y="-166" x="488"><mutation items="1"></mutation>
                  <field name="CONDITION">any</field>

                  <value name="OID0"><shadow id="~Nr5]k7D{(vIBO2Mc#Qi" type="field_oid"><field name="oid">hm-rpc.0.NEQ1317257.1.PRESS_LONG_RELEASE</field></shadow></value>
                  <statement name="STATEMENT"><block id="}w2?tHcJ3s1@-ekU]uT" type="timeouts_cleartimeout"><field name="NAME">timeout</field> <next><block id="q{t5@|/D!e?gM-]h/6UC" type="timeouts_cleartimeout"><field name="NAME">timeout2</field> <next><block id="kPHOzJT7%Q%c6aztTjV|" type="timeouts_cleartimeout"><field name="NAME">timeout3</field> <next><block id="[10cu~PGNET+;/Wf?ElW" type="timeouts_cleartimeout"><field name="NAME">timeout4</field> <next><block id="iOL7ECyI88hdjm_=rY?2" type="timeouts_cleartimeout"><field name="NAME">timeout5</field> <next><block id="c@H-E6M+gHWZ=7GGwoT" type="timeouts_cleartimeout"><field name="NAME">timeout6</field>
                  <next><block id="67aw[a^H+ZYqd_`t#jcr" type="timeouts_cleartimeout"><field name="NAME">timeout7</field>
                  <next><block id="5OwbQdB0J0e^#NJQ|B+I" type="timeouts_cleartimeout"><field name="NAME">timeout8</field></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block>

                  
                  Edit: Noch was zur Erläuterung: Ich habe den unteren Teil drin, weil meine LEDs erst bei über 25% Dimmer angehen, deshalb bei Dimmer=0% gleich ein Sprung auf 30% sonst plus 20%.
                  
                  Enrico
                  1 Reply Last reply Reply Quote 0
                  • D
                    dwm last edited by

                    Strange …

                    Nur sicherheitshalber ... wir reden aber schon vom gleichen Verhalten, oder?

                    Also Du drückst den Taster, und solange Du den gedrückt hältst, dimmts hoch.

                    Beim Loslassen wird der erreichte Level gehalten.

                    Mit dem Verhalten des Homematic Tasters, das ich bei mir sehe, dürfte das nicht funktionieren ...

                    Hm.

                    Der Taster ist bei mir ein HM-PB-2-WM55-2, mit Firmware 1.4 ... nur an der Zentrale angelernt, nicht verknüpft.

                    Eventuell liegt's an der Taster-Version?

                    1 Reply Last reply Reply Quote 0
                    • R
                      RappiRN Most Active last edited by

                      @dwm:

                      Nur sicherheitshalber … wir reden aber schon vom gleichen Verhalten, oder?

                      Also Du drückst den Taster, und solange Du den gedrückt hältst, dimmts hoch.

                      Beim Loslassen wird der erreichte Level gehalten. `

                      Genauso, ich habs ja ausprobiert. Mit 20% Schritten und jeweils 1sek timeout dazwischen, hat das eben ca. 5sek gedauert, bis das Licht voll hochgedimmt war. Sinnvoll wären wohl eher 10% Schritte, das muss ich mal noch probieren.

                      Ich habe den 230V Taster HM-RC-2-PBU-FM von HM, es kann schon sein, dass sich Batterietaster und Stromtaster anders verhalten. Andererseits hast du aber auch geschrieben nahezu praktisch zeitgleich, vielleicht reicht diese sehr kurze Zeit aus um da einen UNterschied zu machen.

                      Dein log ist so lang, solange kann ich mir die Zahl nicht merken, bin schon alt! 🙂

                      Aber du kannst ja mal ein kurzes Skript schreiben, dass nur der Long_Press und der Long_Press_Release geloggt werden. Ich mache das mal von meinem Taster.

                      Enrico

                      1 Reply Last reply Reply Quote 0
                      • R
                        RappiRN Most Active last edited by

                        So ich habe jetzt mal auf die Schnelle ein log eingebaut:

                        ! ```
                        2017-11-15 17:52:29.336 - [32minfo[39m: javascript.0 Start javascript script.js.Eltako_Dimmer 2017-11-15 17:52:29.358 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: registered 5 subscriptions and 0 schedules 2017-11-15 17:52:55.673 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:52:55.672Press_Short_2 2017-11-15 17:52:55.695 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:52:55.695Dimmer0 2017-11-15 17:53:05.067 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:05.067Press_Short_1 2017-11-15 17:53:05.087 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:05.086Dimmer100 2017-11-15 17:53:20.062 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:20.062Press_Short_2 2017-11-15 17:53:20.079 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:20.079Dimmer0 2017-11-15 17:53:24.709 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:24.709Press_Long 2017-11-15 17:53:24.725 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:24.723Dimmer30 2017-11-15 17:53:25.728 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:25.728Dimmer50 2017-11-15 17:53:26.722 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:26.722Dimmer70 2017-11-15 17:53:26.874 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:26.874Press_Long_Release 2017-11-15 17:53:35.058 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:35.057Press_Long 2017-11-15 17:53:35.089 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:35.088Dimmer90 2017-11-15 17:53:36.068 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:36.067Dimmer100 2017-11-15 17:53:39.360 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:39.360Press_Long_Release 2017-11-15 17:53:46.483 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:46.483Press_Short_2 2017-11-15 17:53:46.496 - [32minfo[39m: javascript.0 script.js.Eltako_Dimmer: 17:53:46.495Dimmer0[/code]
                        ! Is leider nur der Auszug aus der log-Datei direkt vom log-Ordner, das Erstellen eines Auszuges direkt aus dem log funktioniert irgendwie nicht, das ging aber schonmal!? :?:
                        ! Enrico

                        1 Reply Last reply Reply Quote 0
                        • D
                          dwm last edited by

                          Ja. Definitiv anderes Verhalten der Taster.

                          Das obige Script loggt übrigens nur die Tastenevents, halt mit dem kompletten Zustand der Datenpunkte als JSON.

                          Egal, ich hab das JSON wieder rausgeschmissen, machts nur unübersichtlich.

                          Nach 5s Drücken des Tasters:

                          06:57:08.067	[info]	javascript.0 script.js.Steuerung.testzeugs: PRESS_LONG
                          06:57:08.068	[info]	javascript.0 script.js.Steuerung.testzeugs: PRESS_LONG_RELEASE
                          
                          

                          Zeitunterschied nach IOBroker 1ms! Und zwar gesendet beim Loslassen des Tasters.

                          Heißt also (für mich):

                          Wenn man von HM-Taster einen Nicht-HM Dimmer steuern will, muss man einen 230V Taster (HM-RC-2-PBU-FM) nehmen, nur so kann man über ein IOBroker Programm das gleiche Verhalten erreichen wie bei der Homematic Direktverknüpfung.

                          Mit dem Batterie-Wandtaster (HM-PB-2-WM55-2) klappts NICHT.

                          HM-Taster auf HM-Dimmer ist sowieso die Direktverknüpfung schlauer, weil man dann den Dutycycle der CCU nicht zumüllt.

                          Ja, wieder was gelernt 🙂

                          Werner

                          1 Reply Last reply Reply Quote 0
                          • L
                            lukics last edited by

                            @dwm:

                            Heißt also (für mich):

                            Mit dem Batterie-Wandtaster (HM-PB-2-WM55-2) klappts NICHT.

                            Werner `
                            hast du mal probiert beim WM55 bei den Kanälen die AES Verschlüsselung zu deaktivieren?

                            1 Reply Last reply Reply Quote 0
                            • D
                              dwm last edited by

                              Hm, nein. Weiss ehrlich gesagt gar nicht, ob die Verschlüsselung aktiviert ist,

                              aber das ist ein guter Punkt.

                              Muss heut Abend mal schaun.

                              🙂

                              1 Reply Last reply Reply Quote 0
                              • L
                                lukics last edited by

                                @dwm:

                                Hm, nein. Weiss ehrlich gesagt gar nicht, ob die Verschlüsselung aktiviert ist,

                                aber das ist ein guter Punkt.

                                Muss heut Abend mal schaun.

                                🙂 `

                                Zusätzlich hilft vielleicht in der CCU leere Programme mit all den Kanälen zu erzeugen.

                                Ich kann leider das nicht ausprobieren weil ich 900km entfernt von meiner Installtion bin. Verwende openhab.

                                1 Reply Last reply Reply Quote 0
                                • simatec
                                  simatec Developer Most Active last edited by

                                  Hatte auch bei mir das Problem.

                                  Die Verschlüsselung muss deaktiviert sein.

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    lukics last edited by

                                    Stimmt, hab das auch mittlerweile entdeckt, hab den thread vergessen. Danke

                                    1 Reply Last reply Reply Quote 0
                                    • O
                                      oliver2017 last edited by

                                      @lukics:

                                      @dwm:

                                      Heißt also (für mich):

                                      Mit dem Batterie-Wandtaster (HM-PB-2-WM55-2) klappts NICHT.

                                      Werner hast du mal probiert beim WM55 bei den Kanälen die AES Verschlüsselung zu deaktivieren?

                                      Moin

                                      danke für den Hinweis. Hatte genau das gleiche Problem, die Gesicherte Übertragung war schuld.

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        TonyDom last edited by

                                        Ich habe diesen Vorschlag zum abdimmen.

                                        Dieses Script funktioniert bei mit jedoch nur mit einem Trigger (ohne release), weil ich bei mir das Schlafzimmer automatisch abdimmen lasse. Deshalb wirds auch bei mir so langsam dunkel, aber man kann ja die Zeiten und Schritte ändern.

                                        8695_abdimmen.png

                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          lukics last edited by

                                          Hast du die "CONT" option probiert.

                                          Das CONT kommt periodisch. Ich habe (openhab) damit das dimmen realisiert, indem ich bei jedem CONT einen 5% Schritt die Helligkeit erhöhe.

                                          Die Funktion des Tasters ist:

                                          Kurz -> EIN/AUS (100%/0%)

                                          Lang -> Hochdimmen in 5% basierend auf CONT events.

                                          Gruss

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          675
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          7
                                          19
                                          4049
                                          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