NEWS
json datei für Chart aus vorhandenen DP's erstellen
-
ich will heute und 10 tage zurück
doch komplizierter als gedacht
-
@dos1973 Ja aber das Objekt wie im Debug muss genauso im iobroker erscheinen - das kann nicht sein, dass die axisLabels fehlen. Wie gesagt nur die ersten 10 - muss ich noch bissi arbeiten, weil die List Node erst mal alles ausliest.
-
@mickym
gibt noch ein Problem.das Heutige Datum existiert nicht als DP.
und
die Quelle für den Verbrauch für den Heutigen Tag liegt hier:sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
-
@dos1973 darum kümmern wir uns später - eins nach dem anderen. Hast du jetzt mal überprüft on das Objekt im iobroker Datenpunkt mit dem Debug Fenster in Node Red identisch ist?
-
@mickym, ja das kommt sauber an, soweit ich das überblicken kann.
-
@dos1973 Was hast Du denn da gepostet, wo angeblich die x-Achsen werte fehlen?
-
@mickym ?
kann dir nicht folgen...ich hatte den Root folder ursprünglich in deinem export nicht gewählt...
-
@dos1973 So tausch mal in der Change Node Analyse den Code wie folgt:
Dann sollten jetzt nur die Tage Datum-1 bis Datum-10 und Verbrauch-1 bis Verbrauch-10 ausgefiltert sein.
Halt nein 20 und 30 sind jetzt auch drin- warte .... - (schlimm wenn man die Daten selbst nicht hat)
So müsste es stimmen:
payload.{"xasisLabels": [_id~>/(Datum-\d$|Datum-10$)/] ? val, "data" : [_id~>/(Verbrauch-\d$|Verbrauch-10$)/] ? val}
-
@mickym : nicht ganz, es sind 12 Tage, heute fehlt... und die Reihenfolge ist nicht sortiert
- edit:es sind auch nicht die letzten 10, da u.a. auch der 10.10 aufgeführt
-
@mickym Wie gesagt mit dem heute - da muss der gesamte Flow noch ergänzt werden.
payload.{"xasisLabels": [_id~>/(Datum-(\d|10)$)/] ? val, "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? val}
Schau mal ob bis auf heute alles richtig ist - sortieren kommt gleich. Das Dumme ist das Du den 10. Datenpunkt 10 genannt hast. und nicht von 0-9
-
ne das passt nicht.
-
@dos1973 Kannst Du einfach eine DebugNode hinter die list Node machen und mir die payload dann in Code-Tags hier reinkopieren?
-
@mickym Warte hab den Fehler.
payload.{"axisLabels": [_id~>/(Datum-(\d|10)$)/] ? val, "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? val}
Ich hab unten immer xaxisLabels geschrieben.
-
@mickym
es wird wärmer
es muss aber andersherum... und der 30.10/ 31.10 sind auch nicht in der richtigen reihenfolge.lässt sich das nicht hardcoden, dp-10, dp-9...
-
@dos1973 Ich bin dran.
Wie gesagt das Dumme ist dass Du -1 und -10 gemacht hast und damit wird es nach Zeichenketten sortiert und da kommt nun mal 1 und 10 vor 2.
-
@mickym
Ja, Anfänger FehlerIch hätte -001, 002 Tage machen sollen, richtig?
-
@dos1973 Eigentlich
-00, -01, etc. - aber ich wandle es nun in Zahlen um. Dauert halt bissi. -
brauche ich wirklich ein Blockly mit cronjob,
dass meinen DP triggert, damit das nodeRed zb alle 10min läuft
suche noch ein 10min Trigger -
@dos1973 Einfach die Injectnode triggern lassen - da brauchst kein blockly
-
So damit sollte es nun gehen:
payload.{"axisLabels": [_id~>/(Datum-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "date":val}, "data" : [_id~>/(Verbrauch-(\d|10)$)/] ? {"id": $number((_id~>/(\d|10)$/).match), "val":val}}{"axisLabels":axisLabels,"data":data} ~>|$|{"axisLabels":$sort(axisLabels,function($l,$r){$l.id > $r.id}),"data":$sort(data,function($l,$r){$l.id > $r.id})}| ~>|$|{"axisLabels": axisLabels.date,"data":data.val}|