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. JavaScript
  5. Json in Datenpunkt schreiben - Wert wird nicht gesetzt!

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Json in Datenpunkt schreiben - Wert wird nicht gesetzt!

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 3 Kommentatoren 522 Aufrufe 2 Watching
  • Ä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.
  • N Offline
    N Offline
    nichname
    schrieb am zuletzt editiert von nichname
    #1

    Mit meinem Test Script versuche ich Json Objekt in ein Datenpunkt zu schreiben.
    Warum kommt aber im Datenpoint nicht an?
    Das result wird noch richtig angezeit.

    const dpRoot = `0_userdata.0`;
    const isLogging = `true`;
    
    var dpTestJson = `${dpRoot}.Test.json`;
    var dpCount = `${dpRoot}.Test.count`;
    var testArray = [];
    var writeJson = [];
    
    mySetState(dpTestJson, "", "string", "DP für Json");
    mySetState(dpCount, 0, "number", "Zähler für Elemente");
    
    var anzahlElemente = 2;
    var i;
    
    
    for (i = 0; i < anzahlElemente; i++) {
        let testZeile = {Zahl: `${i}`, Element0: `Null`, Element1: `Eins`, Element2: `Zwei`, Element3: `Drei`, Element4: `Vier`, Element5: `Fünf`, Element6: `Sechs`, Element7: `Sieben`, Element8: `Acht`, Element9: `Neun`};Zwei`, `Element3: Drei`, `Element4: Vier`, `Element5: Fünf`, `Element6: Sechs`, `Element7: Sieben`, `Element8: Acht`, `Element9: Neun`];
        //let testZeile = `Zahl: ${i}`;
        testArray[i] = testZeile;
        writeJson.push(testArray[i]);
    }
    let result = JSON.stringify(writeJson);
    console.log (result);
    setState(dpTestJson, result);
    
    //setState(dpTestJson, result, false, function() {
    //         console.log("Json: I n i t i a l: " + dpTestJson);});
    
    setState(dpCount, i, true);
    
    
    // Routine kommt hier aus dem Forum
    /********************************************************************************************
     * mySetState setstate or createState and setstate
     * @param id  string Datapoint für State
     * @param val string | number | boolean  Wert für State
     * @param type string | number | boolean  Type des States - muss zu Wert passen
     * @param name string Beschreibung des States
     * @param write boolean  
     * 
     * return: nichts
     * 
     * Usage: selbsterklärend
     ********************************************************************************************/
    function mySetState(id, val, type, name, write = false) {
        if (existsState(id)) {
            setState(id, val, true);
        } else {
            createState(id, {
                'name': name,
                'type': type,
                'read': true,
                'write': write
            }, function () {
                setState(id, val, true);
            });
        }
    }
    
    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • N nichname

      Mit meinem Test Script versuche ich Json Objekt in ein Datenpunkt zu schreiben.
      Warum kommt aber im Datenpoint nicht an?
      Das result wird noch richtig angezeit.

      const dpRoot = `0_userdata.0`;
      const isLogging = `true`;
      
      var dpTestJson = `${dpRoot}.Test.json`;
      var dpCount = `${dpRoot}.Test.count`;
      var testArray = [];
      var writeJson = [];
      
      mySetState(dpTestJson, "", "string", "DP für Json");
      mySetState(dpCount, 0, "number", "Zähler für Elemente");
      
      var anzahlElemente = 2;
      var i;
      
      
      for (i = 0; i < anzahlElemente; i++) {
          let testZeile = {Zahl: `${i}`, Element0: `Null`, Element1: `Eins`, Element2: `Zwei`, Element3: `Drei`, Element4: `Vier`, Element5: `Fünf`, Element6: `Sechs`, Element7: `Sieben`, Element8: `Acht`, Element9: `Neun`};Zwei`, `Element3: Drei`, `Element4: Vier`, `Element5: Fünf`, `Element6: Sechs`, `Element7: Sieben`, `Element8: Acht`, `Element9: Neun`];
          //let testZeile = `Zahl: ${i}`;
          testArray[i] = testZeile;
          writeJson.push(testArray[i]);
      }
      let result = JSON.stringify(writeJson);
      console.log (result);
      setState(dpTestJson, result);
      
      //setState(dpTestJson, result, false, function() {
      //         console.log("Json: I n i t i a l: " + dpTestJson);});
      
      setState(dpCount, i, true);
      
      
      // Routine kommt hier aus dem Forum
      /********************************************************************************************
       * mySetState setstate or createState and setstate
       * @param id  string Datapoint für State
       * @param val string | number | boolean  Wert für State
       * @param type string | number | boolean  Type des States - muss zu Wert passen
       * @param name string Beschreibung des States
       * @param write boolean  
       * 
       * return: nichts
       * 
       * Usage: selbsterklärend
       ********************************************************************************************/
      function mySetState(id, val, type, name, write = false) {
          if (existsState(id)) {
              setState(id, val, true);
          } else {
              createState(id, {
                  'name': name,
                  'type': type,
                  'read': true,
                  'write': write
              }, function () {
                  setState(id, val, true);
              });
          }
      }
      
      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      @nichname Woran machst du fest, dass es nicht im Datenpunkt ankommt?

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      N 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        @nichname Woran machst du fest, dass es nicht im Datenpunkt ankommt?

        N Offline
        N Offline
        nichname
        schrieb am zuletzt editiert von nichname
        #3

        @alcalzone
        unter Objekte

        JsonDPleer.JPG

        Ein Fehler war im Script, hier die Änderung.. ich hatte die DP aber manuel angelegt. Deshalb hatte das keine Auswirkung.

        mySetState(dpTestJson, "", "string", "DP für Json", true);
        mySetState(dpCount, 0, "number", "Zähler für Elemente", true);
        

        Als neuen Test habe ich in den DP einfach mal ein Teststring "Test" geschrieben. Dies funktioniert.

        N 1 Antwort Letzte Antwort
        0
        • N nichname

          @alcalzone
          unter Objekte

          JsonDPleer.JPG

          Ein Fehler war im Script, hier die Änderung.. ich hatte die DP aber manuel angelegt. Deshalb hatte das keine Auswirkung.

          mySetState(dpTestJson, "", "string", "DP für Json", true);
          mySetState(dpCount, 0, "number", "Zähler für Elemente", true);
          

          Als neuen Test habe ich in den DP einfach mal ein Teststring "Test" geschrieben. Dies funktioniert.

          N Offline
          N Offline
          nichname
          schrieb am zuletzt editiert von
          #4

          So nach ein paar versuchen...

          mit dieser Funktion hatte ich im ersten Versuch die DP angelegt.
          Wie Ihr seht war der zweite Parameter leer.

          mySetState(dpTestJson, "", "string", "DP für Json", true);
          

          nach der Änderung auf

          mySetState(dpTestJson, "nicht leer", "string", "DP für Json", true);
          

          Habe ich das Script zwei mal laufen lassen.
          Beim ersten Lauf war der DP noch mit "nicht leer" gefüllt.
          Nach dem zweiten Lauf wir der DP überschrieben und richtig mit dem Json Object gefüllt.
          Verstehe warum.....

          M 1 Antwort Letzte Antwort
          0
          • N nichname

            So nach ein paar versuchen...

            mit dieser Funktion hatte ich im ersten Versuch die DP angelegt.
            Wie Ihr seht war der zweite Parameter leer.

            mySetState(dpTestJson, "", "string", "DP für Json", true);
            

            nach der Änderung auf

            mySetState(dpTestJson, "nicht leer", "string", "DP für Json", true);
            

            Habe ich das Script zwei mal laufen lassen.
            Beim ersten Lauf war der DP noch mit "nicht leer" gefüllt.
            Nach dem zweiten Lauf wir der DP überschrieben und richtig mit dem Json Object gefüllt.
            Verstehe warum.....

            M Online
            M Online
            MCU
            schrieb am zuletzt editiert von MCU
            #5

            @nichname createstate .... write:write gibt es nicht.
            Entweder write:false oder write:true. Wo stand das mit dem write:write?

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            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

            675

            Online

            32.6k

            Benutzer

            82.1k

            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