NEWS
[gelöst] Balkendiagramm für Momentanwerte?
-
Hi, ich würde gern kleine Balkendiagramme für die momentane Wirkleistung der jeweils drei Phasen an verschiedenen Netzknoten anzeigen.
In vis-2:
Wiget Basic / Bar is nicht geeignet, da es keine negativen Werte (Produktion/Einspeisung) kann.
Widget Vis 2 - Energie-Widgets / Verbrauchsvergleich macht im Wesentlichen, was ich suche, hat aber zwei Probleme:- auch wenn ich in den Ebenen die Einheit "W" angebe, wird rechts unten im Diagramm kWh angezeigt (das W funktioniert nur im Mouseover für die Einzelwerte),
- die Skalierung passt sich dynamisch an. Das ist einerseits sehr unruhig, da sich die Werte sekündlich ändern, andererseits will ich die absoluten Werte vergleichen, also wo grade der Großverbraucher anspringt.
Habt ihr einen anderen Vorschlag oder eine Idee, die obigen Probleme zu beheben?

-
Hi, ich würde gern kleine Balkendiagramme für die momentane Wirkleistung der jeweils drei Phasen an verschiedenen Netzknoten anzeigen.
In vis-2:
Wiget Basic / Bar is nicht geeignet, da es keine negativen Werte (Produktion/Einspeisung) kann.
Widget Vis 2 - Energie-Widgets / Verbrauchsvergleich macht im Wesentlichen, was ich suche, hat aber zwei Probleme:- auch wenn ich in den Ebenen die Einheit "W" angebe, wird rechts unten im Diagramm kWh angezeigt (das W funktioniert nur im Mouseover für die Einzelwerte),
- die Skalierung passt sich dynamisch an. Das ist einerseits sehr unruhig, da sich die Werte sekündlich ändern, andererseits will ich die absoluten Werte vergleichen, also wo grade der Großverbraucher anspringt.
Habt ihr einen anderen Vorschlag oder eine Idee, die obigen Probleme zu beheben?

-
@fuzzy1955 - danke für den Gedankenanstoß. allerdings ist eCharts auf Zeitreihen spezialisiert und ich will nicht alle Momentanwerte historisieren.
Bin daher jetzt bei Flexcharts gelandet und schon gut vorangekommen.Edit: so sieht es jetzt aus:

Edit2:
Der Flexchart-Adapter nutzt dabei ein Objekt unter 0_userdata, dass mittels eines Javascripts dynamisch mit einer JSON-Struktur befüllt wird.
Das Diagramm ist dann unter der URL
http://localhost:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.flexcharts.energy.chart&sseabrufbar, welche ich auch per iFrame-Widget in die vis2 einbinden kann. -
@fuzzy1955 - danke für den Gedankenanstoß. allerdings ist eCharts auf Zeitreihen spezialisiert und ich will nicht alle Momentanwerte historisieren.
Bin daher jetzt bei Flexcharts gelandet und schon gut vorangekommen.Edit: so sieht es jetzt aus:

Edit2:
Der Flexchart-Adapter nutzt dabei ein Objekt unter 0_userdata, dass mittels eines Javascripts dynamisch mit einer JSON-Struktur befüllt wird.
Das Diagramm ist dann unter der URL
http://localhost:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.flexcharts.energy.chart&sseabrufbar, welche ich auch per iFrame-Widget in die vis2 einbinden kann.so etwas vielleicht?

ist ebenfalls Apache echart für aktuelle Werte von DP's, aber ohne Adapter. Über Json konfigurierbar und Anzeige im HTML widget
-
so etwas vielleicht?

