NEWS
Json in Datenpunkt schreiben - Wert wird nicht gesetzt!
-
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); }); } }
-
@nichname Woran machst du fest, dass es nicht im Datenpunkt ankommt?
-
@alcalzone
unter ObjekteEin 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.
-
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..... -
@nichname createstate .... write:write gibt es nicht.
Entweder write:false oder write:true. Wo stand das mit dem write:write?