Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Skripten / Logik
  4. JavaScript
  5. [gelöst] up/Down Dimmen über einen Taster

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    707

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst] up/Down Dimmen über einen Taster

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 2 Kommentatoren 540 Aufrufe 5 Watching
  • Ä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.
  • M Offline
    M Offline
    mctom
    schrieb am zuletzt editiert von mctom
    #1

    Hallo zusammen,

    ich bastel gerade an einem Script, dass mir das Dimmen einer Lampe über gedrückten Taster (Homematic) ermöglichen soll.
    So lange der Taster gehalten wird, wird ein Datenpunkt immer wieder aktualisiert. Ich habe es soweit geschafft, dass dann auch hoch oder runter gedimmt wird.
    Jetzt möchte ich gerne noch, dass wenn der Taster losgelassen wird und erneut gedrückt wird die Richtung geändert wird.

    Hier ein Auszug aus meinem Script:

    function lichtfinn1dim() {
        
        if (down){
            setState(idLichtFinn1dim, getState(idLichtFinn1dim).val - 15);
        }
        
        else
        {
            setState(idLichtFinn1dim, getState(idLichtFinn1dim).val + 15);
        }
    };
    
    
    on({id: idTasterFinn + ".2.PRESS_CONT", change: "any"}, function (obj) {
        if(obj.state.val) {
            if(timerpause) clearTimeout(timerpause);
            timerdimm = setInterval(lichtfinn1dim, 200);
            }
            else { // Loslassen
            clearInterval(timerdimm);
            down = !down;
            timerpause = setTimeout(function() {down = !down}, 1000);
          }
       });
    

    Wenn ich jetzt drückt wird das licht Heller. Aber nach einem erneuten drücken wird es nicht dunkler. Hat jemand einen Tipp was ich machen kann ?

    Kann es sein, dass es daran liegt, dass der Datenpunkt immer auf true steht und nur aktualisiert wird?
    Dann ist bestimmt dieser Teil nicht korrekt:

    if(obj.state.val) {
    

    Vielen Dank

    paul53P 1 Antwort Letzte Antwort
    0
    • M mctom

      Hallo zusammen,

      ich bastel gerade an einem Script, dass mir das Dimmen einer Lampe über gedrückten Taster (Homematic) ermöglichen soll.
      So lange der Taster gehalten wird, wird ein Datenpunkt immer wieder aktualisiert. Ich habe es soweit geschafft, dass dann auch hoch oder runter gedimmt wird.
      Jetzt möchte ich gerne noch, dass wenn der Taster losgelassen wird und erneut gedrückt wird die Richtung geändert wird.

      Hier ein Auszug aus meinem Script:

      function lichtfinn1dim() {
          
          if (down){
              setState(idLichtFinn1dim, getState(idLichtFinn1dim).val - 15);
          }
          
          else
          {
              setState(idLichtFinn1dim, getState(idLichtFinn1dim).val + 15);
          }
      };
      
      
      on({id: idTasterFinn + ".2.PRESS_CONT", change: "any"}, function (obj) {
          if(obj.state.val) {
              if(timerpause) clearTimeout(timerpause);
              timerdimm = setInterval(lichtfinn1dim, 200);
              }
              else { // Loslassen
              clearInterval(timerdimm);
              down = !down;
              timerpause = setTimeout(function() {down = !down}, 1000);
            }
         });
      

      Wenn ich jetzt drückt wird das licht Heller. Aber nach einem erneuten drücken wird es nicht dunkler. Hat jemand einen Tipp was ich machen kann ?

      Kann es sein, dass es daran liegt, dass der Datenpunkt immer auf true steht und nur aktualisiert wird?
      Dann ist bestimmt dieser Teil nicht korrekt:

      if(obj.state.val) {
      

      Vielen Dank

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

      @mctom Wenn die Variable down in mehreren Funktionen verwendet wird, muss sie global (außerhalb der Funktionen) deklariert werden oder der Wert muss an die aufgerufene Funktion übergeben werden.

      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

      1 Antwort Letzte Antwort
      1
      • M Offline
        M Offline
        mctom
        schrieb am zuletzt editiert von
        #3

        Hi, danke für deine Info.
        Die variable hab eich außerhalb deklariert. Hatte es nur nicht mir hier rein kopiert.

        paul53P 1 Antwort Letzte Antwort
        0
        • M mctom

          Hi, danke für deine Info.
          Die variable hab eich außerhalb deklariert. Hatte es nur nicht mir hier rein kopiert.

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

          @mctom Bevor wir rumrätseln, wie sich PRESS_CONT verhält, logge den Datenpunkt bei jeder Aktualisierung.

          on({id: idTasterFinn + ".2.PRESS_CONT"}, function (obj) {
             log('PRESS_CONT: ' + obj.state.val);
          });
          

          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

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mctom
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in Dimmen über ein Taster:

            on({id: idTasterFinn + ".2.PRESS_CONT"}, function (obj) { log('PRESS_CONT: ' + obj.state.val); });

            Danke für deine Hilfe.
            Hier das Log File:

            2019-03-30 07:45:36.901 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:37.105 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:37.368 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:37.629 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:37.872 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:38.126 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:38.411 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:38.634 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:38.871 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:39.138 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:39.385 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            2019-03-30 07:45:39.640 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
            
            paul53P 1 Antwort Letzte Antwort
            0
            • M mctom

              @paul53 sagte in Dimmen über ein Taster:

              on({id: idTasterFinn + ".2.PRESS_CONT"}, function (obj) { log('PRESS_CONT: ' + obj.state.val); });

              Danke für deine Hilfe.
              Hier das Log File:

              2019-03-30 07:45:36.901 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:37.105 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:37.368 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:37.629 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:37.872 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:38.126 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:38.411 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:38.634 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:38.871 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:39.138 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:39.385 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              2019-03-30 07:45:39.640 - info: javascript.2 script.js.Test.Test_Taster: PRESS_CONT: true
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #6

              @mctom Das Log zeigt, dass während eines langen Tastendrucks alle ca. 250 ms eine Aktualisierung erfolgt und der Wert true bleibt. Damit ist eine Abfrage

              if(obj.state.val) { 
              

              sinnlos und man kann sich das Intervall sparen, denn das liefert der Datenpunkt.

              on({id: idTasterFinn + ".2.PRESS_CONT"}, function () {
                 lichtfinn1dim();
                 if(timerpause) clearTimeout(timerpause);
                 timerpause = setTimeout(function() {
                    down = !down;
                    timerpause = null;
                 }, 600);
              });
              

              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

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                mctom
                schrieb am zuletzt editiert von
                #7

                Es funktioniert. Vielen Dank fūr deine Hilfe.

                paul53P 1 Antwort Letzte Antwort
                0
                • M mctom

                  Es funktioniert. Vielen Dank fūr deine Hilfe.

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

                  @mctom sagte:

                  Es funktioniert.

                  Dann markiere bitte das Thema als [gelöst].

                  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

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  503

                  Online

                  32.6k

                  Benutzer

                  82.0k

                  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