NEWS
Stapel-Balkengrafik mit Grafana
-
@marc-berg Ich versuche mich auch daran. Ich möchte Werte in einem Balkendiagramm anzeigen. Zwei Werte in einem Balken gestapelt.
Allerdings erhalte ich in Grafana die Meldung: "Bar charts requires a string or time field"
Schon beim ersten Wert gibt es ein Problem. Was fehlt hier? -
@laser sagte in Stapel-Balkengrafik mit Grafana:
Allerdings erhalte ich in Grafana die Meldung: "Bar charts requires a string or time field"
Gibst Du Grafana denn einen Zeitstempel?
Zeig mal die Query dazu. -
@codierknecht ``` Hier versuche ich den Balken für "Montag" darzustellen. Ohne:
|> keep(columns: ["_value"]) |> rename(columns: {_value:"Mo"})
Mit: |> yield(name: "last") Wird etwas angezeigt. Balken nebeneinander zu aufsteigenden Zeiten.
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.alias__0__OpenDTU-Power__yieldtotalBKW.currentYear.delivered.currentWeek.01_Monday") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") // |> keep(columns: ["_value"]) // |> rename(columns: {_value:"Mo"})
-
wo plötzlich der dritte Balken herkommt, weiß ich nicht.
-
-
@laser
Du willst 2 Werte stapeln?
Dann müssen die auch den gleichen Zeitstempel haben. Ist das nicht gegeben, muss man den Salat "normieren". also z.B. die Millisekunden oder Sekunden abschneiden.
Aber bei Influx bin ich leider raus. Ich bleibe berufsbedingt bei SQL.Warte mal ab - da kennen sich andere besser mit aus.
-
So sieht es jetzt aus. Ein Schritt auf dem richtigen Weg?
-
@laser sagte in Stapel-Balkengrafik mit Grafana:
Ein Schritt auf dem richtigen Weg?
Würde ich doch sagen.
Wie gesagt: Influx ist so gar nicht meins
-
@laser
Mit der aggregatewindow funktion bist du auf dem richtigen Weg.
Ob es so ist wie du es haben willst, musst du selbst beurteilen.
Und sonst nachfragen und präzise sagen was du willst
In den Overrides kannst du noch die Namen anpassen, damit nicht die DP Bezeichnung, sondern was sinvolleres steht. -
@mickemup ich habe in der Influx DB Zählerwerte für verschiedene Solarproduktionszahlen. (Gesamtproduktion, Akku-Ladeproduktion). Für jeden Wochentag und jede Meßgröße einen Wert. Diese beiden Werte eines Wochentages möchte ich in einem Balken gestapelt darstellen. Und insgesamt 7 Balken von Montag bis Sonntag.
Ich bekomme das aber nur gestapelt für alle Werte hin, nicht unterteilt für die Wochentage.
Ganz blöde Frage: Ist das nun eine Influx Funktion - vermute ich mal- oder Bestandteil von Grafana (wo muß ich suchen?) -
So habe ich mein Jahresproduktion/Verbrauch dargestellt.
Sind das pro Tag unterschiedliche Datenpunkte?
Und wie werden die Tage auch nur am dem entsprechenden Tag aktualisiert und in die DB geschrieben.
Wenn ja musst du für jeden ein Query machen.
Und diesen Dann Eventuell mit einem Timeshift verschieben.Aber das kriegt man schon hin.
Mach doch mal Mo und Di und dann schauen wir weiter -
@mickemup pro Tag und pro Meßwert sind das unterschiedliche Datenpunkte. Werden in IO Broker mit "Sourceanalytics" generiert.
Zur Zeit sieht das so aus: (Testweise 2 Werte 1 Tag und 1 Wert für den nächsten Tag, mit 2 Query's hatte ich es auch probiert)
Hier mal das 1. & 2. Query mit 2 Werten
mir fehlt der Zeitversatz für die "Dienstag" Werte.
-
@laser Sourceanalytics kenne ich nicht, aber wenn die Werte dort nur am entsprechenden Tag geloggt werden:
Dann versuch mal mit nur every 1d im Window und ohne offset.Montag ist ja im Moment am 31. und Dienstag am 30.
Und einfacher wäre natürlich ein DP der immer am Ende vom Tag den Wert drinhat, aber das sollte auch so irgendwie klappen...
-
@mickemup Ist nur 1 Wert pro Wochen- Tag.
"Dann versuch mal mit nur every 1d im Window und ohne offset." >> In "AgregateWindow" oder in der Tageauswahl?
Habe Beides ohne Erfolg probiert... -
Ganz blöde Frage: Ist das nun eine Influx Funktion - vermute ich mal- oder Bestandteil von Grafana (wo muß ich suchen?)
Die Darstellung zB das stapeln ist eine "Grafana-Funktion"
Die Daten kommen aber via Query von Influxd und müssen für Grafana dementsprechend aufgearbeitet (zB via AgregateWindow zeitgleich gesetzt werden) damit Grafana diese auch wie gewünscht darstellen kann. -
@mickemup Deine Bildschirmdarstellung ist ja scheinbar das, was ich brauche. Hast Du mal die Darstellung der Werteaufbereitung?
-
@laser
Wie sieht es den aus, wenn du im "Montags-Query" das drin hast:|> aggregateWindow(every: 1d, fn: last, createEmpty: false, timeSrc: "_start")
-
@laser nützt dir nichts, da ich alles im selben DP logge...
-
@mickemup OK.
Am 3.2. und 4.2. werden gleiche Werte angezeigt (sind aber nicht gleich) Egal, wie ich in der Grafana Übersicht oben den Zeitbereich einstelle. Sind es mal mehr oder weniger Säulen. -
Dein Problem ist die |> range die du angibst.
Was willst du den genau anzeigen? Die letzte Woche, den letzten Monat oder nur ein Tag?
Wenn du z.B die letzte Woche und dann jeden Tag haben willst dann nimmst du oben bei |> range
|> range(start: -7d)
.
.
.
|> aggregateWindow(every: 1d, fn: last, createEmpty: false)Erklär erstmal was du genau haben möchtest.
so etwas hier: