NEWS
JSON auslesen, rechnen, wieder zurückschreiben
-
Hallo,
folgender Anwendungsfall: ich habe in versch. Räumen elektr. Verbraucher (Heizungen), deren Verbrauch über Schaltaktoren messen lässt. Jeder Aktor hat einen Datenpunkt, der den Gesamtverbrauch beinhaltet.Ich möchte ein Blockly Script, dass alle 10 Minuten aktualisiert den Tagesverbrauch aller 7 Aktoren in vis ausgibt.
Meine Idee dazu wären 2 Datenpunkte, die je als json angelegt werden:- als Hilfsdatenpunkt ein JSON ("Stand_Vortag"), welches die Verbrauchsstände aller Aktoren zum Zeitpunkt des letzten Tageswechsel hat (also Stand: gestern Nacht 23:59)
- ein JSON ("Verbrauch_heute"), welcher alle 10 Minuten mit den neuen Verbräuchen gefüllt wird
Um die Verbräuche zu ermitteln, muss ich für jeden Aktor den aktuellen Wert mit dem Wert des Vortages vergleichen, die Differenz ist der Verbrauch.
Um das Ganze zu schreiben, habe ich den Hilfsdatenpunkt manuell angelegt und mit Testwerten befüllt:
Lasse ich mein Script laufen, sehe ich am Debug-Output, dass die Einzelverbräuche sowie die Summe korrekt berechnet werden, beim Zurückschreiben in den Datenpunkt "Verbrauch_heute" habe ich aber einen Formatierungsfehler, da im Feld selbst nur das steht:
.
Ich komme mit Listen und der Konvertierung JSON nach Objekt etc. nicht ganz klar, evtl. ist hier auch das ein oder andere überflüssig, was im Blockly auftaucht, ich hab hier größtenteils von einem anderen Problem von mir geklaut.
In der Spaltenansicht sieht man, dass die Formatierung leicht anders ist:
Hier das Blockly, das durchlaufen wird:
Vielleicht kann jemand das Ganze einerseits vereinfachen und andererseits auch so abändern, dass das Schreiben der Tagesverbräuche auch sauber geht.
-
@maddm sagte: Datenpunkt "Verbrauch_heute" habe ich aber einen Formatierungsfehler, da im Feld selbst nur das steht:
Ist er vom Typ "array"? Wenn nicht, dann wandle die Liste in ein JSON.
-
@paul53
Danke, das war der richtige Tipp - Änderung in der letzten Zeile hin zu
und schon passt das wegschreiben.Edit: Rest passt jetzt