ist ebenfalls Apache echart für aktuelle Werte von DP's, aber ohne Adapter. Über Json konfigurierbar und Anzeige im HTML widget
@UlliJ sagte: ist ebenfalls Apache echart für aktuelle Werte von DP's, aber ohne Adapter. Über Json konfigurierbar und Anzeige im HTML widget
Und wo lagert deine JSON-Konfig und wie aktualisierst du sie?
Bei meiner Lösung (habe ich oben mal noch etwas ergänzt) erzeuge ich die Struktur alle 5 s serverseitig neu.
Noch hübscher wäre natürlich, wenn sie nur erzeugt wird, wenn auch jemand raufschaut. -
@UlliJ sagte: ist ebenfalls Apache echart für aktuelle Werte von DP's, aber ohne Adapter. Über Json konfigurierbar und Anzeige im HTML widget
Und wo lagert deine JSON-Konfig und wie aktualisierst du sie?
Bei meiner Lösung (habe ich oben mal noch etwas ergänzt) erzeuge ich die Struktur alle 5 s serverseitig neu.
Noch hübscher wäre natürlich, wenn sie nur erzeugt wird, wenn auch jemand raufschaut.@hardwarefehler
die Konfig liegt in einem Json DP - Ort beliebig unter userdata
die Optionen sind im Spoiler erklärt, ein lauffähiges Beispiel ist unten angehängt
es gibt eine vordefinierte Farbpalette. Die kann genutzt werden oder es werden Fallbacks verwendet (wenn nicht vorhanden) oder in der Config etwas anderes steht. Wenn er verwendet werden soll müssen die DP Pfade im Skript und im HTML passen.Farb DP:
{ "colors": { "light": [ "rgba(33,150,243,0.85)", "rgba(76,175,80,0.85)", "rgba(255,152,0,0.85)", "rgba(233,30,99,0.85)", "rgba(156,39,176,0.85)", "rgba(77,208,225,0.85)" ], "dark": [ "rgba(100,181,246,0.9)", "rgba(129,199,132,0.9)", "rgba(255,183,77,0.9)", "rgba(240,98,146,0.9)", "rgba(206,147,216,0.9)", "rgba(77,208,225,0.9)" ] }, "bar": { "radius": 6, "categoryGap": "20%", "barGap": "8%" }, "legend": { "show": true, "position": "top", "fontSize": 13 }, "fontSize": { "axis": 12, "title": 15, "tooltip": 13 }, "animation": { "enabled": true, "duration": 800, "easing": "cubicOut" }, "compare": { "style": "transparent", "opacity": 0.35, "borderWidth": 1.5, "borderType": "dashed" }, "pie": { "borderRadius": 8, "borderWidth": 3 } }Das Skript liest die Config und schreibt die Output DP's zyklisch entsprechend der Definition in der Config.
- oben im Skriptheader ggf. die DP's anpassen
- die Output DP's müssen manuell angelegt werden, z.B. 0_userdata.0.0000_Visualisierung.Echarts.Statuscharts.jsonStatusChartOutput1.
Das rendern wird über das HTML widget gemacht
- muss irgendwo in den Bereich des Web adapters hochgeladen werden
- z.B. http://192.168.178.9:8082/vis-2.0/charts/eChartsStatus/StatusChartWidget.html
- die echarts Bibliothek muss in den übergeordneten Ordner (echarts.min.js). Sonst Pfad im HTML anpassen
- im HTML den Pfad für den output Datenpunkt ggf. anpassen
- der Adapter Socket io muss installiert sein und laufen
ein Beispiel:
Definition
{ "statusCharts": [ { "id": 1, "title": "Phasenleistung", "showTitle": false, "showLegend": false, "showAxes": false, "showValues": true, "chartType": "bar", "orientation": "horizontal", "refreshInterval": 2000, "unit": "W", "items": [ { "dp": "0_userdata.0.4000_EnergieErzeugung.Batterie.State.Consumption_W", "name": "Haus", "gradient": true, "thresholds": [ { "above": 0, "color": "rgba(229,57,53,0.9)" }, { "above": 20, "color": "rgba(255,152,0,0.9)" }, { "above": 80, "color": "rgba(76,175,80,0.9)" } ] }, { "dp": "0_userdata.0.4000_EnergieErzeugung.Batterie.State.Production_W", "name": "PV", "gradient": true, "thresholds": [ { "above": 0, "color": "rgba(229,57,53,0.9)" }, { "above": 20, "color": "rgba(255,152,0,0.9)" }, { "above": 80, "color": "rgba(76,175,80,0.9)" } ] }, { "dp": "alias.0.4000_Energieerzeugung.Batterie.PacNetz", "name": "L3", "gradient": true, "thresholds": [ { "above": 0, "color": "rgba(229,57,53,0.9)" }, { "above": 20, "color": "rgba(255,152,0,0.9)" }, { "above": 80, "color": "rgba(76,175,80,0.9)" } ] } ] } ] }eingebunden in vis-2 über eine HTML Vorlage. Die Id hängt den Renderer an den entsprechenden Output DP
<iframe src="http://192.168.178.9:8082/vis-2.0/charts/eChartsStatus/StatusChartWidget.html?id=1" style="border:none; background:transparent; width:100%; height:100%;" frameborder="0"> </iframe>sieht dann so aus

- Achsen/Beschriftungen/Label sind konfigurierbar
- die //@... im Skript kannst Du alle löschen. Die nutze ich für anderes, hatte nur keine Lust die raus zu nehmen.
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
