NEWS
Frage: JSON Inhalt als BarWidget Visualisieren
-
Moin,
ich bekomme von dem Tibber Adapter ein JSON-DP mit meinen Energiedaten.
Einen Teil dieser Werte würde ich gerne mit einem Bar Widget Visualisieren.
Mit dem E-Charts Adapter hatte ich bisher keinen Erfolg.
Außerdem müsste noch die Uhrzeit konvertiert werden?Kann mir jemand aufzeigen wie das geht?
Beispiel DP:
[{"from":"2023-03-01T00:00:00.000+01:00","to":"2023-04-01T00:00:00.000+02:00","cost":137.372376561,"unitPrice":0.25357,"unitPriceVAT":0.040486,"consumption":541.754,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-04-01T00:00:00.000+02:00","to":"2023-05-01T00:00:00.000+02:00","cost":90.7700860794,"unitPrice":0.243949,"unitPriceVAT":0.03895,"consumption":372.087,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-05-01T00:00:00.000+02:00","to":"2023-06-01T00:00:00.000+02:00","cost":45.3044254425,"unitPrice":0.219539,"unitPriceVAT":0.035052,"consumption":206.362,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-06-01T00:00:00.000+02:00","to":"2023-07-01T00:00:00.000+02:00","cost":41.3673965509,"unitPrice":0.234526,"unitPriceVAT":0.037445,"consumption":176.387,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-07-01T00:00:00.000+02:00","to":"2023-08-01T00:00:00.000+02:00","cost":44.7069721861,"unitPrice":0.225864,"unitPriceVAT":0.036062,"consumption":197.938,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-08-01T00:00:00.000+02:00","to":"2023-09-01T00:00:00.000+02:00","cost":58.4057955355,"unitPrice":0.247937,"unitPriceVAT":0.039587,"consumption":235.567,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-09-01T00:00:00.000+02:00","to":"2023-10-01T00:00:00.000+02:00","cost":62.7189878063,"unitPrice":0.257247,"unitPriceVAT":0.041073,"consumption":243.808,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-10-01T00:00:00.000+02:00","to":"2023-11-01T00:00:00.000+01:00","cost":113.0440595319,"unitPrice":0.243011,"unitPriceVAT":0.0388,"consumption":465.18,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-11-01T00:00:00.000+01:00","to":"2023-12-01T00:00:00.000+01:00","cost":165.1500357416,"unitPrice":0.24995,"unitPriceVAT":0.039908,"consumption":660.731,"consumptionUnit":"kWh","currency":"EUR"},{"from":"2023-12-01T00:00:00.000+01:00","to":"2024-01-01T00:00:00.000+01:00","cost":218.4211066317,"unitPrice":0.21144,"unitPriceVAT":0.033759,"consumption":1033.019,"consumptionUnit":"kWh","currency":"EUR"}]
"type": "state", "common": { "name": "jsonMonthly", "type": "string", "role": "text", "read": true, "write": false
-
evtl mit dem materialdesign chart json widget
anleitung https://github.com/Scrounger/ioBroker.vis-materialdesign#json-chart
-
@maas-meister Ich habe zwar den eCharts Adapter nicht im Einsatz - aber entweder Du schreibst einzelne Datenpunkte in eine Datenbank oder Du kannst doch auch aus JSON das rausziehen.
und ich würde ggf halt wieder die geniale JSONATA Bibliothek nutzen - nutzt man NodeRed - dann wächst man damit quasi auf.
-
Also um Dein oben gezeigtes Array entsprechend in die vom eCharts erwarteten JSON umzuwandeln, nimmst Du JSONATA: https://try.jsonata.org/r0MUIUBX3
-
Das neue Array kannst dann in einen Datenpunkt schreiben und musst halt dieses eChart Adapter Teil mal befragen, wie Du den JSON dann in den Adapter bekommst.
-
Vielen Dank für deine Antwort!
Geht nur bedingt, da sich der Datenpunkt stetig ändert.Daher müsste ich das ja in Blockly/Java Triggern und umwandeln.
-
@maas-meister sagte in Frage: JSON Inhalt als BarWidget Visualisieren:
Geht nur bedingt, da sich der Datenpunkt stetig ändert.
Das ist doch egal in welchen Datenpunkt Du das schreibst - es wird doch im Blockly gewandelt?
-
Oh, da habe ich dich wohl falsch verstanden.
Ich dachte ich müsste das auf der Seite "https://try.jsonata.org/r0MUIUBX3" umwandeln und das Ergebnis weiterverarbeiten.
Aber die Seite dient wohl nur als Info wie die Daten aussehen müssen.
Ich muss mich da mal rein fuchsen.Besten dank, ich probiere mal ob echarts die neuen Werte annimmt.
-
@maas-meister Ich wollte Dir nur zeigen, wie man es lernt.
Ausserdem habe ich Dir doch das Blockly hier zum Import angeboten: https://forum.iobroker.net/post/1105940
Du musst doch nur den Spoiler aufmachen. Du brauchst doch nur Deine Daten in die Variable Objekt einlesen und dann in den gewünschten Datenpunkt schreiben. Mehr kann ich nun wirklich nicht tun.
-
Hab dir mal ein Beispiel in meiner Live webui (http://129.159.205.3:8082/webui/index.html) gemacht wie es dort gehen würde.
Screen "chart sample".Das Binding sähe dort so aus:
Datum umformatieren ginge z.B. mit diesem String:
JSON.parse(__0).map(x => [x.consumption, new Date(Date.parse(x.from) + 60*60+1000).toLocaleDateString()])