NEWS
json datei für Chart aus vorhandenen DP's erstellen
-
@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}|
-
fast
von links nach rechts aufsteigend.
manchmal kann ich ja code "interpretieren" aber hier sehe ich nur Bahnhof.
-
@dos1973 Dann dreh einfach mal das größer Zeichen um - keine Ahnung - warum das so ist.
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}|
-
@mickym welches?
-
@dos1973 Ich hab den Code nochmal gepostet
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}|
-
-
@dos1973 Ok dann sag nochmal woher Du den holst und wie sieht der vom value her aus.
sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
Bzw. muss ich eigentlich nicht wissen - Du holst einfach einen Zahlenwert irgendwoher?
-
sourceanalytix.0.0_userdata__0__mqtt__shellies__Pro3_EM__events__rpc__params__em:0__total_act_power.currentYear.consumed.01_currentDay
einfach der heutige Verbrauch als Inhalt.
5,922
-
Ok bin fertig:
Einfach diese 3 Nodes noch einfügen.
In der get-Node "Verbrauch heute" halt noch den richtigen Pfad zum Datenpunkt einfügen.
Und zum Schluß kann ich immer nur wieder sagen, lernt JSONATA mit diesem Tool - so erstelle ich ja meine Ausdrücke auch, in dem ich diese Stück für Stück zusammensetze. Hier kannst Du ausprobieren, welche Teile welche Auswirkungen haben: https://try.jsonata.org/Dcmx04fzH
-
-
Ok - verstehe zwar wieder nicht warum aber dann tausch einfach in der letzten Change Node (Ergänze Graph) die beiden Parameter in der append Funktion.
$.payload~>|$|{"axisLabels":$append(axisLabels,$$.date)}| ~>|$.graphs|{"data":$append(data,$$.val_today)}|
Also in der letzten Node.
-
Ich denke, wenn Du es mir kurz bestätigst, dass ich dann alles wieder löschen kann?
-
-
das große Problem war nicht das json, sonder die Art wie ich die Daten aufgebaut habe, richtig?