NEWS
Test Adapter flexcharts - Stapeldiagramme und mehr
-
Guten Morgen,
ich möchte benfalls eine von tibber bereitgestellte Datei in einem Balkendiagram darstellen. Hat jemand eine Schritt für Schritt Anleitung? Verstehe nicht wo ich die json Datei von tibber
einfügen soll das mir das angezeigt wird. Irgendwo muss ja ein template rein, aber wo und wie?
echarts und flexcharts sind installiert.Danke!
-
@sms Dazu gibt es ja schon eine ausführliche Diskussion im Adapter tibberLink. Mir ist deshalb nicht ganz klar, was Dir an Info fehlt. Die Vorgehensweise, um per State ein Diagramm zu erzeugen ist im Readme beschrieben. Kurz zusammengefasst:
- Du musst einen State im json-Format erzeugen, der das Format der cChart-Options hat und Deine Daten als "series" enthält
- Du übergibst die State-ID an flexcharts. Der eCharts-Adapter wird dabei übrigens nicht benötigt.
Um ein passendes eChart-Options Template zu bekommen, gehst Du am besten auf die Beispielseite von Apache eCharts, suchst Dir ein Beispiel-Chart, das einigermaßen zu Deinen Vorstellung passt und zeigst das an. Dann kannst Du online den Chart-Code verändern und direkt ausprobieren. Wenn alles passt übernimmst Du diesen Code in den State für flexcharts. Nun musst Du per Skript nur noch Deine Daten einfügen.
-
@jrbwh sagte in Test Adapter flexcharts - Stapeldiagramme und mehr:
@sms Dazu gibt es ja schon eine ausführliche Diskussion im Adapter tibberLink. Mir ist deshalb nicht ganz klar, was Dir an Info fehlt. Die Vorgehensweise, um per State ein Diagramm zu erzeugen ist im Readme beschrieben. Kurz zusammengefasst:
- Du musst einen State im json-Format erzeugen, der das Format der cChart-Options hat und Deine Daten als "series" enthält
Das verstehe ich nicht bzw. bekomme ich nicht hin. Denke du meinst einen DP erzeugen? Aber was für einen?
hier?
Dann müsste ich doch hier was einfügen können?
-
@sms Ja, ich meine einen DP. Ich nutze kein Tibber und kenne auch den tibberLink-Adapter nicht. Aber @ReblausGT hat ja hier die Vorgehensweise schön beschrieben.
Wenn Du die Funktionsweise von flexcharts verstehen möchtest, empfehle ich, die Beispiele im Readme auszuprobieren.
@ReblausGT @Merlin123 Falls ihr ein praktikables Verfahren für die Aufbereitung der tibberLink-Daten für flexcharts habt, wäre es super, ihr könntet das als Diskussionsbeitrag bei flexcharts teilen.
-
@jrbwh Die Frage ist: Was verstehst Du unter praktikabel? Ich hab ein Blockly, das mit das visualisiert und einträgt, wann das Auto geladen würde und die Grenzen für Speicher laden/entladen.
Kann das mal einstellen.
-
@merlin123 Ja, genau sowas meine ich mit praktikabel! Danke!
Das kann - mindestens - als super Startpunkt für eine eigene Implementierung dienen.
@sms Hoffe, das hilft Dir auch weiter.
-
@jrbwh Bei Fragen können sich die Leute gerne melden. Hab da auch genug Fragen gestellt, bis ich das halbwegs verstanden habe
-
Mir geht es ja nicht um die Anzeige des tibber Strompreises, das war ja in einen anderen Thread erklärt und habe ich hinbekommen.
Was ich jetzt nicht hinbekomme, ist das Anzeigen eines anderen json DP. Ich weiß nicht bzw. lese nicht heraus was für einen ich erstellen soll und dann wo eintragen. Das war ja meine Frage.
-
@sms Mit diesen Infos fällt mir eine Antwort schwer. Wenn Du einen Beispieldatensatz postest und Deine Vorstellung beschreibst, wie das Diagramm aussehen soll, kann ich mir ein paar Gedanken dazu machen.
-
@jrbwh ich möchte ebenfalls eine von tibber bereitgestellte Datei in einem Balkendiagram darstellen.
Verstehe nicht wo ich die json Datei von tibber
Angezeigt werden sollen einmal die Gesamtkosten (totalcost) und der Gesamtverbrauch (consumption)
[{"from":"2025-01-06T00:00:00.000+01:00","to":"2025-01-06T00:00:00.000+01:00","cost":10.7284204741,"unitPrice":0.287942,"unitPriceVAT":0.045974,"consumption":37.259,"consumptionUnit":"kWh","totalCost":10.3727235241,"unitCost":10.7284204741,"currency":"EUR"},{"from":"2025-01-13T00:00:00.000+01:00","to":"2025-01-13T00:00:00.000+01:00","cost":14.5018410257,"unitPrice":0.298478,"unitPriceVAT":0.047656,"consumption":48.586,"consumptionUnit":"kWh","totalCost":14.0038652957,"unitCost":14.5018410257,"currency":"EUR"},{"from":"2025-01-20T00:00:00.000+01:00","to":"2025-01-20T00:00:00.000+01:00","cost":16.5644088827,"unitPrice":0.385434,"unitPriceVAT":0.06154,"consumption":42.976,"consumptionUnit":"kWh","totalCost":16.0664331527,"unitCost":16.5644088827,"currency":"EUR"},{"from":"2025-01-27T00:00:00.000+01:00","to":"2025-01-27T00:00:00.000+01:00","cost":13.6840366474,"unitPrice":0.360961,"unitPriceVAT":0.057632,"consumption":37.91,"consumptionUnit":"kWh","totalCost":13.1860609174,"unitCost":13.6840366474,"currency":"EUR"}]
einfügen soll das mir das angezeigt wird. Irgendwo muss ja ein template rein, aber wo und wie?
Adresse ist ja dann: http://iobroker-ip:8082/flexcharts/echarts.html?source=state&id=...
Danke!
-
@sms sagte in Test Adapter flexcharts - Stapeldiagramme und mehr:
.. Irgendwo muss ja ein template rein, aber wo und wie?
Die Daten müssen in dem Bereich series eingetragen werden. Dieses Feld ist ein Array aus Objekten, die ihrerseits wiederum Arrays enthalten, in welche die darzustellenden Werte einzutragen sind. In dem nachfolgenden Beispiel ab Zeile 23. Für jede Datenreihe muss ein solches Objekt in Array series angelegt werden.
"yAxis": [ { "name": "Temperatur", "nameLocation": "end", "nameTextStyle": { "color": "#ffffff", "fontSize": 15 }, "type": "value", "axisLabel": { "formatter": "{value} °C", "fontSize": 12, "color": "#ffffff" } } ], "series": [ { "name": "Min", "type": "bar", "barGap": "30%", "color": "#5f5f5f", "data": [ 0.7, 0.7, -0.1,
-
-
@jrbwh Hi
Ja das sieht schon mal ganz gut aus. Danke! Ich habe es auf dem Tablet soweit hinbekommen, das es mir wie in deiner Beschreibung angezeigt wird.
Das würde ich jetzt gerne mit daily genauso haben. Leider kann ich auf dem Tablet nicht nachvollziehen, was in der zip-Datei drin steht. Das muss ich mir aufm Laptop mal anschauen.
Ich denke beim ersten muss ich weekly durch daily ersetzen und die json von tibber rein kopieren? Das müsste mir dann wieder die Objektstruktur erzeugen wenn ich es dann importiere. Liege ich richtig?
Woher kommen die Daten vom Abschnitt ..."_id": "0_userdata...chartweekly"? bei "val": "{"...
Muss ich die händisch eintragen? -
@sms Ich habe das Skript mal als Text in die Anleitung eingefügt. Das ist leichter verständlich. Der State
chartWeekly
enthält die Definition des Charts. Das habe ich auf Basis eines Beispiels von den Apache Echart Seiten erstellt - wie ich weiter oben erläutert habe. Wenn das Chart anders aussehen soll, musst Du diesen State ändern.Für ein Daily Chart:
chartWeekly
nachchartDaily
kopieren und ggf. anpassentibberDaily
anlegen und die richtigen Daten reinkopieren- Im Skript die ersten 3 Konstanten kopieren und anpassen
- den Funktionsaufruf evalTibberData() (Zeile 9) kopieren und anpassen
- die Funktion on() kopieren und anpassen
-
Vielen Dank für den Adapter und die unendlichen Möglichkeiten für die Darstellung von Charts
Ich scheitere derzeit an diesem Chart für ein CoP Netz der Wärmepumpe. Auf der Apache echarts Webseite funktioniert die Darstellung (bis auf Details und aktuellen Betriebspunkt) wie gewollt
In der Vis bleibt nur die Farbskala und der Rest ist weg
Der Datensatz dazu
Klar kann man das auch z.B. als Liniendiagramm darstellen, das klappt auch in Vis-2 ...aber das 3D scatter gefällt mir besser.
Eingebunden in der Vis über ein HTML widget mit Inhalt:http://192.168.178.9:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.0000_Visualisierung.Heizung.copnetz
Hast Du eine Idee warum das in Vis-2 (vis nicht getestet) nicht angezeigt wird?
Danke vorab -
@jrbwh sagte in Test Adapter flexcharts - Stapeldiagramme und mehr:
@sms Ich habe das Skript mal als Text in die Anleitung eingefügt. Das ist leichter verständlich. Der State
chartWeekly
enthält die Definition des Charts. Das habe ich auf Basis eines Beispiels von den Apache Echart Seiten erstellt - wie ich weiter oben erläutert habe. Wenn das Chart anders aussehen soll, musst Du diesen State ändern.Für ein Daily Chart:
chartWeekly
nachchartDaily
kopieren und ggf. anpassen
Ich scheitere irgendwie schon hierbei. Ich muss doch hier auf kopieren:
aber wo einfügen?tibberDaily
anlegen und die richtigen Daten reinkopieren
Einfach hierüber anlegen?
- Im Skript die ersten 3 Konstanten kopieren und anpassen
- den Funktionsaufruf evalTibberData() (Zeile 9) kopieren und anpassen
- die Funktion on() kopieren und anpassen
Mal schauen ob ich das hinbekomme.
-
@ullij Das ist ziemlich seltsam. Es gibt Beispiele mit scatter3D, wenn ich aber in die Docs schaue bei series.type wird da kein scatter3D aufgelistet.
Und der Browser meldet in der Konsole "[ECharts] Unknown series scatter3D" beim Versuch, das Chart darzustellen.
Hab noch keine Idee, was da los ist. -
-
@ullij Hab eine Spur. Schaut man sich den "full code" im Beispiel von Apache ECharts an, steht da ein "import 'echarts-gl';". Das wird von flexcharts nicht importiert.
Muss ich mir näher anschauen. -
@jrbwh
top, danke soweit schon mal.
Ich hatte das Chart auch mal als HTML von Apache echarts runter geladen und da blieb sie lokal im Browser weiss.
Im Html code waren dann verschiedene scripte auskommentiert. Eine davon bezieht sich auf "echarts-gl". Wenn ich das aktiviere wird das Chart im Browser angezeigt