NEWS
json datei für Chart aus vorhandenen DP's erstellen
-
@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
-
@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
-
@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 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.
-
@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 -
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}| -
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}| -
@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}| -
@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 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_currentDayBzw. muss ich eigentlich nicht wissen - Du holst einfach einen Zahlenwert irgendwoher?
-
@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_currentDayBzw. muss ich eigentlich nicht wissen - Du holst einfach einen Zahlenwert irgendwoher?
-
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
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

