Autor Thema: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)  (Gelesen 18049 mal)

Offline saschae

  • New Member
  • *
  • Beiträge: 6
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 .....

Offline Kai-Alfonso

  • Full Member
  • ***
  • Beiträge: 394
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)

Offline LordVoodoo

  • Jr. Member
  • **
  • Beiträge: 82
Du könntest auf den Zeitstempel eine Sekunde aufaddieren, das ist genau genug, sollte aber das Datum richtig setzen.

Offline Kai-Alfonso

  • Full Member
  • ***
  • Beiträge: 394
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)

Offline oliverr

  • New Member
  • *
  • Beiträge: 36
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

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'))