Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)

Begonnen von Thyraz, 08 Oktober 2017, 15:02:38

Vorheriges Thema - Nächstes Thema

saschae

Also das problem das die kurven erst mit einer Stunde Verzögerung anfangen habe ich auch.
In der Datenbank stehen Definitiv Aktuellere Daten

Wenn man in Grafana die Ansicht auf Today stellt zeigt es auch die letzten Daten an aber bei allen anderen Zeiteinheiten ist die Stunde Versatz vorhanden .....

Kai-Alfonso

Moin,

ich bekomme in der DB um 00:00:00 immer Stromwerte vom Vortag.

Der Select dazu sieht so aus

SELECT
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d')) as time,
CONVERT(VALUE, INTEGER) as value,
    "Stromverbrauch Tag" as metric
  FROM history
  WHERE READING="Energy_DayLast" AND DEVICE="Stromzaehler" AND $__timeFilter(TIMESTAMP)


Logischerweise ist der Zeitstempel aber immer für den nächsten Tag, so das die Balken nicht stimmen. Wie kann ich den Select so anpassen, das er  den Timestamp manipuliert, so das er auf den vorherigen Tag zeigt?

Beispiel eines Datensatzes

2018-12-07 00:00:01 Stromzaehler OBIS Energy_DayLast: 11.465 Energy_DayLast 11.465

Der DB Eintrag ist vom 07.12, die Werte aber logischerweise vom 06.12.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

LordVoodoo

Du könntest auf den Zeitstempel eine Sekunde aufaddieren, das ist genau genug, sollte aber das Datum richtig setzen.

Kai-Alfonso

Zitat von: LordVoodoo am 07 Dezember 2018, 08:13:59
Du könntest auf den Zeitstempel eine Sekunde aufaddieren, das ist genau genug, sollte aber das Datum richtig setzen.

müsste ich nicht 2 Sekunden subtrahieren?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

oliverr

Hallo Thyraz,

bin gerade über diesen Graphen gestolpert und wollte ihn Nachbauen.

Ich bekomme diese Fehlermeldung:
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM (SELECT TIMESTAMP, VALUE
         FROM history
         WHERE READING="temperature" AND' at line 5

Da passt wohl was nicht zusammen, aber dafür bin ich in sql einfach zu schlecht um es heraus zu finden und zu beheben.

Grüße,
Oliver

Zitat von: Thyraz am 16 Oktober 2017, 15:53:38
Beispiel: Bereich zwischen 2 Kurven füllen statt bis zur Nulllinie

Ein Feature, das mit anderen Charting Lösungen in FHEM meines Wissens nach bisher nicht ging (man korrigiere mich gerne ;)).
Ich habe hier ein Temperaturchart, welches über das ganze Jahr hinweg die Tagesmitteltemperatur anzeigt.

Da diese allein aber noch nicht so wirklich aussagekräftig ist, wird dahinter noch der Bereich zwischen Min/Max Temperatur des Tages angezeigt.
Gerade die letzten Tage haben wir ja eine Hohe Max-Temperatur aber durch die kalten Nächte dennoch keine wirklich hohen Durchschnittstemperaturen.

Dazu habe ich 3 Kurven angelegt.

Tagesmitteltemperatur:

SELECT
  UNIX_TIMESTAMP((TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, double)) as value,
  "Tagesdurchschnitt" as metric
FROM (SELECT TIMESTAMP, VALUE
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H')
ORDER BY TIMESTAMP ) h
GROUP BY UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d'))



dirkbalzer

Zitat von: RoBra81 am 09 Oktober 2018, 07:59:38
Guten Morgen,

was du suchst mache ich beim SysMon, da hier mehrere Werte in einem Reading gespeichert werden - das "Zauberwort" heißt substring_index. Hier meine Auswertung als Beispiel, bei dir musst du statt der 4 vermutlich eine 2 nehmen und das "100-" kann bei dir auch weg:
...

Ronny


Das passt ja. Ich habe heute Sysmon installiert und bin gerade auf der Suche nach entsprechenden Codeschnipseln für Grafana.
Kannst du mal zeigen was du alles von Sysmon loggst und wie die Graphen dann aussehen? Das würde mir eine menge Arbeit sparen.
Weil ich sags mal so .. der Teil mit CPU Gesamt und dem Substring ... da währ ich nie drauf gekommen  ;D
Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

chriss1006

Ich habe nun auch Grafana nach der Anleitung im Wiki installiert und es hat auch alles super geklappt. Vielen Dank erst mal dafür.

