Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Dimmer: Auf Leveländerung erst triggern, wenn sich der Wert nicht mehr ändert?

NEWS

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

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

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

[gelöst] Dimmer: Auf Leveländerung erst triggern, wenn sich der Wert nicht mehr ändert?

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 3 Posters 1.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tapir
    wrote on last edited by
    #1

    Hallo,

    mir ist aufgefallen, dass ein Trigger, wie

     on({id: "hmxxx.LEVEL", change: "ne"}, function(obj) { ... });
    ````meistens zweimal triggert, wenn z.B. ein Dimmer hoch oder runter fährt.
    
    Jedenfalls suche ich eine Lösung mit dem on-Trigger, der erst auslöst, wenn der Dimmer sich nicht mehr über die Zeit ändert (seinen Einstellwert erreicht hat).
    
    Dabei ist auch zu beachten, dass ein Dimmer per Hand gesteuert werden kann.
    
    Das gleiche wäre für den Selektor interessant:
    

    var cacheSelectorDimmer = $('channelstate.id=*.LEVEL');
    cacheSelectorDimmer.on(function(obj) { ..... });

    
    Gibt es da ideen?
    1 Reply Last reply
    0
    • T Offline
      T Offline
      tapir
      wrote on last edited by
      #2

      Also, die Variante mit dem on-Trigger habe ich gelöst:

      on({id: "hmxxx.DIRECTION", change: "any", val: 0, logic: "and"}, function(obj) 
      {
          console.log("Dimmen beendet: " + obj.newState.val);
      });
      
      

      Aber wie baue ich die Parameter change: "any", val: 0, logic: "and" in den Selector ein. :?:

      var cacheSelectorDimmer = $('channel[state.id=*.DIRECTION](functions=xxxx)');
      cacheSelectorDimmer.on(function(obj) { ..... }); 
      ````Der benutzt doch auch die on-Funktion. Ich habe aber bisher kein Beispiel gesehen, bei dem die Triggerbedingung geändert wurde.
      
      Geht das irgendwie?
      1 Reply Last reply
      0
      • apollon77A Offline
        apollon77A Offline
        apollon77
        wrote on last edited by
        #3

        Am Ende ist die einzige Lösung in meinen Augen die Folgende:

        Man muss mit nem "Delay" arbeiten.

        Also das "on" setzt einen Timeout (setTimeout) z.B. in 1 Sekunde oder welches Delay auch immer sinnvoll ist. Dann wird die eigentliche Aktion ausgeführt.

        Falls ein zweiter Trigger vor ablauf des Timeouts kommt dann wird der bestehende Timeout gelöscht (clearTimeout) und wieder neu gesetzt. dann läuft es wieder los …

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Reply Last reply
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          wrote on last edited by
          #4

          @tapir:

          Also, die Variante mit dem on-Trigger habe ich gelöst:

          on({id: "hmxxx.DIRECTION", change: "any", val: 0, logic: "and"}, function(obj) 
          {
              console.log("Dimmen beendet: " + obj.newState.val);
          });
          
          

          Aber wie baue ich die Parameter change: "any", val: 0, logic: "and" in den Selector ein. :?:

          var cacheSelectorDimmer = $('channel[state.id=*.DIRECTION](functions=xxxx)');
          cacheSelectorDimmer.on(function(obj) { ..... }); 
          ````Der benutzt doch auch die on-Funktion. Ich habe aber bisher kein Beispiel gesehen, bei dem die Triggerbedingung geändert wurde.
          
          Geht das irgendwie? `  
          

          Mit RegExp geht es:

          on({id: /^hm-rpc\.[.:\w\d-]+\.DIRECTION$/, change: "any", val: 0, logic: "and"}, function(obj) 
          {
              console.log("Dimmen beendet: " + obj.newState.val);
          });
          
          1 Reply Last reply
          0
          • T Offline
            T Offline
            tapir
            wrote on last edited by
            #5

            Danke für die Antworten.

            Die Lösung von bluefox habe ich getestet und sie ist fast perfekt.

            Beim Selector ist die Abfrage noch auf eine bestimmte Aufzählung in den Gewerken begrenzt:

            var cacheSelectorDimmer = $('channelstate.id=*.DIRECTION');

            Ist das auch in RegExp umsetzbar?

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tapir
              wrote on last edited by
              #6

              Habs rausgefunden :idea:

              Der on-Trigger wird mit dem Parameter für das Gewerk erweitert:

              on({id: /^hm-rpc\.[.:\w\d-]+\.DIRECTION$/, change: "any", val: 0, enumName: "triggerDim", logic: "and"}, function(obj) 
              {
                  console.log("Dimmen beendet: " + obj.newState.val);
              });
              
              

              Meine nächste Baustelle lautet RegExp :!:

              Nochmals danke !!!

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              462

              Online

              32.8k

              Users

              82.7k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe