NEWS
Grafana-Abfragen von iobroker MySQL
-
Brauchst du nicht, in Grafana hast du Time-Shift in den grafiek Optionen
Sent from my iPhone using Tapatalk `
Das verschiebt nur die Anzeige, aber die Werte bleiben an den falschen Tagen, also + 1
-
Hallo,
ich mache gerade meine ersten Schritte in Grafana und stehe noch ein wenig mit der SQL-Syntax auf Kriegsfuß. Besser gesagt bekomme ich meinen Graphen nicht "smooth"...
Im Detail geht es um meine PV-Leistung. Ich habe aktuell diese Abfrage:SELECT floor(ts/1000) as time_sec, val as value, "PV-Leistung" as metric FROM ts_number WHERE $__unixEpochFrom()*1000 < ts and $__unixEpochTo()*1000 > ts and id = 2 ORDER BY ts
Funktioniert soweit tadellos. Jetzt versuche ich seit Tagen übers zusammen-googlen mit MEAN bzw. AVG und GROUP BY meine Abfrage zu tunen. Zum einen in Hinblick auf kleinere Datenmengen bei der Abfrage, zum Anderen für eine "smoothe" Grafik...
Hat vielleicht jemand ein Beispiel dazu, welches ich mit meinen SQL-Grundkenntnissen auch verstehen kann? Oder wie müsste meine Abfrage erweitert werden, wenn ich z.B. aus den Werten von jeweils 5 Minuten einen Mittelwert bilden möchte?Danke.
MfG,
André -
Ich mache grad meine ersten Gehversuche mit Garfana und einer mySQL-DB als Datenquelle. Als Beispiel habe ich hier aus dem Thread meine Test-Abfrage adaptiert:
SELECT floor(nb.ts/1000) AS time_sec, nb.val AS value, dp.name AS metric FROM ts_number AS nb, datapoints AS dp WHERE $__unixEpochFrom()*1000 < nb.ts AND $__unixEpochTo()*1000 > nb.ts AND nb.id = 3 AND nb.id = dp.id ORDER BY nb.ts ASC
Beim ausführen der Abfrage erhalte ich in PHPMYADMIN folgenden Fehler:
#1305 - FUNCTION iobroker.$__unixEpochFrom does not exist
Füge ich das Query in Grafana ein, dann kommt da kein Fehler, aber der Graph zeigt auch keine Daten an.
Stimmt etwas mit meiner mySQL-Syntax nicht?
-
Ich muss das Thema hier noch einmal aufwärmen. Ich bin gerade dabei bei mir auf Grafana umzustellen und hänge an folgenden Punkt.
Ich möchte gerne eine Graph erstellen, in dem ich meinen Tagesverbrauch an Strom darstellen kann.
Mein Stromzähler werte ich aus und alle Daten werden bei mir in die mysql Datenbank geschrieben.Wie bekomme ich diese Graph hin, in der mir Tageweise der Verbrauch angezeigt wird?
Hier ein Beispiel, wie ich mir das gerne bauen will:
Meine Datenpunkt in mysql lese ich wie folgt aus:
SELECT floor(n.ts/1000) as time_sec, n.val as value, "Tagesverbrauch" as metric FROM ts_number n WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 18 GROUP BY $__unixEpochGroup(n.ts,$__interval,previous) ORDER BY n.ts ASC
-
Hallo Ich sowas bei mir laufen. Hier die tägliche PV Produktion - fest eingestellt auf die letzten 2 Wochen:
Das ganze per InfluxDB und Grafana:
-
@Segway
Ich habe inzwischen auch auf Influx gewechselt und meine Log Daten von mysql auf Influx portiert. -
@simatec
Läuft es denn dann ? -
@Segway
Ja mit Influx lässt sich das einfacher in Grafana umsetzen -
Hallo
also das funktioniert bei mir. Ich benutze Mysql und MariaDB.
SELECT floor(nb.ts/1000) AS time_sec, nb.val AS value, dp.name AS metric FROM ts_number AS nb, datapoints AS dp WHERE $__unixEpochFrom()*1000 < nb.ts AND $__unixEpochTo()*1000 > nb.ts AND nb.id = 36 AND nb.id = dp.id ORDER BY nb.ts ASC
Ich bekomme manchmal den Fehler "Data is missing a Time Field" obwohl daten vorhanden sind
Gruß
Werner -
@werners Ich habe es jetzt folgendermaßen gelöst:
SELECT val AS value, ts AS "time" FROM iobroker.ts_number WHERE id = 12 AND $__unixEpochFilter(ts/1000)
Das scheint mir das einfachste zu sein.