Nun habe ich aber ebenfalls ein unschönes Darstellungsproblem. Meine Plots fangen alle erst um 1 Uhr nachts an. Es gibt definitiv Logeinträge auch vor 1 Uhr, allerdings werden diese in keinem Graphen angezeigt.

Hat jemand eine Idee was man da machen kann?

oliverr

Hallo,

habe auch mal DBlog eingerichtet und mir einige Grafana Plots erstellt. Ist wirklich schön.
Habe hier einen Feinstaubsensor, der schon lange in eine influxDB schreibt und erst seid kurzen in die Datenbank für FHEM.
Da ich gerade mit Durchschnittswerten und Anzeigen am basteln bin, würde ich gerne auch ältere Daten die in der influxDB sind in die mysql DB einfügen um so meine historischen Daten auch auswerten zu können (mit den Abfragen die ich schon habe).

Wie bekommt man die Daten von influxDB in die mysql DB?

Umgekehrt habe ich schon viel gelesen.

Grüße,
Oliver

chriss1006

Ich habe das Problem auch, dass die Plots erst um 1 Uhr beginnen. Geholfen habe ich mir damit, dass ich die Zeitzone von Grafana auf UTC umgestellt habe und in jedem Plot einen Offset von 1 Stunde eingefügt habe.
Somit stimmen nun die Plots, aber irgendwie kann ich mir nicht vorstellen das das im Sinne des Erfinders ist.

Wundert mich, dass das Problem nur bei einigen wenigen Usern zu sein scheint.

ChrisW

kurze frage wie schaut es mit Grafana und einem ext. mysql server aus ? Würde gerne mein FHEM auch in mysql loggen aber ext. Docker auf ner Synology NAS.
Was verbraucht Grafana ? Sollte ich dafür ein extra Docker laufen lassen ?
Mein Pi3 hat aktuell Fhem und iobroker drauf ich denke da wäre Grafana dann etwas zu viel?
Raspberry PI3 mit allem möglichen.

andies

ich habe fhem, mysql und grafana auf RPi3 mit load 0,05, CPU 5% usw
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

kadettilac89

Zitat von: ChrisW am 21 Januar 2019, 10:13:22
kurze frage wie schaut es mit Grafana und einem ext. mysql server aus ? Würde gerne mein FHEM auch in mysql loggen aber ext. Docker auf ner Synology NAS.
Was verbraucht Grafana ? Sollte ich dafür ein extra Docker laufen lassen ?
Mein Pi3 hat aktuell Fhem und iobroker drauf ich denke da wäre Grafana dann etwas zu viel?

CPU reicht für Grafana problemlos. Was du aber prüfen und beachten solltest ... Grafana läuft auf dem Raspberry, Daten kommen über das Netzwerk. Je nachdem wie oft und wie lange die Verbindung über das Netzwerk geht kann es Wartezeiten geben. Wenn Grafana zusammen mit der DB auf der Synology läuft werden nur die fertigen Grafiken über das Netz übertragen.

Muss man halt mal testen, denke die Reaktionszeit mit beiden Docker auf der Synology ist schneller.

ChrisW

hm also irgendwie klappen bei mir die Muster nicht. Kann es sein das ich in der db.conf "utf8 => 1" aktiv habe ?? Oder mysql8 benutze ?
Value column must have numeric datatype, column: value type: string value: 18.7


So schaut es in phpmyadmin aus:
2019-01-21 16:18:54
temp_keller
LACROSSE
temperature2: 18.6
temperature2
18.6
°C
Raspberry PI3 mit allem möglichen.

kadettilac89

Zitat von: ChrisW am 21 Januar 2019, 16:44:49
hm also irgendwie klappen bei mir die Muster nicht. Kann es sein das ich in der db.conf "utf8 => 1" aktiv habe ?? Oder mysql8 benutze ?
Value column must have numeric datatype, column: value type: string value: 18.7


Wo genau bekommst du die Meldung? Welche Anleitung bzw. welche Query hast du wo eingebaut? Ich nutze zwar InfluxDB für Grafana, aber bin selber grad am rumtesten dann kann ich es ggf. später mal einklopfen ...

ChrisW

Unter Metrics wenn ich den SQL da reintrage:
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "temp_keller" as metric
FROM history
WHERE READING="temperature2" AND DEVICE="temp_keller" AND $__timeFilter(TIMESTAMP)


Lieg sicher an den Formt bei mir ist value 18.2  type in phpmyadmin: VARCHAR
Und die Datenbank utf8_bin
Raspberry PI3 mit allem möglichen.