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); }); } } -
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); }); } } -
@alcalzone
unter Objekte
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.
-
@alcalzone
unter Objekte
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.
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..... -
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.....
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden