NEWS
Sammelthread - Custom Grafana Visualization
-
Hallo zusammen,
besteht ev. Interesse an einem Sammelthread, in dem man Anpassungen und Customizing an Grafana Graphen diskutiert?
Falls ja, dann mal los. Falls nicht, lieber Mod, dann kannst du den Thread auch wieder wegwerfen.Die Idee ist, dass jeder kurz seinen Wunsch vorträgt und man dann am Ende das gewünschte Ergebnis MIT einer Anleitung bekommt, wie man das ganze bewerkstelligen kann.
Ich würde mal anfangen
Das hier ist mein (mittlerweile migriertes) Dashboard:
Seit ich auf InfluxDB V2 umgestiegen bin, ist vieles anders als bisher. Man muss sich erst einmal an die neue Flux Sprache "gewöhnen" bzw. braucht Leute, die einem Tipps geben.
Ich hab mich z.B. durch die Videos von Eddy viel Input geholt.Mein Graph für die Anzeige des Tagesverbrauchs über die letzten 3 Wochen funktionierte nicht mehr.
Normalerweise sieht ein Flux Query so aus:from(bucket: "iobdata") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last")
So umgesetzt sah mein Graph dann so aus:
Ich musste die 3 Wochen erst hier konfigurieren:
Das 3w steht für 3 Wochen. Damit sah der Graph nun so aus:
Ich wollte aber die Summe der Werte pro Tag in jeweils einem Balken angezeigt bekommen. Dazu musste ich den Query wie folgt umbauen:from(bucket: "iobdata") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "javascript.0.Solar.Wechselrichter.PVErzeugteEnergieAktuell") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1d, fn: last, createEmpty: false) |> yield(name: "last")
Damit bekam ich dann das Ergebnis:
Jetzt noch den Graph Style sowie die Fill opacity anpassen
und hier ist das Ergebnis:
-
Hier nun die erste Frage.
Auch meine Heizung soll noch ein paar Graphen bekommen.
Einen habe ich schon gebaut:
Hier sieht man die Puffertemperatur und die jeweilige Brennerlaufzeit als true/false Wert.
Ich möchte aber diese digitalen Werte nicht über die gesamte Anzeigehöhe haben. Cooler wäre, wenn sie in einem Diagramm separat angezeigt werden würde. Also unten z.B. die binären Zustände und darüber die analogen.
Habt ihr eine Idee wie man das anstellen kann?
Meine Konfiguration sieht so aus:
Query Nr. 1:from(bucket: "iobdata") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "modbus.0.holdingRegisters.6_TempPufferO") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last")
Query Nr. 2:
from(bucket: "iobdata") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "modbus.0.coils.22_AnfBrenner") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last")
-
@hennerich sagte in Sammelthread - Custom Grafana Visualization:
besteht ev. Interesse an einem Sammelthread, in dem man Anpassungen und Customizing an Grafana Graphen diskutiert?
Da Grafana eine externe Software und kein Bestandteil von ioBroker ist, habe ich es nach OffTopic verschoben.
-
Hey Leute, hier sind bestimmt ein paar Grafana profis unter euch.
Kann man 2 Abfragen ( z.b. strom letztes jahr und dieses jahr ) vergleichen und prozentual in der aktuellen anzeige darstellen? -
-
@marios sagte in Sammelthread - Custom Grafana Visualization:
Hey Leute, hier sind bestimmt ein paar Grafana profis unter euch.
Kann man 2 Abfragen ( z.b. strom letztes jahr und dieses jahr ) vergleichen und prozentual in der aktuellen anzeige darstellen?Hey, bin gerade bei Eddy über diese Passage gestolpert. Da macht der das zwar nur über 7 Tage, aber das Grundprinzip sollte doch das gleiche sein.
-
Hi ich habe grafana/influxdb auch nur durch iobroker kennengelernt und durch Eddys videos
leider gibts eigentlich sehr wenig input zu grafana und man muss sich alles irgendwie selber basteln
und irgendwie wird das dashboard nie fertig
hier mal paar screens
-
@skarpain Hallo, auch ich wusel mit Grafana rum und habe einige Boards erstellt. Dann habe ich Deinen Post mit den Daten für den Stromverbrauch gesehen, welche mir gut gefallen.
Wie hast Du das hinbekommen, das Du für jedes Gerät einen einzelnes Balkendiagramm hast?Wenn ich das bei mir auf Bar Charts umstelle sieht das so aus:
Und wenn ich mit der Time Range rumspiele sieht es so aus:
Also immer noch nicht so, wie Die es hinbekommen hast.
Das habe ich mittlerweile hinbekommen.
-
@damrak2022
Hi hab das über Bar Gauge gemachtdata = from(bucket: "iobroker") |> range(start: -7d) // |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] =~ /.ENERGY_Total+/) |> filter(fn: (r) => r["_field"] == "value") min = data |> min() |> set(key: "_field", value: "delta") max = data |> max() |> set(key: "_field", value: "delta") union(tables: [min, max]) |> difference() |> group() |> top (n: 20, columns: ["_value"]) |> drop(columns: ["_field"]) |> sort(desc: true)