Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Visualisierung
  4. Langer Tastendruck möglich?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    473

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    394

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    979

Langer Tastendruck möglich?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
28 Beiträge 3 Kommentatoren 1.3k Aufrufe 2 Beobachtet
  • Ä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.
  • mickymM mickym

    Zusammenfassend kann man sagen unter VIS kenne ich nur das hqwidget(On/Off) , dass Du als Taster konfigurieren kannst.

    d0ee21f0-6f32-443d-843d-8d3fb6bd08e8-image.png

    Du siehst man kann auch eine anderes Bild für den Lautstärkeregler als die Lampe nehmen.

    Somit könnte man statt Dimmen, natürlich auch Mute ON/OFF und lauter leiser machen.

    D Offline
    D Offline
    derrapf
    schrieb am zuletzt editiert von
    #4

    @mickym Oh!, Das klingt spanned. Da hab ich ja direkt Bettlektüre.
    Danke Dir.
    Gruss Ralf

    D 1 Antwort Letzte Antwort
    0
    • D derrapf

      @mickym Oh!, Das klingt spanned. Da hab ich ja direkt Bettlektüre.
      Danke Dir.
      Gruss Ralf

      D Offline
      D Offline
      derrapf
      schrieb am zuletzt editiert von
      #5

      @derrapf
      Geht nicht so einfach.
      Zum Steuern der Lautstärke sende ich per HTTP einen Befehl an das Mediola Gateway, dass dann den IR Code für "lauter" sendet.
      Ich müsste also durch längeren Druck auf die Taste alle x ms einen IR Code, sprich einen HTTP Request senden.
      Das HQWidget will aber einen Datenpunkt.

      Ich muss mir noch mal Deine verlinkten Threads durchlesen ob es da eine Möglichkeit gibt. Aber rein mit dem HQWidget glaub ich gehts nicht. Oder hab ich was übersehen?

      Gruss Ralf

      mickymM 1 Antwort Letzte Antwort
      0
      • D derrapf

        @derrapf
        Geht nicht so einfach.
        Zum Steuern der Lautstärke sende ich per HTTP einen Befehl an das Mediola Gateway, dass dann den IR Code für "lauter" sendet.
        Ich müsste also durch längeren Druck auf die Taste alle x ms einen IR Code, sprich einen HTTP Request senden.
        Das HQWidget will aber einen Datenpunkt.

        Ich muss mir noch mal Deine verlinkten Threads durchlesen ob es da eine Möglichkeit gibt. Aber rein mit dem HQWidget glaub ich gehts nicht. Oder hab ich was übersehen?

        Gruss Ralf

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #6

        @derrapf Nochmal Du brauchst noch eine Logikmaschine. Ich mache das mit NodeRed.

        Für das Widget brauchst Du nur einen Datenpunkt.

        1. Wird das Widget gedrückt ist der Datenpunkt true - ist er false - wird er losgelassen.
        2. In der Zeit, in der der Datenpunkt true ist werden über die Logikmaschine alle 250ms eine Nachricht erzeugt und damit kannst Du auch alle 250ms einen HTTP Request senden.
        3. Das hört auf wenn der Datenpunkt auf false geht - sprich Du den Taster loslässt.

        Schau Dir doch mal kurz das Video an - das ich gepostet habe. (tasterimplementierung-dimmer-vis-nodered.mp4)

        Wenn ich den Taster mit der Maus gedrückt halte siehst Du dass die Helligkeit jeweils um 1% erhöht wird (alle 250ms) ;)

        Auch mit der reinen NodeRed Logik habe ich etwas dahin gearbeitet- aber ich habs halt wie in dem Video bis dahin geschafft.
        Der Flow ist nicht banal:

        bba5fdb0-142f-4004-9a17-e3b3f8b41751-image.png

        Aber wenn Du Dich darauf einlassen willst, kann ich Dir sicher helfen.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        D 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @derrapf Nochmal Du brauchst noch eine Logikmaschine. Ich mache das mit NodeRed.

          Für das Widget brauchst Du nur einen Datenpunkt.

          1. Wird das Widget gedrückt ist der Datenpunkt true - ist er false - wird er losgelassen.
          2. In der Zeit, in der der Datenpunkt true ist werden über die Logikmaschine alle 250ms eine Nachricht erzeugt und damit kannst Du auch alle 250ms einen HTTP Request senden.
          3. Das hört auf wenn der Datenpunkt auf false geht - sprich Du den Taster loslässt.

          Schau Dir doch mal kurz das Video an - das ich gepostet habe. (tasterimplementierung-dimmer-vis-nodered.mp4)

          Wenn ich den Taster mit der Maus gedrückt halte siehst Du dass die Helligkeit jeweils um 1% erhöht wird (alle 250ms) ;)

          Auch mit der reinen NodeRed Logik habe ich etwas dahin gearbeitet- aber ich habs halt wie in dem Video bis dahin geschafft.
          Der Flow ist nicht banal:

          bba5fdb0-142f-4004-9a17-e3b3f8b41751-image.png

          Aber wenn Du Dich darauf einlassen willst, kann ich Dir sicher helfen.

          D Offline
          D Offline
          derrapf
          schrieb am zuletzt editiert von
          #7

          @mickym
          Du meinst mit "Logikmaschine" eine Java-Script Implementierung? Node Red und Blockly kenn (kann) ich nicht.
          D.h. ich müsste erstmal schauen wie man in Java Script herausfindet ob eine Taste "noch" gedrückt wird.
          Wie ich feststellen kann ob sich ein Datenpunkt ändert, weiss ich. Aber wenn die Taste gedrüclt bleibt ändert sich der Datenpunkt ja nicht mehr, d.h. das Script würde nicht (mehr) getriggert. Das muss ich mal noch forschen wie das geht.
          Gruss Ralf

          D mickymM 2 Antworten Letzte Antwort
          0
          • D derrapf

            @mickym
            Du meinst mit "Logikmaschine" eine Java-Script Implementierung? Node Red und Blockly kenn (kann) ich nicht.
            D.h. ich müsste erstmal schauen wie man in Java Script herausfindet ob eine Taste "noch" gedrückt wird.
            Wie ich feststellen kann ob sich ein Datenpunkt ändert, weiss ich. Aber wenn die Taste gedrüclt bleibt ändert sich der Datenpunkt ja nicht mehr, d.h. das Script würde nicht (mehr) getriggert. Das muss ich mal noch forschen wie das geht.
            Gruss Ralf

            D Offline
            D Offline
            derrapf
            schrieb am zuletzt editiert von
            #8

            @derrapf Hmm. Kann man das Node-Red Gemälde irgendwie in eine Programmiersprache übersetzen? Dann haette ich es ev. leichter. Gibts da einen Java Script Export?
            Gruss Ralf

            1 Antwort Letzte Antwort
            0
            • D derrapf

              @mickym
              Du meinst mit "Logikmaschine" eine Java-Script Implementierung? Node Red und Blockly kenn (kann) ich nicht.
              D.h. ich müsste erstmal schauen wie man in Java Script herausfindet ob eine Taste "noch" gedrückt wird.
              Wie ich feststellen kann ob sich ein Datenpunkt ändert, weiss ich. Aber wenn die Taste gedrüclt bleibt ändert sich der Datenpunkt ja nicht mehr, d.h. das Script würde nicht (mehr) getriggert. Das muss ich mal noch forschen wie das geht.
              Gruss Ralf

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #9

              @derrapf Wie gesagt - wenn Du NodeRed nutzt da kann ich helfen, weil ich es damit implementiert habe. Ansonsten musst Du da mit eigenständigen Timern arbeiten.

              Nein - da müsstest Du Dich darauf einlassen.

              bb9d7ebb-57da-4205-a5cc-6f0f015a3a5d-image.png

              Oben wird getriggert - wenn der Datenpunkt true ist.
              Unten wird getriggert - wenn der Datenpunkt false ist. Wie Du siehst erzeugt der Flow solange der Datenpunkt true ist von sich aus alle 250ms eine Nachricht.

              In der anschließenden function Node (ist JS) - wird dann gezählt ab wann ein Longpress erkannt wird.

              var count = context.get('count') || 0;
              var longpress = context.get('longpress') || false;
              if (msg.payload){
                  count += 1;
                  context.set('count',count);
                  if (count > 5) { // Wert erhöhen wenn Longpress zu früh erkannt wird
                      longpress = true;
                      context.set('longpress',longpress);
                      return [null,msg];
                  }
              } else {
                  msg.payload=true;
                  count = 0;
                  context.set('count',count);    
                  if (!longpress) return [msg,null];
                  longpress = false;
                  context.set('longpress',longpress);
              }
              
              

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              D 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @derrapf Wie gesagt - wenn Du NodeRed nutzt da kann ich helfen, weil ich es damit implementiert habe. Ansonsten musst Du da mit eigenständigen Timern arbeiten.

                Nein - da müsstest Du Dich darauf einlassen.

                bb9d7ebb-57da-4205-a5cc-6f0f015a3a5d-image.png

                Oben wird getriggert - wenn der Datenpunkt true ist.
                Unten wird getriggert - wenn der Datenpunkt false ist. Wie Du siehst erzeugt der Flow solange der Datenpunkt true ist von sich aus alle 250ms eine Nachricht.

                In der anschließenden function Node (ist JS) - wird dann gezählt ab wann ein Longpress erkannt wird.

                var count = context.get('count') || 0;
                var longpress = context.get('longpress') || false;
                if (msg.payload){
                    count += 1;
                    context.set('count',count);
                    if (count > 5) { // Wert erhöhen wenn Longpress zu früh erkannt wird
                        longpress = true;
                        context.set('longpress',longpress);
                        return [null,msg];
                    }
                } else {
                    msg.payload=true;
                    count = 0;
                    context.set('count',count);    
                    if (!longpress) return [msg,null];
                    longpress = false;
                    context.set('longpress',longpress);
                }
                
                
                D Offline
                D Offline
                derrapf
                schrieb am zuletzt editiert von
                #10

                @mickym Danke für das Angebot
                Aber Node Red fange ich jetzt nicht auch noch an. Ich hab alles in Java-Script und das kann ich einfach besser "lesen".
                Aber Ok. Ich versuch mal rauszufinden wie es in Java geht.
                Wenn ich es weiss, dann poste ich es hier.
                Gruss Ralf

                mickymM 1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  derrapf
                  schrieb am zuletzt editiert von
                  #11

                  @derrapf
                  Wie in Java getriggert wird wäre spannend. Also spannender wie der Code der beim Triggern ausgeführt wird. Aber danke trotzdem für den Export. Kann ich sicher verwenden. Ich forsche mal..
                  Gruss Ralf

                  1 Antwort Letzte Antwort
                  0
                  • D derrapf

                    @mickym Danke für das Angebot
                    Aber Node Red fange ich jetzt nicht auch noch an. Ich hab alles in Java-Script und das kann ich einfach besser "lesen".
                    Aber Ok. Ich versuch mal rauszufinden wie es in Java geht.
                    Wenn ich es weiss, dann poste ich es hier.
                    Gruss Ralf

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #12

                    @derrapf sagte in Langer Tastendruck möglich?:

                    @mickym Danke für das Angebot
                    Aber Node Red fange ich jetzt nicht auch noch an. Ich hab alles in Java-Script und das kann ich einfach besser "lesen".
                    Aber Ok. Ich versuch mal rauszufinden wie es in Java geht.
                    Wenn ich es weiss, dann poste ich es hier.
                    Gruss Ralf

                    Du verpasst da einiges - aber wie Du willst. Es ist ein tolles Tool, da Du Dich um die Logik kümmern kannst und auch auf JS basiert. Aber die Nodes sind halt schon fertige Funktionen, die Dir das Leben erleichtern.

                    Na das Triggern ist nicht das Problem:

                    on(pattern, callbackOrId, value)
                    
                    

                    https://www.iobroker.net/docu/index-81.htm?page_id=5809

                    Aber dann die Timer etc. zu implementieren wird kompliziert - da ist mir dann doch lieber ich greif auf fertige Programmbausteine zurück.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    D 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @derrapf sagte in Langer Tastendruck möglich?:

                      @mickym Danke für das Angebot
                      Aber Node Red fange ich jetzt nicht auch noch an. Ich hab alles in Java-Script und das kann ich einfach besser "lesen".
                      Aber Ok. Ich versuch mal rauszufinden wie es in Java geht.
                      Wenn ich es weiss, dann poste ich es hier.
                      Gruss Ralf

                      Du verpasst da einiges - aber wie Du willst. Es ist ein tolles Tool, da Du Dich um die Logik kümmern kannst und auch auf JS basiert. Aber die Nodes sind halt schon fertige Funktionen, die Dir das Leben erleichtern.

                      Na das Triggern ist nicht das Problem:

                      on(pattern, callbackOrId, value)
                      
                      

                      https://www.iobroker.net/docu/index-81.htm?page_id=5809

                      Aber dann die Timer etc. zu implementieren wird kompliziert - da ist mir dann doch lieber ich greif auf fertige Programmbausteine zurück.

                      D Offline
                      D Offline
                      derrapf
                      schrieb am zuletzt editiert von
                      #13

                      @mickym
                      Naja.. wenn ich wieder mal mehr Zeit habe, dann kann ich das mal anschauen. Ich bin aber irgendwie mit Programmiersprachen aufgewachsen; mir ist das irgendwie lieber. Aktuell hab ich tatsächlich keinen Nerv dafür; hab grad zuviel Baustellen. Da brauch ich nicht noch eine weitere ;-) Aber vielleicht wenn es wieder etwas ruhiger zu geht.
                      Gruss Ralf

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @derrapf Du musst das halt im Zusammenhang mit Deiner Logikmaschine machen. Ich habe es mit Node-Red gemacht.

                        https://forum.iobroker.net/topic/40948/shelly-dimmer-datenpunkte-über-vis-steuern/3?_=1635800698767

                        Über das Taster Widget kann man dann über gedrückt=true und nicht gedrückt=false das steuern.

                        tasterimplementierung-dimmer-vis-nodered.mp4

                        Ich habe hier mal einen Teil des Flows gepostet:

                        https://forum.iobroker.net/topic/48500/hardware-such-hilfe-taster-adapter-wie-shelly-i3/14?_=1635800698770

                        Wichtig ist, was ich unten geschrieben habe. Wenn der Taster gedrückt ist werden alle 250ms Nachrichten verschickt. Sobald 5 Nachrichten geschickt sind, wird ein langer Tastendruck (also 1,25s) erkannt. Kann man konfigurieren wie man will.

                        Der Zähler wird zurückgesetzt sobald der Taster losgelassen wird.

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

                        @mickym sagte: Über das Taster Widget kann man dann über gedrückt=true und nicht gedrückt=false das steuern.

                        Dann kann man per Script z.B. alle 250 ms die Lautstärke bis zum Loslassen erhöhen.

                        var zyklus = null;
                        on(idTaste, function(dp) {
                           if(dp.state.val) {
                              zyklus = setInterval(function() {
                                 // Laustärke erhöhen
                              }, 250);
                           } else clearInterval(zyklus);
                        });   
                        

                        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

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • D derrapf

                          @mickym
                          Naja.. wenn ich wieder mal mehr Zeit habe, dann kann ich das mal anschauen. Ich bin aber irgendwie mit Programmiersprachen aufgewachsen; mir ist das irgendwie lieber. Aktuell hab ich tatsächlich keinen Nerv dafür; hab grad zuviel Baustellen. Da brauch ich nicht noch eine weitere ;-) Aber vielleicht wenn es wieder etwas ruhiger zu geht.
                          Gruss Ralf

                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #15

                          @derrapf Ich bin auch noch mit C, C++, Cobol und Basic aufgewachsen. Deswegen traue ich mir Programmierung durchaus zu - aber ich bin von NodeRed so begeistert, weil Du damit halt nicht Programmieren für Dummies machst, sondern gleichzeitig die Logike visualisiest, aber @paul53 hat Dir ja den Code schon geschickt.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @mickym sagte: Über das Taster Widget kann man dann über gedrückt=true und nicht gedrückt=false das steuern.

                            Dann kann man per Script z.B. alle 250 ms die Lautstärke bis zum Loslassen erhöhen.

                            var zyklus = null;
                            on(idTaste, function(dp) {
                               if(dp.state.val) {
                                  zyklus = setInterval(function() {
                                     // Laustärke erhöhen
                                  }, 250);
                               } else clearInterval(zyklus);
                            });   
                            
                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #16

                            @paul53 sagte in Langer Tastendruck möglich?:

                            @mickym sagte: Über das Taster Widget kann man dann über gedrückt=true und nicht gedrückt=false das steuern.

                            Dann kann man per Script z.B. alle 250 ms die Lautstärke bis zum Loslassen erhöhen.

                            var zyklus = null;
                            on(idTaste, function(dp) {
                               if(dp.state.val) {
                                  zyklus = setInterval(function() {
                                     // Laustärke erhöhen
                                  }, 250);
                               } else clearInterval(zyklus);
                            });   
                            

                            Nach meinen Flow müsstest Du jetzt halt zum Beispiel zählen wieviel Zyklen vergangen sind - also einen Zähler in die Schleife bauen um einen Longpress zu erkennen.

                            Also ab 5 zyklen erkennst Du einen Longpress und Du machst bei jedem Zyklus Deinen HTTP Request. Ansonsten wird bei unter 5 wird das als Shortpress interpretiert und machst Deinen Toggle oder sonstige Schaltung.

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              derrapf
                              schrieb am zuletzt editiert von
                              #17

                              @mickym
                              Vielen Dank auch an Paul
                              Aber dann muss ich mal blöd fragen. (Vielleicht hab ich den Befehl bisher falsch verstanden)

                              on(idTaste, function(dp) {
                              }
                              

                              wird doch getriggert wenn ich einen Taster drücke bzw. wenn sich ein Datenpunkt ändert (z.B. von true auf false, oder von 20 auf 21 oder von "dings" auf "bums")

                              Ein Taster kann auch ein VIS Widget sein.
                              Bisher dachte ich dass "Taster" bedeutet dass beim Drücken des physischen-, als auch des VIS-Tasters ein Wert in einen Datenpunkt geschrieben, dieser also geändert wird. Das ist im Grunde eine Variablen-Zuweisung.
                              Der Schalter wird also kurz gedrückt und dann wieder losgelassen.

                              Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events für den "on-Befehl" geben: Einmal beim Drücken (Wert wird gesetzt, bzw. Timer läuft los) und dann nochmal beim Loslassen (Wert wird wieder geändert, Timer wird angehalten)

                              Mir wäre jetzt aber nicht bekannt, dass beim Loslassen einer Taste dieses über einen on-Befehl in JS abgefangen werden könnte.
                              Bin ich jetzt total auf dem Holzweg? Wo ist mein Denkfehler?
                              Gruss Ralf

                              mickymM paul53P 2 Antworten Letzte Antwort
                              0
                              • D derrapf

                                @mickym
                                Vielen Dank auch an Paul
                                Aber dann muss ich mal blöd fragen. (Vielleicht hab ich den Befehl bisher falsch verstanden)

                                on(idTaste, function(dp) {
                                }
                                

                                wird doch getriggert wenn ich einen Taster drücke bzw. wenn sich ein Datenpunkt ändert (z.B. von true auf false, oder von 20 auf 21 oder von "dings" auf "bums")

                                Ein Taster kann auch ein VIS Widget sein.
                                Bisher dachte ich dass "Taster" bedeutet dass beim Drücken des physischen-, als auch des VIS-Tasters ein Wert in einen Datenpunkt geschrieben, dieser also geändert wird. Das ist im Grunde eine Variablen-Zuweisung.
                                Der Schalter wird also kurz gedrückt und dann wieder losgelassen.

                                Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events für den "on-Befehl" geben: Einmal beim Drücken (Wert wird gesetzt, bzw. Timer läuft los) und dann nochmal beim Loslassen (Wert wird wieder geändert, Timer wird angehalten)

                                Mir wäre jetzt aber nicht bekannt, dass beim Loslassen einer Taste dieses über einen on-Befehl in JS abgefangen werden könnte.
                                Bin ich jetzt total auf dem Holzweg? Wo ist mein Denkfehler?
                                Gruss Ralf

                                mickymM Offline
                                mickymM Offline
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von
                                #18

                                @derrapf Genau das Skript wird nur beim Wechsel getriggert von true auf false oder umgekehrt.

                                Nun frägt er ab:

                                if(dp.state.val)
                                

                                wenn der Datenpunkt true ist, dann wird über

                                zyklus = setInterval(function() {
                                         // Laustärke erhöhen
                                      }, 250);
                                

                                übder das Zyklus Objekt alle 250 ms ein Trigger /Timer gestartet und ausgeführt. Also kommen da die HTTP Befehle rein

                                ist

                                if(dp.state.val)
                                

                                der Datenpunkt falsch wird der Timer gelöscht, der alle 250 ms einen Trigger erzeugt.

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                1 Antwort Letzte Antwort
                                0
                                • D derrapf

                                  @mickym
                                  Vielen Dank auch an Paul
                                  Aber dann muss ich mal blöd fragen. (Vielleicht hab ich den Befehl bisher falsch verstanden)

                                  on(idTaste, function(dp) {
                                  }
                                  

                                  wird doch getriggert wenn ich einen Taster drücke bzw. wenn sich ein Datenpunkt ändert (z.B. von true auf false, oder von 20 auf 21 oder von "dings" auf "bums")

                                  Ein Taster kann auch ein VIS Widget sein.
                                  Bisher dachte ich dass "Taster" bedeutet dass beim Drücken des physischen-, als auch des VIS-Tasters ein Wert in einen Datenpunkt geschrieben, dieser also geändert wird. Das ist im Grunde eine Variablen-Zuweisung.
                                  Der Schalter wird also kurz gedrückt und dann wieder losgelassen.

                                  Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events für den "on-Befehl" geben: Einmal beim Drücken (Wert wird gesetzt, bzw. Timer läuft los) und dann nochmal beim Loslassen (Wert wird wieder geändert, Timer wird angehalten)

                                  Mir wäre jetzt aber nicht bekannt, dass beim Loslassen einer Taste dieses über einen on-Befehl in JS abgefangen werden könnte.
                                  Bin ich jetzt total auf dem Holzweg? Wo ist mein Denkfehler?
                                  Gruss Ralf

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

                                  @derrapf sagte: Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events

                                  Es wird bei Änderung in beiden Richtungen (Drücken: false --> true / Loslassen: true --> false) getriggert.

                                  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

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @derrapf sagte: Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events

                                    Es wird bei Änderung in beiden Richtungen (Drücken: false --> true / Loslassen: true --> false) getriggert.

                                    D Offline
                                    D Offline
                                    derrapf
                                    schrieb am zuletzt editiert von
                                    #20

                                    @paul53
                                    Ok!?
                                    Das ist mir dann irgendwie nie aufgefallen. D.h. meine ganzen on... Programmierungen laufen immer zweimal?
                                    Muss ich echt mal checken.
                                    Aber OK. Wenn das so ist müsste ich es hinbringen.
                                    Ich fang mal an zu basteln.

                                    Gruss Ralf

                                    mickymM D 2 Antworten Letzte Antwort
                                    0
                                    • D derrapf

                                      @paul53
                                      Ok!?
                                      Das ist mir dann irgendwie nie aufgefallen. D.h. meine ganzen on... Programmierungen laufen immer zweimal?
                                      Muss ich echt mal checken.
                                      Aber OK. Wenn das so ist müsste ich es hinbringen.
                                      Ich fang mal an zu basteln.

                                      Gruss Ralf

                                      mickymM Offline
                                      mickymM Offline
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #21

                                      @derrapf Das ist doch die Besonderheit bei dem Widget - dass Du es als Taster konfigurieren kannst.

                                      Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events für den "on-Befehl" geben: Einmal beim Drücken (Wert wird gesetzt, bzw. Timer läuft los) und dann nochmal beim Loslassen (Wert wird wieder geändert, Timer wird angehalten)

                                      Als Taster funktioniert es nicht wie ein Schalter oder Switch. Der Schaltet einmal von on auf off etc. Der Taster schalten true (on) solange DU gedrückt hälst und false(off) wenn Du loslässt. Deswegen musst DU ja zwingend dieses Widget nehmen, da nur dieses als Taster konfigurierbar ist.

                                      Es ist also wie bei einem physischen Taster- den Du drückst und der beim Loslassen wieder in die Grundposition springt und nicht wie bei Schalter der in der Position bleibt den Du zuletzt gedrückt hast.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      D 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @derrapf Das ist doch die Besonderheit bei dem Widget - dass Du es als Taster konfigurieren kannst.

                                        Wenn das oben funktionieren soll, dann müsste es zwei Trigger-Events für den "on-Befehl" geben: Einmal beim Drücken (Wert wird gesetzt, bzw. Timer läuft los) und dann nochmal beim Loslassen (Wert wird wieder geändert, Timer wird angehalten)

                                        Als Taster funktioniert es nicht wie ein Schalter oder Switch. Der Schaltet einmal von on auf off etc. Der Taster schalten true (on) solange DU gedrückt hälst und false(off) wenn Du loslässt. Deswegen musst DU ja zwingend dieses Widget nehmen, da nur dieses als Taster konfigurierbar ist.

                                        Es ist also wie bei einem physischen Taster- den Du drückst und der beim Loslassen wieder in die Grundposition springt und nicht wie bei Schalter der in der Position bleibt den Du zuletzt gedrückt hast.

                                        D Offline
                                        D Offline
                                        derrapf
                                        schrieb am zuletzt editiert von
                                        #22

                                        @mickym @paul53
                                        Tatsache
                                        Eben schnell mal ausprobiert. Der Datenpunkt geht auf true, bleibt dort bis ich die Taste wieder loslassen und geht dann auf false.
                                        Dann mach ich das jetzt genau so mit dem Timer wie ihr das vorgeschlagen habt.
                                        Das ist super.
                                        Danke ihr beiden
                                        Gruss Ralf

                                        mickymM 1 Antwort Letzte Antwort
                                        0
                                        • D derrapf

                                          @mickym @paul53
                                          Tatsache
                                          Eben schnell mal ausprobiert. Der Datenpunkt geht auf true, bleibt dort bis ich die Taste wieder loslassen und geht dann auf false.
                                          Dann mach ich das jetzt genau so mit dem Timer wie ihr das vorgeschlagen habt.
                                          Das ist super.
                                          Danke ihr beiden
                                          Gruss Ralf

                                          mickymM Offline
                                          mickymM Offline
                                          mickym
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #23

                                          @derrapf Und wenn Du zwischen Long und Short Press nicht unterscheiden musst, kannst Du solange der Datenpunkt auf true ist Deine HTTP Requests über den Timer rausballern

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                          D 1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          462

                                          Online

                                          32.8k

                                          Benutzer

                                          82.8k

                                          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