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. setStateChanged überschreibt gleichen Wert

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

setStateChanged überschreibt gleichen Wert

Scheduled Pinned Locked Moved JavaScript
5 Posts 3 Posters 398 Views 3 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
    #1

    Hallo,

    ich würde gerne einen gleichen Wert nicht überschreiben, wenn setState ausgeführt wird.

    Dies ist natürlich über folgende Abfrage möglich:

    function test(){
       if(getState('myState').val != false){
          setState('myState', false);
       }
    }
    

    Ich habe in der JavaScript Doku folgende Funktion gefunden:
    setStateChanged

    Wenn ich dann allerdings diese Funktion nutze, wird beim Aufruf der Funktion "test" trotzdem der Wert false erneut geschrieben.

    function test(){
       setStateChanged('myState', false);
    }
    

    Mache ich irgendwas falsch? Ist die Funktion dafür nicht geeignet?

    Grüße,
    Olli

    paul53P 1 Reply Last reply
    0
    • O olterion

      Hallo,

      ich würde gerne einen gleichen Wert nicht überschreiben, wenn setState ausgeführt wird.

      Dies ist natürlich über folgende Abfrage möglich:

      function test(){
         if(getState('myState').val != false){
            setState('myState', false);
         }
      }
      

      Ich habe in der JavaScript Doku folgende Funktion gefunden:
      setStateChanged

      Wenn ich dann allerdings diese Funktion nutze, wird beim Aufruf der Funktion "test" trotzdem der Wert false erneut geschrieben.

      function test(){
         setStateChanged('myState', false);
      }
      

      Mache ich irgendwas falsch? Ist die Funktion dafür nicht geeignet?

      Grüße,
      Olli

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

      @olterion sagte: trotzdem der Wert false erneut geschrieben.

      Gerade getestet: Es wird nur dann nicht aktualisiert, wenn sowohl der Wert als auch die Bestätigung übereinstimmen. Das macht natürlich bei Adapter-Datenpunkten keinen Sinn.

      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

      mcm1957M 1 Reply Last reply
      0
      • paul53P paul53

        @olterion sagte: trotzdem der Wert false erneut geschrieben.

        Gerade getestet: Es wird nur dann nicht aktualisiert, wenn sowohl der Wert als auch die Bestätigung übereinstimmen. Das macht natürlich bei Adapter-Datenpunkten keinen Sinn.

        mcm1957M Online
        mcm1957M Online
        mcm1957
        wrote on last edited by
        #3

        setStateChanged prüft alle Attribute (val, ack, q, expire, from, user, ...) und aktualisiert nur dann nicht, wenn es KEINE Änderung in irgendeinem Attribut gibt.

        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
        Support Repositoryverwaltung.

        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

        LESEN - gute Forenbeitrage

        1 Reply Last reply
        1
        • O Offline
          O Offline
          olterion
          wrote on last edited by
          #4

          Hallo,

          vielen Dank für die Erläuterungen.
          Ich versuche tatsächlich einen Datenpunkt eines Adapters zu beschreiben.
          Dieser setzt dann natürlich den ack immer auf true, wenn er die Daten verarbeitet hat.

          Schade, die Dokumentation sagt ja aus, dass der Datenpunkt nur geschrieben wird, wenn die VALUE (val) sich geändert hat:

          Same as setState, but set value only if the value is really changed.

          An der Stelle ist die Dokumentation dann wohl nicht ganz korrekt.

          @Bluefox könnte man die Funktion setStateChanged nicht so erweitern, dass man angeben kann, welche Attribute betrachtet werden sollen? (in meinem Fall würde der Vergleich von val ausreichen)

          Grüße,
          Olli

          mcm1957M 1 Reply Last reply
          0
          • O olterion

            Hallo,

            vielen Dank für die Erläuterungen.
            Ich versuche tatsächlich einen Datenpunkt eines Adapters zu beschreiben.
            Dieser setzt dann natürlich den ack immer auf true, wenn er die Daten verarbeitet hat.

            Schade, die Dokumentation sagt ja aus, dass der Datenpunkt nur geschrieben wird, wenn die VALUE (val) sich geändert hat:

            Same as setState, but set value only if the value is really changed.

            An der Stelle ist die Dokumentation dann wohl nicht ganz korrekt.

            @Bluefox könnte man die Funktion setStateChanged nicht so erweitern, dass man angeben kann, welche Attribute betrachtet werden sollen? (in meinem Fall würde der Vergleich von val ausreichen)

            Grüße,
            Olli

            mcm1957M Online
            mcm1957M Online
            mcm1957
            wrote on last edited by
            #5

            Zu dem Thema gibts ein Issue
            https://github.com/ioBroker/ioBroker.javascript/issues/1720

            Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
            Support Repositoryverwaltung.

            Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

            LESEN - gute Forenbeitrage

            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

            742

            Online

            32.6k

            Users

            82.2k

            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