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. JavaScript
  5. Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?

Scheduled Pinned Locked Moved JavaScript
4 Posts 3 Posters 386 Views 2 Watching
  • 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.
  • O Offline
    O Offline
    olterion
    wrote on last edited by olterion
    #1

    Hallo,

    ich ahbe ein Script schon länger am laufen und nach einem Update des javascript Adapters scheint es so, dass sich am Verhalten der "on" Funktion etwas geändert hat.

    In der Hilfe ist folgendes beschrieben:
    on -> change -> "ne" -> (not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by default

    Nun wird aber eine on Funktion immer wieder ausgeführt, obwohl die value von mqtt.0.sensor sich nicht ändert (immer value=false)

    on({id: 'mqtt.0.sensor'}, function(){ 
      log("testausgabe");
    })
    

    Ich muss nun folgendes schreiben, damit das Verhalten passt:

    on({id: 'mqtt.0.sensor', change: 'ne'}, function(){ 
       log("testausgabe");
    })
    

    Vorher hat die Funktion so gearbeitet wie sie soll.
    Gibt es einen bekannten Fehler, der dieses Verhalten beschreibt, oder ist die Doku veraltet oder habe ich einen Denk-/Verständnisfehler?

    Grüße,
    Olli

    haus-automatisierungH paul53P 2 Replies Last reply
    0
    • O olterion

      Hallo,

      ich ahbe ein Script schon länger am laufen und nach einem Update des javascript Adapters scheint es so, dass sich am Verhalten der "on" Funktion etwas geändert hat.

      In der Hilfe ist folgendes beschrieben:
      on -> change -> "ne" -> (not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by default

      Nun wird aber eine on Funktion immer wieder ausgeführt, obwohl die value von mqtt.0.sensor sich nicht ändert (immer value=false)

      on({id: 'mqtt.0.sensor'}, function(){ 
        log("testausgabe");
      })
      

      Ich muss nun folgendes schreiben, damit das Verhalten passt:

      on({id: 'mqtt.0.sensor', change: 'ne'}, function(){ 
         log("testausgabe");
      })
      

      Vorher hat die Funktion so gearbeitet wie sie soll.
      Gibt es einen bekannten Fehler, der dieses Verhalten beschreibt, oder ist die Doku veraltet oder habe ich einen Denk-/Verständnisfehler?

      Grüße,
      Olli

      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      wrote on last edited by haus-automatisierung
      #2

      @olterion Log mal die Werte die reinkommen.

      EDIT: Falsch verstanden. @paul53 hat Recht. "any" war schon immer der Standard wenn man ein Objekt übergibt. Gern ein Downgrade auf eine ältere Version machen - da wird das Verhalten genauso sein.

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      1 Reply Last reply
      0
      • O olterion

        Hallo,

        ich ahbe ein Script schon länger am laufen und nach einem Update des javascript Adapters scheint es so, dass sich am Verhalten der "on" Funktion etwas geändert hat.

        In der Hilfe ist folgendes beschrieben:
        on -> change -> "ne" -> (not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by default

        Nun wird aber eine on Funktion immer wieder ausgeführt, obwohl die value von mqtt.0.sensor sich nicht ändert (immer value=false)

        on({id: 'mqtt.0.sensor'}, function(){ 
          log("testausgabe");
        })
        

        Ich muss nun folgendes schreiben, damit das Verhalten passt:

        on({id: 'mqtt.0.sensor', change: 'ne'}, function(){ 
           log("testausgabe");
        })
        

        Vorher hat die Funktion so gearbeitet wie sie soll.
        Gibt es einen bekannten Fehler, der dieses Verhalten beschreibt, oder ist die Doku veraltet oder habe ich einen Denk-/Verständnisfehler?

        Grüße,
        Olli

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #3

        @olterion sagte: Nun wird aber eine on Funktion immer wieder ausgeführt

        Das war schon immer so. Aus der Doku:

        Notice: Please note, that by default "change" is equal to "any", except when only id as string is set (like on('id', () => {});). In last case change will be set to "ne".

        @olterion sagte in Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?:

        Ich muss nun folgendes schreiben, damit das Verhalten passt:

        Du kannst auch schreiben, damit nur bei Wertänderung getriggert wird:

        on('mqtt.0.sensor', function(){ 
          log("testausgabe");
        });
        

        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

        O 1 Reply Last reply
        1
        • paul53P paul53

          @olterion sagte: Nun wird aber eine on Funktion immer wieder ausgeführt

          Das war schon immer so. Aus der Doku:

          Notice: Please note, that by default "change" is equal to "any", except when only id as string is set (like on('id', () => {});). In last case change will be set to "ne".

          @olterion sagte in Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?:

          Ich muss nun folgendes schreiben, damit das Verhalten passt:

          Du kannst auch schreiben, damit nur bei Wertänderung getriggert wird:

          on('mqtt.0.sensor', function(){ 
            log("testausgabe");
          });
          
          O Offline
          O Offline
          olterion
          wrote on last edited by
          #4

          @paul53
          Vielen Dank, also hatte ich ja doch etwas falsch verstanden.

          Habe es nun ohne "id:{..}" eingebaut, wie du geschrieben hast und die Funktion wird auch ohne "change: 'ne'" nicht immer wieder ausgeführt.

          Vielen Dank für die schnelle Hilfe!

          Grüße,
          Olli

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          315

          Online

          32.5k

          Users

          81.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