Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Javascript v8.3.1 "on" Funktion immer mit "change: 'ne'"?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      olterion last edited by 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-automatisierung paul53 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @olterion last edited by haus-automatisierung

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

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @olterion last edited by 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 1 Reply Last reply Reply Quote 1
          • O
            olterion @paul53 last edited by

            @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 Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            637
            Online

            31.6k
            Users

            79.6k
            Topics

            1.3m
            Posts

            3
            4
            223
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo