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] Wert wird in State geschrieben

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Wert wird in State geschrieben

Scheduled Pinned Locked Moved Skripten / Logik
21 Posts 3 Posters 1.6k 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    wrote on last edited by Ben1983
    #1

    Hallo, ich wollte mir gerade ein Script bauen, was mir ein JSON aufsetzt.
    Dabei hatte ich vergessen, in den State zu schreiben.... aber trotzdem schreibt er es rein,
    weiß jemand warum?

    const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
    
    function addElement(what){
        const jsonLog = getState(idJsonLog).val;
        log(JSON.stringify(getState(idJsonLog).val));
        let mydate = new Date(Date.now());
        let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
        jsonLog.unshift(element);
        log(JSON.stringify(getState(idJsonLog).val));
    }
    
    addElement("erstes");
    addElement("zweites");
    addElement("drittes");
    
    log(JSON.stringify(getState(idJsonLog).val));
    

    das ergibt folgenden Log:

    javascript.0 (15798) script.js.x_testskripte.arraypushen: [{"Zeitstempel":"19.9.2023, 08:33:03","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:33:03","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:33:03","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:32:53","Was":"Das war schon drin"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:32:20","Was":"Das war schon drin"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:31:03","Was":"Das war schon drin"}]
    
    CodierknechtC 1 Reply Last reply
    0
    • Ben1983B Ben1983

      Hallo, ich wollte mir gerade ein Script bauen, was mir ein JSON aufsetzt.
      Dabei hatte ich vergessen, in den State zu schreiben.... aber trotzdem schreibt er es rein,
      weiß jemand warum?

      const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
      
      function addElement(what){
          const jsonLog = getState(idJsonLog).val;
          log(JSON.stringify(getState(idJsonLog).val));
          let mydate = new Date(Date.now());
          let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
          jsonLog.unshift(element);
          log(JSON.stringify(getState(idJsonLog).val));
      }
      
      addElement("erstes");
      addElement("zweites");
      addElement("drittes");
      
      log(JSON.stringify(getState(idJsonLog).val));
      

      das ergibt folgenden Log:

      javascript.0 (15798) script.js.x_testskripte.arraypushen: [{"Zeitstempel":"19.9.2023, 08:33:03","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:33:03","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:33:03","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:32:53","Was":"Das war schon drin"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:32:32","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:32:20","Was":"Das war schon drin"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"drittes"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"zweites"},{"Zeitstempel":"19.9.2023, 08:31:19","Was":"erstes"},{"Zeitstempel":"19.9.2023, 08:31:03","Was":"Das war schon drin"}]
      
      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      wrote on last edited by Codierknecht
      #2

      @ben1983 sagte in Wert wird in State geschrieben:

      "Das war schon drin"

      Ich sehe im Code nirgends ein "Das war schon drin".
      Läuft da noch ein anderes Script?
      Instanz mal neu gestartet?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      Ben1983B 3 Replies Last reply
      0
      • CodierknechtC Codierknecht

        @ben1983 sagte in Wert wird in State geschrieben:

        "Das war schon drin"

        Ich sehe im Code nirgends ein "Das war schon drin".
        Läuft da noch ein anderes Script?
        Instanz mal neu gestartet?

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        wrote on last edited by
        #3

        @codierknecht Nein, dass hatte ich schon drin stehen.. ich kann nochmal was machen. moment.

        1 Reply Last reply
        0
        • CodierknechtC Codierknecht

          @ben1983 sagte in Wert wird in State geschrieben:

          "Das war schon drin"

          Ich sehe im Code nirgends ein "Das war schon drin".
          Läuft da noch ein anderes Script?
          Instanz mal neu gestartet?

          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          wrote on last edited by
          #4

          @codierknecht Ausgangspunkt ist:
          State bist komplett leer.

          const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
          setState(idJsonLog,[],true);
          
          function addElement(what){
              let jsonLog = getState(idJsonLog).val;
              let mydate = new Date(Date.now());
              let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
              jsonLog.unshift(element);
          }
          
          addElement("erstes");
          addElement("zweites");
          addElement("drittes");
          
          
          log(JSON.stringify(getState(idJsonLog).val));
          

          ergibt log:

          	javascript.0 (15798) script.js.x_testskripte.arraypushen: [{"Zeitstempel":"19.9.2023, 09:10:33","Was":"drittes"},{"Zeitstempel":"19.9.2023, 09:10:33","Was":"zweites"},{"Zeitstempel":"19.9.2023, 09:10:33","Was":"erstes"}]
          

          im state steht genau das Array mit den JSON elementen drin.
          Warum? Ich schreibe die doch nirgends.

          Wenn ich die Zeile:

          setState(idJsonLog,[],true);
          

          vorher ausführe, dann aus dem Script heraus nehme, dann geht es auch, allerdings steht im state dann nur [] der log allerdigns bleibt gleich.
          Ich frage mich halt, warum überhaupt was im state steht. ich schreibe ja nichts rein, außer am anfang [].

          Ohne dass ich [] rein schreibe geht gar nichts

          CodierknechtC 1 Reply Last reply
          0
          • Ben1983B Ben1983

            @codierknecht Ausgangspunkt ist:
            State bist komplett leer.

            const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
            setState(idJsonLog,[],true);
            
            function addElement(what){
                let jsonLog = getState(idJsonLog).val;
                let mydate = new Date(Date.now());
                let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
                jsonLog.unshift(element);
            }
            
            addElement("erstes");
            addElement("zweites");
            addElement("drittes");
            
            
            log(JSON.stringify(getState(idJsonLog).val));
            

            ergibt log:

            	javascript.0 (15798) script.js.x_testskripte.arraypushen: [{"Zeitstempel":"19.9.2023, 09:10:33","Was":"drittes"},{"Zeitstempel":"19.9.2023, 09:10:33","Was":"zweites"},{"Zeitstempel":"19.9.2023, 09:10:33","Was":"erstes"}]
            

            im state steht genau das Array mit den JSON elementen drin.
            Warum? Ich schreibe die doch nirgends.

            Wenn ich die Zeile:

            setState(idJsonLog,[],true);
            

            vorher ausführe, dann aus dem Script heraus nehme, dann geht es auch, allerdings steht im state dann nur [] der log allerdigns bleibt gleich.
            Ich frage mich halt, warum überhaupt was im state steht. ich schreibe ja nichts rein, außer am anfang [].

            Ohne dass ich [] rein schreibe geht gar nichts

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            wrote on last edited by
            #5

            @ben1983
            Hast Du die Javascript-Instanz mal neu gestartet?
            Möglich, dass da noch alter Code im Speicher hängengeblieben ist.

            Oder eben ein anderes Script, dass da im Hintergrund Dinge in den State schreibt.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            Ben1983B 1 Reply Last reply
            0
            • CodierknechtC Codierknecht

              @ben1983 sagte in Wert wird in State geschrieben:

              "Das war schon drin"

              Ich sehe im Code nirgends ein "Das war schon drin".
              Läuft da noch ein anderes Script?
              Instanz mal neu gestartet?

              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              wrote on last edited by
              #6

              @codierknecht

              es muss irgendwas mit der Zeile hier zu tun haben:

              let jsonLog = getState(idJsonLog).val;
              

              ist die nicht so drin, dann schreibt er nichts.
              Ist das irgendwie ne referenz, die er da zuweist?

              paul53P 1 Reply Last reply
              0
              • CodierknechtC Codierknecht

                @ben1983
                Hast Du die Javascript-Instanz mal neu gestartet?
                Möglich, dass da noch alter Code im Speicher hängengeblieben ist.

                Oder eben ein anderes Script, dass da im Hintergrund Dinge in den State schreibt.

                Ben1983B Offline
                Ben1983B Offline
                Ben1983
                wrote on last edited by
                #7

                @codierknecht Ja habe neu gestartet.
                Ein Anderes Script kann nicht sein, da ich den Datenpunkt nur für den Zweck zum Testen angelegt habe

                CodierknechtC 1 Reply Last reply
                0
                • Ben1983B Ben1983

                  @codierknecht Ja habe neu gestartet.
                  Ein Anderes Script kann nicht sein, da ich den Datenpunkt nur für den Zweck zum Testen angelegt habe

                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  wrote on last edited by
                  #8

                  @ben1983
                  Welchen Typ hat der DP?
                  Ich versuche das mal nachzustellen.

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  CodierknechtC 1 Reply Last reply
                  0
                  • CodierknechtC Codierknecht

                    @ben1983
                    Welchen Typ hat der DP?
                    Ich versuche das mal nachzustellen.

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    wrote on last edited by
                    #9

                    @Ben1983
                    Da wird offensichtlich tatsächlich eine Referenz übergeben.
                    Ich habe den DP mal als Typ "JSON" angelegt.

                    Das unshift verändert direkt den DP - auch ohne dass man explizit mit setState reinschreibt.
                    Lässt man das weg, wird auch nix geschrieben.

                    Ich muss aber gestehen: JS ist nicht meine Kernkompetenz ;-)

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    Ben1983B 1 Reply Last reply
                    0
                    • CodierknechtC Codierknecht

                      @Ben1983
                      Da wird offensichtlich tatsächlich eine Referenz übergeben.
                      Ich habe den DP mal als Typ "JSON" angelegt.

                      Das unshift verändert direkt den DP - auch ohne dass man explizit mit setState reinschreibt.
                      Lässt man das weg, wird auch nix geschrieben.

                      Ich muss aber gestehen: JS ist nicht meine Kernkompetenz ;-)

                      Ben1983B Offline
                      Ben1983B Offline
                      Ben1983
                      wrote on last edited by
                      #10

                      @codierknecht

                      Ich habe es so gemacht.
                      Also nicht direkt das getstate einer Variablen übergeben,
                      sondern mit JSON.parse zugewiesen.
                      Dann schreibt er nichts, außer man macht wirklich das setstate.
                      Allerdings hat es anders auch seinen charme. man muss es nur wissen.

                      const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
                      function addElement(what){
                          let jsonLog = [];
                          try{
                              jsonLog = JSON.parse(getState(idJsonLog).val);
                          }
                          catch(error){
                              log(error);
                          }
                          if(typeof(jsonLog) !== "object"){
                              jsonLog = [];
                          }
                          let mydate = new Date(Date.now());
                          let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
                          jsonLog.unshift(element);
                          setState(idJsonLog,JSON.stringify(jsonLog),true);
                      }
                      
                      addElement("erstes");
                      addElement("zweites");
                      addElement("drittes");
                      
                      
                      log(JSON.stringify(getState(idJsonLog).val));
                      
                      paul53P 1 Reply Last reply
                      1
                      • Ben1983B Ben1983

                        @codierknecht

                        Ich habe es so gemacht.
                        Also nicht direkt das getstate einer Variablen übergeben,
                        sondern mit JSON.parse zugewiesen.
                        Dann schreibt er nichts, außer man macht wirklich das setstate.
                        Allerdings hat es anders auch seinen charme. man muss es nur wissen.

                        const idJsonLog = "0_userdata.0.TestJSON.MeinJSON";
                        function addElement(what){
                            let jsonLog = [];
                            try{
                                jsonLog = JSON.parse(getState(idJsonLog).val);
                            }
                            catch(error){
                                log(error);
                            }
                            if(typeof(jsonLog) !== "object"){
                                jsonLog = [];
                            }
                            let mydate = new Date(Date.now());
                            let element = {Zeitstempel:mydate.toLocaleString(), Was:what};
                            jsonLog.unshift(element);
                            setState(idJsonLog,JSON.stringify(jsonLog),true);
                        }
                        
                        addElement("erstes");
                        addElement("zweites");
                        addElement("drittes");
                        
                        
                        log(JSON.stringify(getState(idJsonLog).val));
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        @ben1983 sagte: mit JSON.parse zugewiesen.

                        Der Datenpunkt hatte wohl den falschen Typ? Wäre der Datenpunkt vom Typ "array" gewesen, hätte es der Javascript-Adapter von sich aus gemacht.

                        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

                        Ben1983B 1 Reply Last reply
                        0
                        • paul53P paul53

                          @ben1983 sagte: mit JSON.parse zugewiesen.

                          Der Datenpunkt hatte wohl den falschen Typ? Wäre der Datenpunkt vom Typ "array" gewesen, hätte es der Javascript-Adapter von sich aus gemacht.

                          Ben1983B Offline
                          Ben1983B Offline
                          Ben1983
                          wrote on last edited by
                          #12

                          @paul53 der Datenpunkt ist json

                          paul53P 1 Reply Last reply
                          0
                          • Ben1983B Ben1983

                            @paul53 der Datenpunkt ist json

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

                            @ben1983 sagte: der Datenpunkt ist json

                            Dann muss man die Wandlung in ein Array und zurück im Skript machen.

                            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

                            Ben1983B 1 Reply Last reply
                            0
                            • paul53P paul53

                              @ben1983 sagte: der Datenpunkt ist json

                              Dann muss man die Wandlung in ein Array und zurück im Skript machen.

                              Ben1983B Offline
                              Ben1983B Offline
                              Ben1983
                              wrote on last edited by
                              #14

                              @paul53 ja habe ich ja, alles gut. danke.
                              Es ging nicht darum, sondern darum, dass er den Datenpunkt sonst beschrieben hatte ohne setState

                              1 Reply Last reply
                              0
                              • Ben1983B Ben1983

                                @codierknecht

                                es muss irgendwas mit der Zeile hier zu tun haben:

                                let jsonLog = getState(idJsonLog).val;
                                

                                ist die nicht so drin, dann schreibt er nichts.
                                Ist das irgendwie ne referenz, die er da zuweist?

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

                                @ben1983 sagte: Ist das irgendwie ne referenz, die er da zuweist?

                                Ja, Objekte / Arrays werden als Referenz übergeben. Die Variable jsonLog zeigt in den Zustands-Puffer der Javascript-Instanz.

                                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

                                Ben1983B 1 Reply Last reply
                                0
                                • paul53P paul53

                                  @ben1983 sagte: Ist das irgendwie ne referenz, die er da zuweist?

                                  Ja, Objekte / Arrays werden als Referenz übergeben. Die Variable jsonLog zeigt in den Zustands-Puffer der Javascript-Instanz.

                                  Ben1983B Offline
                                  Ben1983B Offline
                                  Ben1983
                                  wrote on last edited by
                                  #16

                                  @paul53 Ah ok.
                                  Das Bedeutet, wenn ich also einen State vom Typ Array / JSON habe, dann kann ich diesen auslesen, zuweisen und kann direkt im JS damit arbeiten, ohne auf ihn schreiben zu müssen?

                                  Klingt interessant. Ich habe nun zwar die Variante gewählt, in der ich es mir den Wert parse, damit das nicht der Fall ist
                                  (war irgendwie besser zu behandeln, wenn nichts, oder sagen wir "Quatsch" im State stand.

                                  Aber gibts da ne Empfehlung wie man es machen sollte?

                                  paul53P 1 Reply Last reply
                                  0
                                  • Ben1983B Ben1983

                                    @paul53 Ah ok.
                                    Das Bedeutet, wenn ich also einen State vom Typ Array / JSON habe, dann kann ich diesen auslesen, zuweisen und kann direkt im JS damit arbeiten, ohne auf ihn schreiben zu müssen?

                                    Klingt interessant. Ich habe nun zwar die Variante gewählt, in der ich es mir den Wert parse, damit das nicht der Fall ist
                                    (war irgendwie besser zu behandeln, wenn nichts, oder sagen wir "Quatsch" im State stand.

                                    Aber gibts da ne Empfehlung wie man es machen sollte?

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

                                    @ben1983 sagte: ohne auf ihn schreiben zu müssen?

                                    Nein. Die Änderungen finden so nur im Puffer der Javascript-Instanz statt und werden nicht an den js-controller weiter gegeben. Dafür benötigt man setState().
                                    Schreibt man mit setState() ein Array in einen Datenpunkt vom Typ "json", erhält man eine Typ-Warnung. Datenpunkte dürfen keine "echten" Objekte / Arrays enthalten (was früher mal anders war).

                                    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

                                    Ben1983B 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @ben1983 sagte: ohne auf ihn schreiben zu müssen?

                                      Nein. Die Änderungen finden so nur im Puffer der Javascript-Instanz statt und werden nicht an den js-controller weiter gegeben. Dafür benötigt man setState().
                                      Schreibt man mit setState() ein Array in einen Datenpunkt vom Typ "json", erhält man eine Typ-Warnung. Datenpunkte dürfen keine "echten" Objekte / Arrays enthalten (was früher mal anders war).

                                      Ben1983B Offline
                                      Ben1983B Offline
                                      Ben1983
                                      wrote on last edited by
                                      #18

                                      @paul53 OK, ich habe es ja jetzt auch so gemacht, allerdings schreibt er beim ersten durchlauf des scripts, wenn ich vorher den state [] zuweise auch alle Veränderungen des Arrays in den state. nach einem 2.aufuf de sscripts (wenn kein [] mehr zugewiesen wird, dann nicht. (Obwohl die daten drin stehen, wenn man mit getState den datenpunkt ausliest.

                                      paul53P 1 Reply Last reply
                                      0
                                      • Ben1983B Ben1983

                                        @paul53 OK, ich habe es ja jetzt auch so gemacht, allerdings schreibt er beim ersten durchlauf des scripts, wenn ich vorher den state [] zuweise auch alle Veränderungen des Arrays in den state. nach einem 2.aufuf de sscripts (wenn kein [] mehr zugewiesen wird, dann nicht. (Obwohl die daten drin stehen, wenn man mit getState den datenpunkt ausliest.

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

                                        @ben1983 sagte: wenn ich vorher den state [] zuweise

                                        Dann wird ein "echtes" Array in den DP vom Typ "json" geschrieben und später ausgelesen. Es sollte eine Typ-Warnung geben.
                                        Richtig wäre, den String '[]' (leeres Array als JSON) zuzuweisen.

                                        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

                                        Ben1983B 1 Reply Last reply
                                        0
                                        • paul53P paul53

                                          @ben1983 sagte: wenn ich vorher den state [] zuweise

                                          Dann wird ein "echtes" Array in den DP vom Typ "json" geschrieben und später ausgelesen. Es sollte eine Typ-Warnung geben.
                                          Richtig wäre, den String '[]' (leeres Array als JSON) zuzuweisen.

                                          Ben1983B Offline
                                          Ben1983B Offline
                                          Ben1983
                                          wrote on last edited by
                                          #20

                                          @paul53 OK,

                                          jetzt mache ich es wie gesetzt so:

                                          jsonLog = JSON.parse(getState(idJsonLog).val);
                                          

                                          und weise es später so zu:

                                          setState(idJsonLog,JSON.stringify(jsonLog),true);
                                          

                                          Funktioniert einwandfrei.

                                          paul53P 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

                                          260

                                          Online

                                          32.7k

                                          Users

                                          82.3k

                                          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