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. [gelöst] Dimmer: Auf Leveländerung erst triggern, wenn sich der Wert nicht mehr ändert?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    126

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 3 Kommentatoren 1.0k Aufrufe
  • Ä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.
  • T Offline
    T Offline
    tapir
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      tapir
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tapir
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tapir
              schrieb am zuletzt editiert von
              #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 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

              400

              Online

              32.5k

              Benutzer

              81.7k

              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