NEWS
JSON aus mehreren DP´s mit getHistory befüllen
-
Ich schaffe es aus einem DP mit getHistory eine JSON für eine Tabelle zu erzeugen und möchte diese nun um weitere Spalten erweitern.
Kann mir jemand kurz auf die Sprünge helfen wie ich das Blockly erweitern muss, damit mehrere Spalten täglich mit "füge ein als letztes" funktioniert?Aktuell hab ich folgendes Setup:
Der DP hat dann folgenden Inhalt:
[{"Tag":"02/12","kWh":14.4},{"Tag":"02/11","kWh":23.3},{"Tag":"02/10","kWh":21.4},{"Tag":"02/09","kWh":25.1},{"Tag":"02/08","kWh":28.1},{"Tag":"02/07","kWh":24.9},{"Tag":"02/06","kWh":8.1},{"Tag":"02/05","kWh":11},{"Tag":"02/04","kWh":7.8},{"Tag":"02/03","kWh":18},{"Tag":"02/02","kWh":14.6},{"Tag":"02/01","kWh":21.1},{"Tag":"01/31","kWh":13.1},{"Tag":"01/30","kWh":24.5},{"Tag":"01/29","kWh":18.3},{"Tag":"01/28","kWh":12.3},{"Tag":"01/27","kWh":20.3},{"Tag":"01/26","kWh":4.9},{"Tag":"01/25","kWh":19.3},{"Tag":"01/24","kWh":14.5},{"Tag":"01/23","kWh":4.9},{"Tag":"01/22","kWh":6.5},{"Tag":"01/21","kWh":4.3},{"Tag":"01/20","kWh":16.1},{"Tag":"01/19","kWh":18.2},{"Tag":"01/18","kWh":18.3},{"Tag":"01/17","kWh":10.9},{"Tag":"01/16","kWh":13.1},{"Tag":"01/15","kWh":0.4},{"Tag":"01/14","kWh":14.2},{"Tag":"01/13","kWh":7.2},{"Tag":"01/12","kWh":3.9},{"Tag":"01/11","kWh":7.8},{"Tag":"01/10","kWh":12.8},{"Tag":"01/09","kWh":13.2},{"Tag":"01/08","kWh":8.5},{"Tag":"01/07","kWh":4.3},{"Tag":"01/06","kWh":3.8},{"Tag":"01/05","kWh":1.5},{"Tag":"01/04","kWh":12},{"Tag":"01/03","kWh":8.9},{"Tag":"01/02","kWh":8.7},{"Tag":"01/01","kWh":5.4},{"Tag":"12/31","kWh":4.2},{"Tag":"12/30","kWh":3},{"Tag":"12/29","kWh":13.6},{"Tag":"12/28","kWh":12.3},{"Tag":"12/27","kWh":13.9},{"Tag":"12/26","kWh":4.6},{"Tag":"12/25","kWh":16.7},{"Tag":"12/24","kWh":9.8},{"Tag":"12/23","kWh":5.5},{"Tag":"12/22","kWh":2.6},{"Tag":"12/21","kWh":6.9},{"Tag":"12/20","kWh":2.5},{"Tag":"12/19","kWh":6.9},{"Tag":"12/18","kWh":9.7},{"Tag":"12/17","kWh":3.4},{"Tag":"12/16","kWh":3.1},{"Tag":"12/15","kWh":4.4}]
In der VIS sieht es so aus:
Und nun hätte ich jetzt gerne mehrere Spalten mit zB Einspeisung, Eigenverbrauch, Einsparung, etc. - es gibt zu allen natürlich einen DP mit den Tageswerten und aktiviertem History logging.
-
@rtwl
Das komplett auszuformulieren würde hier den Rahmen sprengen, darum nur das Prinzip. Den Rest kriegst Du sicher hin.
Bedingung ist, dass tatsächlich aus der History die gleiche Menge an Werten in der gleichen Reihenfolge geliefert wird. Sonst wird's deutlich aufwändiger, da man dann den passenden Tag erst suchen muss.
Man eiert dann einfach nacheinander die einzelnen Ergebnislisten durch und erweitert sukzessive das Objekt.
Erst am Ende schreibt man die (jetzt komplette) Liste in den DP. -
@rtwl
Du könntest auch in die entsprechenden DPs mit der Historyabfrage in eine Schleife packen die 60x durchläuft und anhand der der Durchlaufnummer das Datum berechnet (Vor der Schleife einmal Beginn und Ende des aktuellen Tages ausrechnen und bei der History Abfrage dann diese Werte abzüglich "Durchlauf x 86400000 "). -
@codierknecht danke! Muss ich mir am Abend anschauen, aber so recht verstehe ich noch nicht wie ich die einzelnen dp Werte dann den Attributen zuordnen kann.
zusätzlich noch als Info. Die insgesamt 7 dp's werden per Skript täglich um 23:59 befüllt und per History geloggt. Ich hab also immer die gleiche Anzahl und den selben Zeitpunkt (Abweichung vermutlich nur im ms Bereich). Ich könnte also auch anstellen des Zeitraumes auch die Anzahl der letzten 14 Einträge abfragen.
für einen dp ja kein Problem. Nur bei mehreren verstehe ich gerade nicht wie ich die Werte aus der ersten Schleife in die nächste bekomme.
-
@rtwl sagte in JSON aus mehreren DP´s mit getHistory befüllen:
aber so recht verstehe ich noch nicht wie ich die einzelnen dp Werte dann den Attributen zuordnen kann
So
Im Objekt
tag
hast Du die einzelnen Elemente der Liste.
Den Wertval
daraus trägst Du inobjekt
ein. -
@rtwl sagte: 7 dp's werden per Skript täglich um 23:59 befüllt
Dann kannst du doch die Tabelle in diesem Skript erzeugen und auf 14 Zeilen begrenzen. Nur zu Anfang hat du dann keine 14 Zeilen.