FHEM Forum

FHEM => Frontends => Thema gestartet von: Thyraz am 08 Oktober 2017, 15:02:38

Titel: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 08 Oktober 2017, 15:02:38
Hallo zusammen. :)

Worum gehts:
Grafana beschreibt sich als "The open platform for beautiful analytics and monitoring".
Eine Live Demo zum Erkunden findet man hier: http://play.grafana.org

Grafana konnte bis vor kurzem noch nicht mit MySQL als Datasource umgehen, was das Zusammenspiel mit der eigenen DBLog Datenbank erschwerte.
(Dadurch entstand z.B. das hier im Forum erhältliche Modul zum Loggen in eine InfluxDB, womit man eine doppelte Datenhaltung in Kauf nahm.)
Dies hat sich zum Glück seit einiger Zeit geändert und seit Grafana 4.5.1 ist das Ganze sehr brauchbar.

Was ist der Vorteil der Lösung?
- Man kann den angezeigten Zeitraum einfach über ein Dropdown ändern. Dort gibt es viele Presets wie Letzte 24h, 6 Monate, 1 Jahr, ... und eine Auswahl über eine Kalenderansicht.
Auswertungen machen so weit mehr Freude und gehen leicht von der Hand.

- Die Legende kann außerdem automatisch Dinge wie Min/Max/Durchschnitt aller Werte im gerade gewählten Zeitraum mit anzeigen was auch sehr nett ist.

- Man kann direkt in Grafana Dashboards mit verschiedenen Auswertungen arrangieren. Ein weiteres Frontend zur Platzierung mehrerer Charts wird also nicht benötigt.
Das Embedden einzelner Charts in andere Seiten ist aber natürlich auch möglich.

- Es gibt verschiedene Paneltypen, welche neben dem klassischen Chart (Line / Bar / Point) auch Pie Charts oder Tabellen beinhalten.

- Durch die Nutzung von MySQL Select Requests hat man vielseitige Möglichkeiten Daten auszuwerten oder auch schon beim Laden zu manipulieren oder auszudünnen.
Das geschieht dann direkt serverseitig in MySQL und das Ausdünnen entlastet Clients wie etwa Mobilgeräte und erzeugt dann auch weniger Traffic.

- Die UI lädt schnell und ist auf all meinen Geräten flüssig und einfach zu bedienen.
Sie passt sich auch bei Größenänderungen des Fensters (oder drehen des Mobilgeräts) an und zeichnet die Charts hier sehr schnell neu.
Auch das ist ein deutlicher Vorteil gegenüber den Charts die ich bisher mit FHEM/TabletUI/... genutzt hatte.


Installation und Konfiguration kommt im nächsten Post..
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 08 Oktober 2017, 15:02:58
Voraussetzungen:
Ihr braucht eine DBLog Instanz die in eine MySQL Datenbank loggt.
Ich hatte bisher SQLite3 verwendet und habe meine Altdaten daher in eine neue MySQL Datenbank umgezogen.

Installation und Einrichtung einer DBLog Instanz mit MySQL:
https://wiki.fhem.de/wiki/DbLog#Beispiel:_Anlegen_und_Nutzung_einer_Mysql-Datenbank

Sicherung der Altdaten aus SQLite und wieder einspielen in MySQL:
https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Datens.C3.A4tze_.28Devices.29_von_einer_Datenbank_in_eine_andere_umziehen_.28Export.2FImport.29
Das Beispiel sichert nur Logdaten für ein einzelnes Gerät und nicht für alles aus der DB.
Das lässt sich aber problemlos anpassen, indem man das Attribut device in der DBRep Instanz nicht belegt.

Ein Umstieg von Filelog auf DBLog würde ebenfalls mit dem ober verlinkten Erstellen einer DBLog Instanz mit MySQL starten.
Import der Altdaten aus den Filelogs wäre darüber möglich:
https://forum.fhem.de/index.php/topic,66383.0.html

Installation
Offizieller Download: https://grafana.com/grafana/download
Fertiges Package für den Raspberry Pi, welches einfach mit dpkg -i grafana_X.X.X_armhf.deb installiert werden kann: https://github.com/fg2it/grafana-on-raspberry/releases

Damit Grafana automatisch mit dem System startet muss der Grafana Server noch aktiviert werden.
Bei Verwendung von Systemd wäre das mit folgendem Befehl zu erledigen: sudo /bin/systemctl enable grafana-server

Grafana lauscht per default auf Port 3000.
Dies kann ein Problem sein, falls man Alexa mit Custom Skill nutzt. Dieser Dienst belegt ebenfalls schon Port 3000.
In dem Fall mit sudo nano /etc/grafana/grafana.ini die Konfiguration anpassen folgende Zeile anpassen:
;http_port = 3000
Hier den führenden Semicolon entfernen den Port entsprechend abändern.

Im Grafana Webinterface dann eine neue Datasource vom Typ MySQL anlegen und die Daten eurer FHEM MYSQL Datenbank eintragen (Port/User/Passwort).
Danach solltest ihr startklar sein.  8)

Hinweise zu MySQL Selects in Grafana
Datenstruktur:
An sich ist es egal wie der MySQL Select aussieht. Grafana interessiert nur, dass es 3 Spalten mit der richtigen Benennung geliefert bekommmt.
  - time_sec muss Zeitwerte im UNIX-Timestamp Format (Sekunden seit 01.01.1970) enthalten. Meist der TIMESTAMP Eintrag aus der Datenbank.
  - value muss Werte für die Y-Achse liefern, welche den Zeitstempeln aus time_sec zuzuordnen sind. Meist der VALUE Eintrag aus der Datenbank.
  - metric ist der Text der für die Kurve in der Legende angezeigt wird. Am Besten z.B. den zugehörigen DEVICE Eintrag aus der DB zurückliefern, oder einen festen String.

Beim den VALUE Einträgen von FHEM muss man beachten, dass diese (da sie auch Text beinhalten können) nicht numerisch sind.
Soll schon intern im SELECT eine Berechnung durchgeführt werden wie AVG oder MIN/MAX dann muss man hier CONVERT(VALUE, DOUBLE) oder CONVERT(VALUE, INTEGER) verwenden. Ansonsten wundert man sich evtl, dass 9 größer 12 ist. ;)

Beispiel:

SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    "Kurvenbezeichnung" as metric
  FROM history
  WHERE READING="state" AND DEVICE="MyDummy" AND $__timeFilter(TIMESTAMP)


Nützliche Macros:
Grafana bietet ein paar Macros die man in den MySQL Selects verwenden kann, um die zu ladenden Daten auf den angezeigten Zeitraum zu begrenzen.
  - $__timeFilter(TIMESTAMP) liefert eine Überprüfung auf einen Zeitraum zurück, die man in der WHERE Bedingung verwenden kann (siehe obiges Beispiel)
  - $__timeFrom() liefert den Startzeitpunkt des angezeigten Zeitraums als "YYYY-MM-DD HH:MM:SS" zurück.
  - $__timeTo() liefert den Endzeitpunkt des angezeigten Zeitraums als "YYYY-MM-DD HH:MM:SS" zurück (so loggt auch DBLog in die Datenbank).
  - $__unixEpochFrom() liefert den Startzeitpunkt des angezeigten Zeitraums als UNIX-Timestamp Format (Sekunden seit 01.01.1970) zurück.
  - $__unixEpochTo liefert den Endzeitpunkt des angezeigten Zeitraums als UNIX-Timestamp Format (Sekunden seit 01.01.1970) zurück.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 08 Oktober 2017, 15:03:05
Beispiel: Line-Chart für Temperatursensor

Erstellt ein neues Dashboard und dort eine neues Panel vom Typ Chart.
Klickt auf den Panel-Title und im Popup Menu auf Edit.

Wählt hier den Tab "Metrics" um die MySQL Definition anzupassen.
Ersetzt den Code mit diesem hier:


SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Garten" as metric
FROM history
WHERE READING="temperature" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)


Danach könnt ihr auf Add Query klicken falls ihr weitere Kurven zu dem Diagramm hinzufügen wollt (weitere Temperatursensoren).

Zu guter Letzt könnte man noch im Reiter General den Chart Title anpassen, im Reiter Axes die Unit auf "°C" setzen und im Reiter Legend entscheiden ob ihr Min/Max/Durchschnittswerte unter dem Diagramm wollt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 09 Oktober 2017, 11:02:21
Beispiel: Bar Chart mit monatlichen Verbräuchen
Ich habe in meiner Datenbank Logeinträge von mehreren Statistic-Modul Instanzen die mir den täglichen / monatlichen / jährlichen Stromverbrauch diverser Geräte aufzeichnen.

Das Problem ist hier, dass zB. bei den monatlichen Verbräuchen der Timestamp 5 Sekunden vor dem Monatswechsel geloggt wird.
Dadurch sitzt der Balken im Diagramm mehr im nächsten Monat als im eigentlich zugehörigen.
Um das zu umgehen wird die DATE_FORMAT Funktion von MySQL genutzt um Uhrzeit und Tag des Monats im Timestamp zu manipulieren:


SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-01')) as time_sec,
  VALUE as value,
  "Trockner" as metric
FROM history
WHERE READING="statEnergyValMonthLast" AND DEVICE="Dummy_PowerSwitch04" AND $__timeFilter(TIMESTAMP)


- Im Reiter Display ist der Draw Mode statt Line auf Bars gesetzt
- Im Reiter Time Range habe ich Override relative time auf 1 Jahr (1y) gesetzt
- Beim Select Statement für das zweite Gerät im Balkendiagramm habe ich den Tag in der DATE_FORMAT Funktion nicht auf 1, sondern auf 4 gesetzt. Dadurch sind die Balken etwas versetzt zu einander.
Das ist optisch von Vorteil falls der hintere Balken mal kleiner ist als vordere.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 11 Oktober 2017, 07:32:05
Beispiel: Mehrere Linecharts stapeln
Um mehrere Schaltsignale (in diesem Fall Ventile der Fußbodenheizung) in einem Chart dazustellen, habe ich den Y-Wert (0 oder 1) der einzelnen Kurven im Select Statement mit unterschiedlichen Offsets verrechnet.
Dadurch werden die Linien untereinander gezeichnet und sind besser ablesbar.

Erste Linie ohne Offset:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, INTEGER) + 2 as value,
  "Flur" as metric
FROM history
WHERE READING="Heizkreis_Flur" AND DEVICE="Heizung" AND $__timeFilter(TIMESTAMP)


Zweite Linie mit Offset:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, INTEGER) + 2 as value,
  "Wohnzimmer" as metric
FROM history
WHERE READING="Heizkreis_Wohnzimmer" AND DEVICE="Heizung" AND $__timeFilter(TIMESTAMP)


Die weiteren Linien dann eben mit entsprechend größeren Offsets.
Die Achsenbeschriftung der Y-Achse habe ich bei dem Diagramm dann ausgeblendet, da sie keine sinnvolle Information liefert.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 11 Oktober 2017, 07:33:04
Beispiel: Kurve ausdünnen bei zu vielen Messwerten (lange Ladezeiten / langsamer Seitenaufbau)

Meine LaCrosse Thermometer loggen die Temperatur mit 0.1°C Genauigkeit, wodurch man an sich ständig Schwankungen hat und somit massig Messwerte.
Damit die Diagramme auf dem Handy anständig laden, zeige ich weit weniger Punkte in der Kurve an, als Messwerte vorhanden sind.
Um dennoch eine möglichst genaue Darstellung der Kurven zu bekommen, wird dazu jeweils aus den zusammengefassten Punkten der Mittelwert gebildet.

Zuerst das normale Select Statement mit allen Messpunkten:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Original" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)


Und hier dann die angepasste Version mit Gruppierung zu 300s / 5min und der Average Berechnung:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, DOUBLE)) as value,
  Geglättet" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300


Edit:
Es gibt noch eine erweiterte Möglichkeit um die Stärke der Glättung an den gerade gewählten Zeitraum anzupassen.
Das hilft, damit bei einem Anzeigezeitraum von 1 Woche ähnlich viele Datenpunkte angezeigt werden wie wenn man 1 Jahr wählt.
Bei einer Gruppierung mit einem festen Sekunden-Teiler wäre dies nicht der Fall.

Grafana bietet hierzu eine Variable $__interval welche sich beim ändern des Zeitraums anpasst.
Sie nimmt dabei Werte wie z.B. 2s, 5m, 1h an.
Dies kann man wie folgt verwenden:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, DOUBLE)) as value,
  "Geglättet" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV CASE RIGHT($__interval, 1) 
                                          WHEN 's' THEN $__interval
                                          WHEN 'm' THEN $__interval * 60
                                          WHEN 'h' THEN $__interval * 3600
                                          WHEN 'h' THEN $__interval * 86400
                                          ELSE $__interval
                                        END


Wem die Glättung dabei zu gering ausfällt, kann hinter das *60, *3600 usw. auch noch einen weiteren Multiplikator hinzufügen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Jupdidu am 11 Oktober 2017, 09:50:15
Hallo,
das liest sich sehr gut.

Könnte man damit auch Charts als PNG exportieren und dann z.B. per Telegram versenden?

Gruß
Jupp
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Hauswart am 11 Oktober 2017, 09:56:48
Sieht der gut aus, würde es leider im FHEMWEB / TabletUI nutzen können. Denn eine neue Übersicht nur für Charts sehe ich bei mir nicht, wenn dann TabletUI, damit ich auch einzelne Aktoren steuern kann.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 11 Oktober 2017, 11:21:48
Zitat von: Jupdidu am 11 Oktober 2017, 09:50:15
Könnte man damit auch Charts als PNG exportieren und dann z.B. per Telegram versenden?

Ja, gibt in der Doku eine Sektion zum Sharen.
Das beinhaltet verschiedene Embed Lösungen, aber auch direkte PNG Erstellung eines Diagramms.

Hier ein Beispiel mit Link auf die Online-Demo von Grafana:
http://play.grafana.org/render/dashboard-solo/db/grafana-play-home?orgId=1&panelId=4&from=1507705926296&to=1507713126297&width=450&height=200&tz=UTC%2B02%3A00&timeout=5000

Zitat von: Hauswart am 11 Oktober 2017, 09:56:48
Sieht der gut aus, würde es leider im FHEMWEB / TabletUI nutzen können. Denn eine neue Übersicht nur für Charts sehe ich bei mir nicht, wenn dann TabletUI, damit ich auch einzelne Aktoren steuern kann.

Für TabletUI könnten die Embed Möglichkeiten hilfreich sein:
http://docs.grafana.org/reference/sharing/
Ich weiß nur nicht wie das dann mit der Wahl des Zeitraums ist, wenn man keine Topbar von Grafana hat.
Müsste man mal testen.

Ich hab mir eher überlegt die gesamte Grafana Seite in einen Pagetab von TabletUI per iframe zu legen. Mal sehen...
Evtl. bekommt man das mit ein paar CSS Anpassungen auch optisch stimmig zum Rest hin.

Edit: der iframe Link beinhaltete die Timerange.
Man könnte mit etwas Javascript sicher den Wert eine Dropdowns in TabletUI verwenden und das iframe neu Laden.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 12 Oktober 2017, 14:15:57
Beispiel: Plottabriss vermeiden

Fast jede Plot-Lösung lädt ja immer nur die Daten für den anzuzeigenden Zeitraum.
Dadurch ergibt sich das Problem, dass die Linie oft nicht zu Beginn des Diagramms anfängt und schon vor dem Ende des Diagramms (oder des aktuellen Zeitstempels) aufhört.

Nun könnte man natürlich FHEM zwingen mehr Werte zu loggen, z.B. in festen Zeitabständen wie jede Minute.
Das erzeugt aber natürlich Unmengen an unnötigen Daten.

Die zweite Lösung ist die, welche normal mit den SVGPlots in FHEM in Verbindung mit Logproxy empfohlen wird:
den Abfragebereich der Werte größer machen als den angezeigten Bereich.
Das wäre mit Grafana und MySQL auch Problemlos möglich.

Das hat aber auch einen Nachteil:
Ändert sich z.B. ein Wert einmal über mehrere Tage nicht, kann es wieder zu einem Abriss kommen obwohl ich ein paar Stunden mehr lade als angezeigt.
Oder ich lade wirklich mehrere Tage vor und nach dem Anzeigebereich.
Wenn die Kurven dann aber doch viele Einträge haben, kann das Laden der Diagramme sehr langsam werden.

Daher hab ich mir überlegt was man eigentlich genau will:
- Den letzte Datenpunkt vor dem angezeigten Zeitraum
- Den ersten Datenpunkt nach dem angezeigten Zeitraum (Bei einem Anzeigezeitraum bis zur aktuellen Zeit, oder bis in die Zukunft wird hier eben kein Datenpunkt gefunden)
- Einen zusätzlichen virtuellen (nicht in MySQL vorhandenen) Datenpunkt, der den letzten Zustand in der Datenbank nimmt und ihn mit der aktuellen Zeit kombiniert.
  Dadurch wird der Plot auch nach dem letzten Wert in der DB noch bis zum aktuellen Zeitpunkt weitergezeichnet.

Das ganze sind dann einzelne Select Statements, deren Ergebnisse mit UNION zu einer Tabelle verbunden werden:

-- Eigentliche Kurve
(
  SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
   "Wohnzimmer" as metric
  FROM history
  WHERE READING = "Heizkreis_Wohnzimmer" AND DEVICE = "Heizung" AND $__timeFilter(TIMESTAMP)
)

UNION

-- Kurve am Anfang um den letzten Wert vor dem aktuellen Zeitraum erweitern
(
  SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    "Wohnzimmer" as metric
  FROM history
  WHERE READING = "Heizkreis_Wohnzimmer" AND DEVICE = "Heizung" AND TIMESTAMP <= $__timeFrom() -- Letzter Wert vor Anfangszeit des aktuellen Zeitraums
  ORDER BY TIMESTAMP DESC
  LIMIT 1   
)

UNION

-- Kurve mit nächstem Wert nach dem aktuellen Zeitraum erweitern
(
SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    "Wohnzimmer" as metric
  FROM history
  WHERE READING = "Heizkreis_Wohnzimmer" AND DEVICE = "Heizung" AND TIMESTAMP >= $__timeTo() -- Letzten Wert im aktuellen Zeitraum holen
  ORDER BY TIMESTAMP ASC
  LIMIT 1 
)

UNION

-- Kurve mit letztem Wert der Kurve (nicht des gewählten Zeitraums) bis zum aktuellen Zeitpunkt erweitern
(
SELECT
    UNIX_TIMESTAMP(NOW()) as time_sec,
    VALUE as value,
    "Wohnzimmer" as metric
  FROM history
  WHERE READING = "Heizkreis_Wohnzimmer" AND DEVICE = "Heizung"
  ORDER BY TIMESTAMP DESC
  LIMIT 1
)

ORDER BY time_sec ASC


Da hier nur 3 weitere Werte zusätzlich zur eigentlichen Kurve selektiert werden, spürt man den Unterschied von der Ladezeit nicht.

Im angehängten Screenshot sieht man dann oben die Originalkurve und unten die korrigierte Kurve ohne Plotabriss.
Da der angezeigte Zeitraum in die Zukunft reicht, wird die Kurve bis zum aktuellen Zeitpukt und nicht bis zum Diagrammende gezeichnet.
(Eingestellter Zeitraum war der aktuelle Tag und der Screenshot wurde 12:15 aufgenommen.)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fischit am 12 Oktober 2017, 15:28:35
Zitat von: Thyraz am 11 Oktober 2017, 11:21:48

Für TabletUI könnten die Embed Möglichkeiten hilfreich sein:
http://docs.grafana.org/reference/sharing/
Ich weiß nur nicht wie das dann mit der Wahl des Zeitraums ist, wenn man keine Topbar von Grafana hat.
Müsste man mal testen.

Ich binde mir die Bilder über
http://192.168.2.111:3000/render/dashboard-solo/db/luftdaten?orgId=2&from=now%2Fd&to=now&panelId=1&width=750&height=300&tz=UTC%2B02%3A00
ein.

Den Teil der URL from=now%2Fd&to=now kann man individuell machen.
Standardmäßig sind das fixe Zeitpunkte (wie im Beispiel mit 1507705926296). Mit "Now" etc. kann man das dynamisch gestalten und so einen alternativen, dynamischen Plot im FHEM darstellen.

Beispiel:
- from=now%2Fd&to=now: Today so far
- from=now-30d&to=now: Die letzten 30 Tage
- from=now-395d&to=now-365d: Die letzten 30 Tage vor einem Jahr (Temperaturvergleich zum Vorjahr z.B.)

Grüße
Nils
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 12 Oktober 2017, 15:29:18
Hab jetzt unter Hinweise zu MySQL Selects in Grafana in Post 2 mal ein paar Basics zusammengefasst,
was Grafana eigentlich als Rückgabewerte von dem MySQL Select erwartet um das Diagramm zeichnen zu können.

Außerdem die Erklärung wie man dem Select die anzuzeigende Zeitspanne übergibt um nur wirklich benötigten Daten zu laden.

P.S. Ich hoffe ich störe hier keinen mit meinem Monolog. ;D
Aber ich dachte wenn ich mir das als MySQL Noob schon alles hart ergooglen erarbeiten muss,
kann ich es ja wenigstens für die Nachwelt festhalten...

edit: Danke für die Info fischit. :)
Gerade gesehen, dass man die Parameter dafür in der URL eines Dashboards sieht, wenn man den zeitraum umstellt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag 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'))

Hier werden erst nach Zeit sortiert alle Temperaturwerte eingelesen und nach Stunden gruppiert. Dadurch wird jeweils der erste Wert pro Stunde selektiert.
Diese Werte werden dann nochmal nach Tagen gruppiert, und aus allen Einzelwerten einer Tagesgruppe wird der Durchschnitt gebildet.

Damit versuche ich möglichst nahe an die Definition aus Wikipedia zu kommen, nach der aus allen Stundenwerten von 00 bis 23 Uhr die Tagesmitteltemperatur gebildet wird:
https://de.wikipedia.org/wiki/Tagesmitteltemperatur

Tages-Maxwerte:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MAX(CONVERT(VALUE, double)) as value,
  "Min/Max" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d'))


Tages-Minwerte:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MIN(CONVERT(VALUE, double)) as value,
  "Min/Max Baseline" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d'))


Unter Display -> Series Overrides wird nun folgendes eingestellt:
- Kurve Min/Max -> Fill below to : Min/Max BaseLine (Sollte automatisch Lines: False für beide Linien als Override hinzufügen, so dass nur die Füllung und keine Linien zu sehen sind
- Min/Max Baseline -> Legend: false, damit man als Legende nur Tagesmittelwert und Min/Max sieht.

Als festen Anzeigezeitraum für das Diagram habe ich dann noch 1 Jahr eingestellt.

Für den Screenshot hab ich jetzt aber kurz auf 1 Monat umgestellt, da wir erst umgezogen sind und das Diagramm sonst so leer aussieht.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fischit am 16 Oktober 2017, 16:32:53
Hi Thyraz,

ich finds sehr geil was du hier ausarbeitest und als fertige Lösung zur Verfügung stellst.
Ich hab selber sehr wenig Ahnung von SQL aber damit kann ich endlich die Daten in einer schönen Weise grafisch darstellen.

Auch kommen so gerade neue Ideen und Dinge die ich umsetzen will :)

Von daher führ gerne deinen "Monolog" weiter - ich lese fleißig mit.

Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 30 Oktober 2017, 19:27:40
Hallo

zu diesem Punkt
Zitat von: Thyraz am 11 Oktober 2017, 07:33:04
Beispiel: Kurve ausdünnen bei zu vielen Messwerten (lange Ladezeiten / langsamer Seitenaufbau)

hätte ich eine Idee, welche ich leider nicht umsetzen kann:
Wäre es möglich, nur Messpunkte nach einer Wertänderung anzuzeigen, anstatt einen Durchschnitt zu berechnen?
Hintergrund ist, wenn ich mein Raumklima übers Jahr darstellen will, werden die rechtecke der Ventilöffnungen komplett verfälscht.

Ich möchte DBLog nicht so umstellen, dass nur geänderte Werte geloggt werden.


Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 02 November 2017, 12:25:55
@ sku, bin wie gesagt auch MySQL Noob. ;)
Hat daher ein wenig Knobeln und (und Googlen :P) gebraucht, hab aber eine Lösung gefunden denke ich.


SELECT
  time_sec,
  value,
  "Kurvenbezeichnung" as metric
  FROM (
    SELECT
      UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
      VALUE as value,
      IF (@OLDVAL <> VALUE AND @OLDVAL := VALUE, 1, 0) as different
    FROM history
    JOIN (SELECT @OLDVAL := '-1') AS var
    WHERE READING="temperature" AND DEVICE="Thermometer" AND $__timeFilter(TIMESTAMP)
    ORDER BY TIMESTAMP
  ) t
WHERE different = 1
ORDER BY time_sec


Versuche das Ganze mal zu erklären.
Fangen wir mir dem inneren Select an:

Hier wird mit dem Join erstmal eine Variable "OldVal" belegt.
Dann werden alle Zeitstempel und zugehörige Werte für unsere Device/Readings Kombination geholt.

Zusätzlich wird in den zurückgelieferten Daten eine weitere Spalte "different" erzeugt.
Zuerst wird verglichen ob sich der aktuelle Wert von dem aus dem letzten Eintrag unterscheidet, dann der aktuelle Wert als Vergleichswert für die nächste Zeile gespeichert.

Die so erstellte Tabelle dient dann als Quelle für einen weiteren SELECT Aufruf,
welcher sich nur die Einträge holt bei denen die Spalte "different" eine 1 beinhaltet.

Evtl bietet sich zur Darstellung dann eine Staircase Linie an.

P.S. um mit sowas rumzuspielen bietet sich SQL Fiddle an.
Damit kann man sehr schön testen wie sich Änderungen am Select Query auswirken.

Habe so zuerst mal das innere SELECT aufgebaut:
http://sqlfiddle.com/#!9/22fb14/25

und dann das Äußere hinzugefügt:
http://sqlfiddle.com/#!9/22fb14/24

So sieht man an der resultierenden Tabelle sehr gut was aus dem Query zurückkommt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 02 November 2017, 21:02:36
Vielen Dank für deine Antwort!
Ich kam mit Mysql noch nie zusammen... Sqlfiddle hatte ich bei meiner stundenlangen Suche gefunden, aber ich konnt einfach nix sinnvolles zusammenbauen.

Dein Code funktioniert! Danke!

Eine Sache wollt ich noch verbessern, bin aber wieder gescheitert:
Ich habe versucht deinen Code auch so zu ergänzen, dass "off" durch "0.0" ersetzt wird. Ersetzen funktioniert, die Zeilen mit 0.0 werden angezeigt, wenn ich die vorletzte auskommentiere. Jedoch wird das aus irgendeinem Grund beim Vergleichen nicht als geänderter Wert markiert...
Die Änderung von off auf 0 hat den kosmetischen Hintergrund, dass den Sommer über die desired-temp nicht als Strich durch die Grafik gezogen wird. Damit ich sehe, wann aufgehört wurde, eine desired-temp zu setzen.
Kannst du mir bitte nochmal helfen?

Hier meine Bastelei:
http://sqlfiddle.com/#!9/a41a9/18 (http://sqlfiddle.com/#!9/a41a9/18)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 02 November 2017, 22:41:20
Mir fiel eben auf, es funktioniert leider nicht bei Ventilpositionen, der Wert 0 wird weg gelassen... Habe auch einen screenshot angehängt.
http://sqlfiddle.com/#!9/0dda55/1 (http://sqlfiddle.com/#!9/0dda55/1)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 03 November 2017, 09:23:42
Ich glaub ich hab den Fehler warum es manchmal nicht geht.
Um die Variable OldVal bei jedem Durchlauf auf den neuen Wert upzudaten, hab ich die Zuweisung ja in das IF-Statement mit reingetrickst.

Bin davon ausgegangen, dass der Rückgabewert der Zuweisung immer als "true" ausgewertet wird.
Bei Nullen oder Strings scheint dies aber nicht der Fall zu sein.
Habe die Zuweisung nun nochmal in ein IF gekapselt, welches immer eine 1 zurückliefert.

Damit scheinen beide Fälle zu funktionieren:
http://sqlfiddle.com/#!9/3df417/5
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 03 November 2017, 10:42:20
Funktioniert, DANKE nochmal!

Hier nochmal zur Dokumentation der Code, mit Verbesserungen:
* Zeile 7 timestamp für Grafana, wie Thyraz bereits mal geschrieben hat
* Zeile 12 um " AND $__timeFilter(TIMESTAMP)" ergänzt, damit nicht die komplette DB durchsucht wird
SELECT
  time_sec,
  CONVERT(VALUE, double) as value,
  "Kurvenbezeichnung" as metric
  FROM (
    SELECT
      UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
      IF (VALUE = "off", 0, VALUE) as value,
      IF (STRCMP(@OLDVAL, VALUE) != 0 AND IF(@OLDVAL := VALUE, 1, 1), 1, 0) as different
    FROM history
    JOIN (SELECT @OLDVAL := '-1') AS var
    WHERE READING="temperature" AND DEVICE="Thermometer" AND $__timeFilter(TIMESTAMP)
    ORDER BY TIMESTAMP
  ) t
WHERE different = 1
ORDER BY time_sec


Und einen Screenshot, wie so ein Plot "Last 1 year" ausschaut, hab ich auch angehängt.

EDIT: ich habe im Code die 3. Zeile angepasst, damit sie mit Grafana ab Version 5.1 funktioniert. Vorher stand
value,
jetzt steht
CONVERT(VALUE, double) as value,
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 07 November 2017, 09:52:22
@sku

Dir auch mein Dank an für deine letzte Fragestellung.
Erst dadurch hab ich Variablen in MySQL entdeckt. ;)

Hab dadurch nun hinbekommen Zeitwerte zwischen einzelnen Timestamps berechnen zu lassen und somit z.B. Summen-On und Summen-Off Zeiten pro Tag oder Monat für Geräte direkt im MySQL Select zu berechnen. :)

Mit sowas lässt sich dann z.B. Betriebsstunden pro Monat zählen, oder die summierte Heizzeit eines Fußbodenheizkreises pro Tag.
Bisher hab ich dafür das Statistics Modul in FHEM laufen lassen um mir das als Duration pro Tag und Duration pro Monat zusätzlich zum eigentlichen On/Off Wert in die DB loggen zu lassen.

Das mag nicht jeden stören, es verhindert aber zumindest das grafische Auswerten von Alt-Daten bevor man auf die Idee kam so ein Chart zu benötigen.
(Davor hat man wahrscheinlich eher kein Statistics Modul dafür laufen lassen.)
In Zeiten von Big Data möchte man eben einfach sagen können "Ich hab hier einen Haufen Daten aus den letzten Jahren, lass uns das mal auswerten".

Ein Beispiel dafür folgt bald...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: screetch82 am 08 November 2017, 16:13:02
Hi

das sieht echt super aus. Damit kann ich ja auch nicht FHEM datenbanken visualisieren und als png Bild in FHEM oder als HTML Webseite anzeigen richtig?

(Hintergrund: Ich habe eine Weishaupt solarthermie anlage. Diese logt ca 15 Parameter und Temperaturen im CSV format auf eine Wifi SD Karte. Per Cronjob kopiere
diese von der SD auf den Raspi und dann in ein MariaDB auf der NAS.  Die Werte möchte ich nun auslesen und die Wärmemenge pro Stunde, Tag, Woche, Monat
berechnen und als Verlausdiagramm ausgeben ohne den Umweg zu gehen die Werte in FHEM als Readings zu importieren und nochmal neu mit DBLog zu schreiben)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 09 November 2017, 06:57:43
Klaro,

wo die Daten herkommen ist ja erstmal egal.
Du brauchst in der DB eben Zeitstempel/Werte Paare welche du dir in Grafana ziehen kannst.

Embedding Optionen zum Einbinden in FHEM wurden auf der ersten Seite auch schon angesprochen und glaube auch verlinkt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 09 November 2017, 09:57:36
Ich habe bei der Installation Probleme, kann mir jemand helfen? Ich habe aus svn die Daten geholt und dann bei ci build.sh aufgerufen. Das ergab bei meinem RPi3
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
crossbuild-essential-armhf : Hängt ab von: gcc-arm-linux-gnueabihf (>= 4.9.1-1) soll aber nicht installiert werden
                              Hängt ab von: g++-arm-linux-gnueabihf (>= 4.9.1-1) soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
+ CC=arm-linux-gnueabihf-gcc
+ CXX=arm-linux-gnueabihf-g++
+ install_phjs
+ PHJSURL=https://github.com/fg2it/phantomjs-on-raspberry/releases/download/v2.1.1-wheezy-jessie
+ PHJS=/tmp/armv7/phantomjs
+ mkdir -p /tmp/armv7
+ curl -sSL https://github.com/fg2it/phantomjs-on-raspberry/releases/download/v2.1.1-wheezy-jessie/phantomjs -o /tmp/armv7/phantomjs

Wie komme ich da weiter?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 09 November 2017, 12:03:37
Hast du denn die Abhängigkeiten die er dir anzeigt per apt-get zu installieren versucht?

Ansonsten da du einen Pi hast: Gibt es einen Grund es selbst kompilieren zu wollen?
In Post #2 ist ein Link zu fertigen Packages für den Pi.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 09 November 2017, 17:09:24
Ich finde die Seite https://bintray.com/fg2it/deb/grafana-on-raspberry/v4.6.1#files/main%2Fg (https://bintray.com/fg2it/deb/grafana-on-raspberry/v4.6.1#files/main%2Fg) etc total unübersichtlich. Ich "sehe" da keine ausführbaren Dateien...

PS Ich bin mal präziser. Einmal heißt es "No direct downloads selected for this package." Dann steht "Files" als Menüpunkt und da sind eine Menge files, aber anscheinend keine ausführbaren. Und so geht das weiter.

<edit> gelöst. So geht das
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1.linux-x64.tar.gz
tar -zxvf grafana-4.6.1.linux-x64.tar.gz
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 09 November 2017, 18:05:08
Zu früh gefreut

$ sudo ./grafana-server
./grafana-server: 8: ./grafana-server: Syntax error: word unexpected (expecting ")")
$ ./grafana-server
-bash: ./grafana-server: Kann die Binärdatei nicht ausführen: Fehler im Format der Programmdatei
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 09 November 2017, 20:03:49
Auf der Bintray Seite war ich noch nie, wie kamst du denn da hin?

Auf der Github Seite aus Post #2 findet man unter Releases direkt Downloads.
Evtl. hätte ich direkt auf diese Unterseite verlinken sollen.
https://github.com/fg2it/grafana-on-raspberry/releases

Ich habe dort direkt das .deb File genommen und installiert.

Edit: Hab Post #2 entsprechend angepasst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 10 November 2017, 09:07:28
Danke, läuft bei mir.  Ich habe jetzt die ausführbare Datei installiert. Wie kann ich dafür sorgen, dass sie bei Systemstart ausgeführt wird? Auf http://docs.grafana.org/installation/debian/ (http://docs.grafana.org/installation/debian/) steht das nur für die kompilierten, aber ganz unten finde ich nichts.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 10 November 2017, 10:30:17
Da bei dir auch Jessie läuft laut Signatur,
sollte man das per systemctl aktivieren können.

Einmalig starten sollte denke ich über
sudo systemctl start grafana
gehen.

Dauerhaft bei jedem booten:
sudo systemctl enable grafana

edit:
Auf der von dir verlinkten Seite heißt der service nicht Grafana sondern grafana-server.service
Wäre dann
sudo systemctl enable grafana-server.service
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 10 November 2017, 10:50:38
Kannst Du mir mal Deine grafana-server.service zeigen, ich scheine die nicht zu haben:
sudo systemctl enable grafana-server.service
Failed to execute operation: No such file or directory
pi@FHEM:/etc/phpmyadmin $ sudo systemctl enable grafana.service
Failed to execute operation: No such file or directory
pi@FHEM:/etc/phpmyadmin $ sudo systemctl start grafana
Failed to start grafana.service: Unit grafana.service failed to load: No such file or directory.
pi@FHEM:/etc/phpmyadmin $ sudo systemctl start grafana-server
Failed to start grafana-server.service: Unit grafana-server.service failed to load: No such file or directory.
pi@FHEM:/etc/phpmyadmin $ sudo service grafana-server status
● grafana-server.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)


(Grafana selbst lässt sich mit der Hand starten.)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 10 November 2017, 12:03:20
Sehr komische Sache, bei mir wurde die automatisch mit dem .deb File mitinstalliert.
Hab die Datei mal angehängt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: screetch82 am 11 November 2017, 07:40:02
Hi
ich habe 3 tabellen in einer mysql datenbank. current und history für fhem dblog und eine welche von einem externen datenlogger informationen bezieht. Diese haben leider jedoch  keinen timesamp sondern eine spalte für datum und eine für zeit.

Wie bekomme ich diese entweder automatisch in die fhem history gelinkt oder per grafana in ein dashboard geladen? dann koennt ich in Fhem
einfach die Grafik einladen.

Im Anhang ein screenshot wie die Tabelle aussieht. (diese wird über ein ein skript automatisch aus CSV Datein befüllt.)

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SabineT am 14 November 2017, 08:50:24
Zitat von: Thyraz am 12 Oktober 2017, 15:29:18
P.S. Ich hoffe ich störe hier keinen mit meinem Monolog. ;D
Aber ich dachte wenn ich mir das als MySQL Noob schon alles hart ergooglen erarbeiten muss,
kann ich es ja wenigstens für die Nachwelt festhalten...
Vielleicht kannst du dafür ja mal eine eigene Seite im FHEM-Wiki erstellen ;-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 14 November 2017, 10:29:21
Hi Thyraz,

ich wollte mich nur kurz für den Tipp und die gute Beschreibung bedanken - das ist EXAKT genau das was ich seit nunmehr 2 Jahren gesucht habe und übertrifft meine persönlichen Erwartungen noch um Längen. Installation und Config super simpel und die Optik / UI ein wahrer Traum! Ich habe daher nun angefangen aus FHEMWEB alle Charts rauszuwerfen und in Grafana umzusetzen.

Peter
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 November 2017, 13:46:07
Ich fange jetzt mal mit einem Wiki-text an, brauche aber sicher Hilfe.

Siehe https://wiki.fhem.de/wiki/Grafana
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 November 2017, 15:32:41
Zitat von: fischit am 12 Oktober 2017, 15:28:35
Ich binde mir die Bilder über
http://192.168.2.111:3000/render/dashboard-solo/db/luftdaten?orgId=2&from=now%2Fd&to=now&panelId=1&width=750&height=300&tz=UTC%2B02%3A00
ein.
Aber wie lädst Du das dann in FHEM?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 14 November 2017, 16:12:38
Für FHEMWEB wäre wahrscheinlich Weblink eine Lösung.
In FTUI gäbe es das Image Widget
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fischit am 14 November 2017, 17:39:36
Zitat von: andies am 14 November 2017, 15:32:41
Aber wie lädst Du das dann in FHEM?

Richtig - guckst du:
defmod PNG_luftdaten2 weblink image http://192.168.2.111:3000/render/dashboard-solo/db/luftdaten?orgId=2&from=now%2Fd&to=now&panelId=1&width=750&height=300&tz=UTC%2B02%3A00
attr PNG_luftdaten2 htmlattr width="750" height="300" frameborder="0" title="Aktueller Verlauf"
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: screetch82 am 14 November 2017, 17:42:45
Hi

ich mache das mit:

define Grafana_temp weblink iframe http://192.168.178.35:3000/dashboard-solo/db/temp?panelId=1&orgId=1&from=now%2Fd&to=now
attr Grafana_temp htmlattr width="100%" height="300" frameborder="0" marginheight="0" marginwidth="0"
attr Grafana_temp room Grafana
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 November 2017, 21:35:08
Danke, alles im Wiki eingetragen. Wenn noch Wünsche bestehen, was ich da schreiben solle - bitte los, ich kann aber nicht sofortige Umsetzung garantieren.

Ich habe eine darstellerische Frage. Das ist ja ein tolles Tool, und schnell. Aber kann ich auch in ein Diagramm DREI Größen eintragen, die jeweils unterschiedliche Werte haben? Hintergrund ist folgender. Ich möchte meinen RPi überwachen und dessen Temperatur (30-60), Load average (0 bis 1) und die Frequenz (600 oder 1250) anzeigen.  Ich kriege zwei verschiedene Achsen hin, aber beides? Ich könnte höchstens die Frequenz "umrechnen" (zB auf Load Average - also 600 entspricht 0 und 1250 entspricht 1) und so zusammen mit diesen Werten anzeigen, ist das der einzige Weg?

PS So was scheint nicht zu gehen
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  (CONVERT(VALUE, DOUBLE)-600)/650 as value,
   "Frequenz" as metric
FROM history
WHERE  READING="cpu_freq" AND DEVICE="sysmon" and $__timeFilter(TIMESTAMP)
ORDER BY timestamp ASC
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 14 November 2017, 22:28:30
andies, so wie ich das sehe, ist das graph-panel tatsächlich auf 2 Achsen limitiert und das der einzige Weg.

Das Potential dieses Tools ist insgesamt dennoch gewaltig. Zumal es per iframe auch super mit FHEMWEB harmoniert. Ich habe grad mal das Carpet-Plot (Panel-Plugin) mit diversen Temperatursensoren ausprobiert 8) ... Ladezeit für so ein äußerst interessantes Plot für ein ganzes Jahr (!!) mit stundenweisem Average liegt bei < 15 Sekunden!! (Intel NUC). Jetzt weiß ich endlich wozu ich über all die Jahre soviele Daten weggeloggt habe ohne sie in FHEM anzuzeigen (weils nicht gescheit ging).

Discrete Plugin geht auch mit kleinem Trick (man muss die String-Werte aus den readings erst wieder per SQL Select case in Zahlen Mappen und im Plugin wieder zurück).

Also dieses Tool verdoppelt schlagartig  den Nutzen von FHEM für mich - ohne zu übertreiben.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 15 November 2017, 07:05:53
Mal ne kurze zwischen Frage.
Ist dblog Voraussetzung? Oder geht es auch mit den Standart logs?

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 15 November 2017, 11:54:57
Zitat von: peterk_de am 14 November 2017, 22:28:30
Ladezeit für so ein äußerst interessantes Plot für ein ganzes Jahr (!!) mit stundenweisem Average liegt bei < 15 Sekunden!! (Intel NUC).

Hast du schon die von mir genutzte (und hauptsächlich von Thyraz entwickelte, danke nochmal!) Methode, welche in #19 beschrieben ist, probiert? Ein Jahr von 4 Räumen läd bei mir in unter 30sec, Screenshot von einem Raum ist in #19 angehängt. Gefällt mir besser als ein Durchschnittswert, vorallem bei Ventilpositionen.
Für Batteriespannungen nutze ich die Methode ebenfalls, 4 Jahre von 8 Geräten ebenfalls in einigen Sekunden erledigt.
Intel i7-4771, MariaDB auf SSD
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 15 November 2017, 20:44:16
Huhu sku,

jo das probier ich gern mal aus, hab aber bislang nirgends Perfomanceprobleme verspürt, im Gegenteil.

Hier mal das besagte Carpet-Plot, Ladezeit 13 Sekunden auf NUC5i5 bei 2 Jahren und Logging alle 3 Minuten. Das Plugin ist echt nützlich für diverse Statistiken. Hier sieht man prima wann die und wie heiß Sommer in diesem und letzten Jahr waren ... und auch wie oft mein FHEM-Server eine Downtime hatte, inkl. Totalausfall von DBLOG über ein paar Wochen Anfang des Jahres ^^.

Verwendeter SQL-Code dazu (wie beim normalen Kurvenplot):

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Außentemperatur" as metric
FROM history
WHERE READING="temperature" AND DEVICE="wohnung.aussenthermometer" AND $__timeFilter(TIMESTAMP)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 15 November 2017, 20:57:17
Hier noch der Trick für das "Discrete"-Plugin (umgeht einen ungefixten Bug bei der Auswertung von Strings, wie sie FHEM in Verbindung mit DBLog aber normalerweise produziert):

SQL:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  "Anwesenheit" as metric,
      case
        when VALUE = 'Ja' then 3
        when VALUE = 'Möglich' then 2
        when VALUE = 'Unbekannt' then 1
        when VALUE = 'Nein' then 0
        when VALUE is null then 0
    end as value
FROM history
WHERE READING="state" AND DEVICE="bad.oben.anwesenheit" AND $__timeFilter(TIMESTAMP)


Im Plugin dann im Tab "Mappings" entsprechende Mappings zurück anlegen ( 3 auf "Ja", 2 auf "Möglich") usw.

Ergebnis siehe Anhang.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: screetch82 am 16 November 2017, 12:55:46
hier mal zwei Beispiele für ein Dashboard für FHEM und dazu eins für eine Solarthermieanlage von Weishaupt (Daten sind in einer von FHEM separaten DB).
Grafana vereint beide Daten wunderbar, sodass ich mich nicht mit dem Mühsamen import von externen CSV logs kümmern muss.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: f-zappa am 16 November 2017, 23:55:24
Moin,
zuerst mal vielen Dank dafür, dass Du uns auf Grafana aufmerksam gemacht hast und schon so viel FHEM-spezifisches beschrieben hast. Ich habe inzwischen auch schon ein wenig herumgespielt, die Installation und Implementation geht ja wirklich umwerfend fix. Bei deiner Lösung zu "Plottabriss vermeiden" war ich aber etwas unglücklich damit, dass die eigentliche Abfrage vier mal redundant da steht. Sobald man etwas ändert, muss man die Änderung an verschiedenen Stellen vornehmen.

Zitat von: Thyraz am 12 Oktober 2017, 14:15:57
- Den letzte Datenpunkt vor dem angezeigten Zeitraum
- Den ersten Datenpunkt nach dem angezeigten Zeitraum (Bei einem Anzeigezeitraum bis zur aktuellen Zeit, oder bis in die Zukunft wird hier eben kein Datenpunkt gefunden)

Ich mache das so, indem ich in Subqueries zuerst das Zeitintervall erweitere und die Werte dann aus diesem erweiterten Intervall herausselektiere:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Ventil" as metric
FROM history
WHERE READING="actuator" AND DEVICE="o2.rt.spielzimmer_heizung"
AND TIMESTAMP BETWEEN
    IFNULL((SELECT max(TIMESTAMP) from history where reading="actuator" and device="o2.rt.spielzimmer_heizung" and TIMESTAMP <= $__timeFrom()),$__timeFrom())
and IFNULL((SELECT min(TIMESTAMP) from history where reading="actuator" and device="o2.rt.spielzimmer_heizung" and TIMESTAMP >= $__timeTo()),$__timeTo() )


Schön wäre jetzt noch, wenn man auch die Werte für Reading und Device nur noch  an einer Stelle angeben müsste. Allerdings mag Grafana nicht, wenn ich vorab ein "SET @READING=blabla;" setze - man muss sich wohl auf ein Statement beschränken :( Vielleicht hat jemand dafür eine andere Idee? Mein SQL ist dürftig ...

Zitat
- Einen zusätzlichen virtuellen (nicht in MySQL vorhandenen) Datenpunkt, der den letzten Zustand in der Datenbank nimmt und ihn mit der aktuellen Zeit kombiniert.
  Dadurch wird der Plot auch nach dem letzten Wert in der DB noch bis zum aktuellen Zeitpunkt weitergezeichnet.

Den virtuellen Punkt kann meine Lösung leider nicht liefern. Das wäre noch das Zückerchen obendrauf. Allerdings  kann ich darauf noch am ehesten verzichten, weil da ja klar ist, dass der letzte Wert weiter gilt ...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 17 November 2017, 07:58:33
f-zappa, das müsste man recht easy mit den grafana-templates lösen können, die Variablen in den Querys ermöglichen:

http://docs.grafana.org/reference/templating/

Du kannst dann sogar aussuchen, ob man die Variable direkt über ein dropdown in der GUI belegen kann oder nicht. Ist nicht ganz das was du tun willst aber vielleich sogar noch vielseitiger!?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 17 November 2017, 11:15:34
Beispiel: Bar Chart mit summierten, täglichen Betriebsstunden ohne Statistics Modul.

Jetzt mal ein etwas komplexerer Request.  :P

Anstatt Duration Values von dem  Statistics Modul loggen zu lassen,
sollen hier Summen-Zeiten direkt im MySQL Select berechnet werden.

Man erspart sich so zusätzliche Hilfswerte in der Datenbank.
Das Ganze ist natürlich weit rechenintensiver als fertige Werte aus der DB zu laden.

Als Beispiel dient ein Heizkreis meiner Fußbodenheizung, bei welchem ich sehen will wie lange pro Tag das Ventil geöffnet/geschlossen ist.
Das Ventil loggt bei jedem Schaltvorgang die Ventilstellung als 0 oder 1.
Im Bild unten im Anhang kann man sich das Ergebnis schon mal anschauen.

Nähern wir uns dem Problem Stück für Stück:

Hauptproblem ist die Summe der Zeiten zwischen zwei Einträgen direkt im Query berechnen zu lassen.
Wir verwenden hierfür Variablen um uns immer den letzten Wert zu merken und so die Differenz zu berechnen.

Zitat
SELECT
  TIMESTAMP as time_sec,
  VALUE as value,
  IF (IF (@ONTIME := TIMESTAMPDIFF(SECOND, TIMESTAMP, @OLDTIME), 1, 1) AND IF (@OLDTIME := TIMESTAMP, 1, 1), @ONTIME , 0) as on_time
FROM history
JOIN (SELECT @OLDTIME := NOW()) AS var
WHERE READING="Heizkreis_Schlafzimmer" AND DEVICE="Heizung" AND $__timeFilter(TIMESTAMP)
ORDER BY TIMESTAMP DESC
Der Trick hier ist, dass MySQL über jeden gefundenen Eintrag looped um die zurückgelieferte Tabelle mit den angeforderten time_sec, value und on_time Werten zu füllen.
Und zwar erst nachdem das ORDER BY TIMESTAMP DESC ausgeführt wurde.
Dadurch laufen wir rückwarts durch die Zeit.

Das liefert uns eine Tabelle, welche zusätzlich noch eine Spalte on_time hat.
Diese beinhaltet die Zeitspanne wie lang das jeweilige Signal aktiv geblieben ist bis der nächste Zeitstempel / Zustand eintritt.

Nehmen wir dieses Ergebnis nun als Datenquelle für einen weiteren Select um nur die Zeitspannen für den eingeschalteten (1) Zustand pro Tag zu addieren:
Zitat
SELECT
  DATE_FORMAT(time_sec, '%Y-%m-%d 00:00:00')) as time_sec,
  SUM(on_time) / 3600 as value
FROM (
   <hier wird das vorherige SELECT Statement eingefügt>
WHERE VALUE = "1"
GROUP by DATE_FORMAT(time_sec, '%Y-%m-%d')
- Gruppieren der Werte nach dem Tag an dem sie aufgetreten sind
- Nur Zeitspannen selektieren bei denen das Ventil an (1) war
- Summe der Zeitspannen pro Tag bilden.

Damit wäre die Aufgabe an sich erfüllt und wir könnten unser Diagramm so einsetzen. :)

Es sind dann aber doch noch 2 Fehler drin:
- Bisher werden Zeitspannen z.B. von 23:55 bis 0:05 komplett dem alten Tag angerechnet, statt 5min alter Tag / 5min neuer Tag. Wir müssen also vor dem Berechnen der Zeitdifferenzen für jeden Tag noch einen virtuellen Zeitstempel mit dem jeweils aktuellen Value bei 0:00 einfügen.
- Damit erhalten wir am Anfang eines jeden Tages einen sauberen Wert. Was noch fehlt ist ein letzter Eintrag für den letzten Tag des angezeigten Zeitraums. Wenn der Zeitraum am aktuellen Tag endet verlängern wir bis NOW(), sonst bis 0:00Uhr des Folgetages.

Im Netz habe ich ein nettes SELECT Statement gefunden, welches uns für 1970 bis 2200 für jeden Tag einen Datumsstempel liefert.
So sieht dann unsere Lösung für die 2 verbleibenden Probleme aus:
Zitat
(
   SELECT
     gen_date
   FROM
     (SELECT ADDDATE('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date FROM
       (SELECT 0 t0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
       (SELECT 0 t1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
       (SELECT 0 t2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
       (SELECT 0 t3 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
       (SELECT 0 t4 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4
     ) v
   WHERE $__timeFilter(gen_date)
)
UNION
(
   SELECT IF (DATE($__timeTo()) = CURRENT_DATE(), NOW(), DATE_ADD(DATE($__timeTo(), INTERVAL 1 DAY)) as gen_date
)


Wenn wir das dann alles zusammenfügen, kommt Folgendes heraus:
(Das "geteilt durch 86400" und "mal 100" rechnet die Sekundenwerte dann in Prozent um.)
Zitat
SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(time_sec, '%Y-%m-%d 00:00:00')) as time_sec,
  (SUM(on_time) / 86400) * 100 as value,
  "Schlafzimmer" as metric
FROM (
  # -- Differenz zwischen den Zeitwerten berechnen
  SELECT
    time_sec,
    VALUE,
    IF (IF (@ONTIME := TIMESTAMPDIFF(SECOND, time_sec, @OLDTIME), 1, 1) AND IF (@OLDTIME := time_sec, 1, 1) AND IF (@ONTIME IS NULL, 0,1), @ONTIME , 0) as on_time
  FROM (
    # -- Eigentliche Abfrage der Werte aus der DB --
    SELECT
      TIMESTAMP as time_sec,
      VALUE
    FROM history
    WHERE READING="Heizkreis_Schlafzimmer" AND DEVICE="Heizung" AND $__timeFilter(TIMESTAMP)
 
    UNION
 
    # -- Jeweils aktuell gültiger Wert für alle virtuellen Zeitstempel bestimmen --
    SELECT
      time_sec,
      ( SELECT VALUE
        FROM history
        WHERE READING="Heizkreis_Schlafzimmer" AND DEVICE="Heizung" AND TIMESTAMP <= time_sec
        ORDER BY TIMESTAMP DESC
        LIMIT 1
      ) as VALUE
    FROM (
      # -- Virtuelle Zeitstempel zu Beginn jeden Tages erstellen --
      SELECT
        time_sec
      FROM
        (SELECT ADDDATE('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) time_sec FROM
          (SELECT 0 t0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
          (SELECT 0 t1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
          (SELECT 0 t2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
          (SELECT 0 t3 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
          (SELECT 0 t4 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4
        ) a
      WHERE $__timeFilter(time_sec)
   
      UNION
   
        # -- Virtuellen Zeitstempel für Endpunkt hinzufügen --
      SELECT IF (DATE($__timeTo()) = CURRENT_DATE(), NOW(), DATE_ADD(DATE($__timeTo()), INTERVAL 1 DAY)) as time_sec
    ) b
    ORDER BY time_sec DESC
  ) c
  JOIN (SELECT @OLDTIME := NOW()) AS var
) d
WHERE VALUE = "1"
GROUP by DATE(time_sec)
ORDER BY time_sec

Fazit: Die Vorlauftemperatur ist bei uns in der Übergangszeit eigentlich viel zu hoch.
Aber das kann man im Mehrfamilienhaus halt nicht immer für sich selbst optimieren. ;)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 17 November 2017, 14:47:53
Zitat von: f-zappa am 16 November 2017, 23:55:24
Moin,
zuerst mal vielen Dank dafür, dass Du uns auf Grafana aufmerksam gemacht hast und schon so viel FHEM-spezifisches beschrieben hast. Ich habe inzwischen auch schon ein wenig herumgespielt, die Installation und Implementation geht ja wirklich umwerfend fix. Bei deiner Lösung zu "Plottabriss vermeiden" war ich aber etwas unglücklich damit, dass die eigentliche Abfrage vier mal redundant da steht. Sobald man etwas ändert, muss man die Änderung an verschiedenen Stellen vornehmen.

...

Schön wäre jetzt noch, wenn man auch die Werte für Reading und Device nur noch  an einer Stelle angeben müsste. Allerdings mag Grafana nicht, wenn ich vorab ein "SET @READING=blabla;" setze - man muss sich wohl auf ein Statement beschränken :( Vielleicht hat jemand dafür eine andere Idee? Mein SQL ist dürftig ...


Ich habe da jetzt die Lösung, wie man Grafana die MySQL-Variablen unterjubeln kann - und man gleichzeitig die Template-Variablen von Grafana verwenden kann ^^ :

(
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  @label as metric
FROM history, ( SELECT @reading:="humidity", @device:=CONCAT([[room]],".wandthermostat_Weather"), @label:="Luftfeuchtigkeit") AS var
WHERE READING=@reading AND DEVICE=@device AND $__timeFilter(TIMESTAMP)
)

UNION

-- Kurve am Anfang um den letzten Wert vor dem aktuellen Zeitraum erweitern
(
  SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    @label as metric
  FROM history
  WHERE READING=@reading AND DEVICE=@device AND TIMESTAMP <= $__timeFrom() -- Letzter Wert vor Anfangszeit des aktuellen Zeitraums
  ORDER BY TIMESTAMP DESC
  LIMIT 1   
)

UNION

-- Kurve mit nächstem Wert nach dem aktuellen Zeitraum erweitern
(
SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    @label as metric
  FROM history
  WHERE READING=@reading AND DEVICE=@device AND TIMESTAMP >= $__timeTo() -- Letzten Wert im aktuellen Zeitraum holen
  ORDER BY TIMESTAMP ASC
  LIMIT 1 
)

UNION

-- Kurve mit letztem Wert der Kurve (nicht des gewählten Zeitraums) bis zum aktuellen Zeitpunkt erweitern
(
SELECT
    UNIX_TIMESTAMP(NOW()) as time_sec,
    VALUE as value,
    @label as metric
  FROM history
  WHERE READING=@reading AND DEVICE=@device
  ORDER BY TIMESTAMP DESC
  LIMIT 1
)

ORDER BY time_sec ASC


Man setzt Device / Reading jetzt nur noch einmal in dieser Zeile (alles andere bleibt immer gleich):

FROM history, ( SELECT @reading:="humidity", @device:=CONCAT([[room]],".wandthermostat_Weather"), @label:="Luftfeuchtigkeit") AS var

Hier verwende ich auch (als einzige Stelle) die Grafana-Template-Variable "room". Die ist vom Typ "Custom" (Definition oben über das Zahnrad --> Templating) und wird mit allen Raumkürzeln aus FHEM als Auswahlmöglichkeit definiert, in meinem Fall:

bad.oben, schlafzimmer, kueche, stube, bad.unten, kinderzimmer, flur.unten, keller, buero

Jetzt baut Grafana daraus - je nach Auswahl im Dropdownmenü oben im Panel, was nach Definition + Verwendung der Variablen automatisch erscheint - Devicenamenen wie bad.unten.wandthermostat_Weather oder schlafzimmer.wandthermostat_Weather usw. zusammen und die Linien werden schön von Anfang bis Ende des Diagramms durchgezogen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 17 November 2017, 15:25:59
So langsam kommt hier ja richtig Schwung in die Sache.  :)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 17 November 2017, 18:26:42
Thyraz na du hast da ja auch ein geniales Tool ausgegraben. Deine letzte Lösung (Berechnung der Zeitdifferenzen) hatte ich gerade angefangen, und da postest du es schon in fertig. Mein ehemaliger Datenbanken-Dozent wäre stolz auf dich ;-)

Die Union-Lösung für den Plottabriss versuche ich ansonsten performancemäßig mal noch zu optimieren, durch das mehrfache Sortieren ist die sehr ineffizient.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 17 November 2017, 22:21:04
Zitat von: Thyraz am 11 Oktober 2017, 11:21:48
Ja, gibt in der Doku eine Sektion zum Sharen.
Das beinhaltet verschiedene Embed Lösungen, aber auch direkte PNG Erstellung eines Diagramms.

Hier ein Beispiel mit Link auf die Online-Demo von Grafana...
Aber mit genau welchem Befehl versendest Du das innerhalb von Telegram? Ich kriege da nur Fehlermeldungen, file not found etc.


Gesendet von iPad mit Tapatalk Pro
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 18 November 2017, 10:24:34
@andies ich nutze Telegram nicht, schätze aber mal du musst das File erst downloaden um es dann verschicken zu können.

Weiß nicht ob es da ein passendes Modul gibt.
Mit wget könnte es evtl. auch funktionieren.

Da das Generieren des Bildes ja etwas dauern könnte sollte es auf alle Fälle async passieren, damit es FHEM nicht blockiert.

@Peter optimiere gerne alles was verbesserungswürdig ist, passe das dann gern in meinen Posts an.
Was in MySQL von der Performance gut oder böse ist, erkenne ich als Laie leider noch nicht so recht.

Bin ja schon froh, dass ich überhaupt eine Lösung für diverse Problemstellungen hinbekommen habe.
Versuche die Probleme halt immer in kleine Häppchen aufzuteilen um diese dann per Google und Stackoverflow gelöst zu bekommen.

Das letzte Beispiel hat mir aber einige Kopfschmerzen bereitet.  :P

Grüße,
Tobias
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 18 November 2017, 10:49:19
Zitat von: Thyraz am 18 November 2017, 10:24:34
@andies ich nutze Telegram nicht, schätze aber mal du musst das File erst downloaden um es dann verschicken zu können.
Hi Tobias, daran hatte ich nicht gedacht. Leider geht
wget http://raspfhem.fritz.box:3000/render/dashboard/db/temperaturen?panelId=2

nicht, das speichert mir eine html-Datei
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width">
    <meta name="theme-color" content="#000">

    <title>Grafana</title>

                <base href="/" />


                  <link rel="stylesheet" href="public/build/grafana.dark.css?v4.6.1">


    <link rel="icon" type="image/png" href="public/img/fav32.png">
    <link rel="mask-icon" href="public/img/grafana_mask_icon.svg" color="#F05A28">
        </head>

        <body ng-cloak>
                <grafana-app class="grafana-app">

                        <aside class="sidemenu-wrapper">
                                <sidemenu ng-if="contextSrv.sidemenu"></sidemenu>
                        </aside>

                        <div class="page-alert-list">
                                <div ng-repeat='alert in dashAlerts.list' class="alert-{{alert.severity}} alert">
                                        <div class="alert-icon"><i class="{{alert.icon}}"></i></div>
                                        <div class="alert-body">
                                                <div class="alert-title">{{alert.title}}</div>
                                                <div class="alert-text" ng-bind='alert.text'></div>
                                        </div>
                                        <button type="button" class="alert-close" ng-click="dashAlerts.clear(alert)">
                                                <i class="fa fa fa-remove"></i>
                                        </button>
                                </div>
                        </div>

                        <div ng-view class="main-view"></div>
                        <footer class="footer">
                                <div class="row text-center">
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 18 November 2017, 11:17:55
Habe es herausgefunden und trage das gerade im Wiki ein.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 19 November 2017, 16:41:21
Ich habe eine Frage. Mein Tiefkühlschrank ist kaputt und wird notgedrungen via Sonoff TH10 betrieben. Nun würde ich mir gern die Temperaturen und die Zeiten, in denen der Kompressor läuft, anzeigen lassen. Und zwar so, dass man die Temperaturkurve während der Kompressorlaufzeit einfach "ausfüllt". Das Ausfüllen schaffe ich nicht.

Das Device sieht so aus:
Internals:
   IODev      Mosquitto
   NAME       Sonoff_TH10a
   NR         107
   STATE      -15.8 °C / 94 %
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       myTemperature:
         DbLog:
           TIME       1511105824.57732
           VALUE      -15.8
       mypower:
         DbLog:
           TIME       1511105824.57732
           VALUE      1
   READINGS:
     2017-11-19 16:37:04   AM2301_Humidity 98.9
     2017-11-19 16:37:04   AM2301_Temperature -15.8
     2017-11-19 12:11:49   LWT             Online
     2017-11-19 16:37:04   POWER           on
     2017-11-19 16:37:04   SENSOR          {"Time":"2017-11-19T16:37:04", "AM2301":{"Temperature":-15.800, "Humidity":98.9}, "TempUnit":"C"}
     2017-11-19 16:37:04   TempUnit        C
     2017-11-19 16:37:04   Time            2017-11-19T16:37:04
     2017-11-19 16:37:04   Uptime          4
     2017-11-19 16:37:04   Vcc             3.124
     2017-11-19 16:37:04   Wifi_AP         1
     2017-11-19 16:37:04   Wifi_RSSI       46
     2017-11-19 16:37:04   myTemperature   -15.8
     2017-11-19 16:37:04   mypower         1
     2017-11-19 16:27:04   state           on
     2017-11-19 16:37:04   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/sonoff_th10a/POWER
       values:
         on
         off
   sets:
     off
     on
   subscribe:
     tele/sonoff_th10a/LWT
     tele/sonoff_th10a/SENSOR
     tele/sonoff_th10a/STATE
   subscribeExpr:
     ^tele\/sonoff_th10a\/LWT$
     ^tele\/sonoff_th10a\/SENSOR$
     ^tele\/sonoff_th10a\/STATE$
   subscribeReadings:
     tele/sonoff_th10a/LWT:
       cmd
       name       LWT
     tele/sonoff_th10a/SENSOR:
       cmd
       name       SENSOR
     tele/sonoff_th10a/STATE:
       cmd
       name       STATE
Attributes:
   IODev      Mosquitto
   devStateIcon .*:noIcon:noFhemwebLink
   group      Messung
   publishSet on off  cmnd/sonoff_th10a/POWER
   room       Info
   stateFormat {sprintf ("%.1f °C / %.0f %%", ReadingsNum($name,"myTemperature",0), ReadingsVal($name,"AM2301_Humidity",0)-5)}
   subscribeReading_LWT tele/sonoff_th10a/LWT
   subscribeReading_SENSOR tele/sonoff_th10a/SENSOR
   subscribeReading_STATE tele/sonoff_th10a/STATE
   userReadings myTemperature {ReadingsNum($name, "AM2301_Temperature", 0)}, mypower {if (ReadingsVal($name, "POWER", "") eq "off") {return 0} elsif (ReadingsVal($name, "POWER", "") eq "on") {return 1} }
   verbose    2
   webCmd     on:off

und die wichtigen Daten stehen in mypower und myTemperature. Bisher habe ich nur
SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    AVG(VALUE) as value,
    "Sonoff" as metric
  FROM history
  WHERE READING="myTemperature" AND DEVICE="Sonoff_TH10a" AND $__timeFilter(TIMESTAMP)
  GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 600

und dann fehlt das ausfüllen.

Ich könnte ein weiteres device mit mypower*myTemperature anlegen und das füllen, aber geht es nicht mit mySQL?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SeppiDeluxe am 25 November 2017, 09:56:12
Hallo zusammen,

mit Interesse verfolge ich diesen Thread und habe auch schon meine FHEM Installation erweitert. Standards wie Kurververläufe oder Statisktiken sind kein Thema.
Ich beiße mir an einem Thema die Zähne aus.

Zustände!!

Szenario: Bad Temp, Feucht und so weiter jetzt in Konbination die Lüfterstufe (start/stop Zustände in der LogDB). Auf der DB Seit Abfrage mit

SELECT
      UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    case
      when VALUE = 'start' then 1
      when VALUE = 'stop' then 0
    end as value,
    "Lüfter" as metric
  FROM history
  WHERE READING="getG1" AND DEVICE="KNX_0101030"

alles schick. Gibt ne schöne Tabelle. Jetzt aber der Transfer nd ie Grafana Welt... ich kriegs nicht hin. Also keien schöne Binärkurve (Stufe) mit 1  oder 0.

Hat irgendjemand das Thema bereits im Einsatz oder einen Ansatz für mich danke euch. Ich denke, die HErausforderung liegt ind er Werteinterpolation das die Zustädne nur für einen Zeitstempel exitieren. Dazwischen müsste bis zum Wechsel der Zustand gehalten wwrden und das krieg ich nciht in die Diagramme rüber.

Danke euch Sebastian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 25 November 2017, 20:46:07
Hi Seppi,

doch genau so geht das, dein Code sieht vollkommen korrekt aus, so mache ich das auch z.B. für meine Bewegungssensoren, die nur "motion" oder "noMotion" liefern. Dass die Werte dann "gehalten" werden machst du über die Option "Staircase line" (Tab Display -> Series Override -> Deine Metric ("Lüfter") hinzufügen -> Staircase Line 1.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 04 Januar 2018, 20:13:32
Moisen,


ich hab mittlerweile ein paar Graphen in Fhem eingebunden - per weblink iframe mit light Theme sieht das bei mir (mit Fhemweb ios7 Theme) echt gut aus.

Wie habt ihr das mit der Auth gelöst? Ich nutze den embedded Link, also mit controls und nicht die gerenderte Grafik.

Sobald in Grafana ausgeloggt bin, sehe ich in Fhem auch nur den Login Screen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fischit am 04 Januar 2018, 20:18:15
Du kannst dir, wie hier beschrieben, Gästezugriff bzw. die Rechte für anonymen Zugriff einstellen:
http://docs.grafana.org/installation/configuration/
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 04 Januar 2018, 21:55:42
Zitat von: fischit am 04 Januar 2018, 20:18:15
Du kannst dir, wie hier beschrieben, Gästezugriff bzw. die Rechte für anonymen Zugriff einstellen:
http://docs.grafana.org/installation/configuration/

Ach cool, darauf bin ich gar nicht gekommen - ich hab ja mein Grafana Server dockerized, also hab ich das über Environment Variables gelöst. Läuft...

Jetzt muss ich noch herausfinden, ob ich die Formatierung der Tage ändern kann - scheint nur nach US Standard gehen (?)

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: screetch82 am 08 Januar 2018, 10:38:35
Zitat von: Kai-Alfonso am 04 Januar 2018, 20:13:32
Moisen,


ich hab mittlerweile ein paar Graphen in Fhem eingebunden - per weblink iframe mit light Theme sieht das bei mir (mit Fhemweb ios7 Theme) echt gut aus.

Wie habt ihr das mit der Auth gelöst? Ich nutze den embedded Link, also mit controls und nicht die gerenderte Grafik.

Sobald in Grafana ausgeloggt bin, sehe ich in Fhem auch nur den Login Screen

habe ich auch so gelösst. link oder grafik benötigen beide den login. Ich werde auch nochmal in der configuration nach dem annony. Login schauen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 08 Januar 2018, 10:43:33
Zitat von: screetch82 am 08 Januar 2018, 10:38:35
habe ich auch so gelösst. link oder grafik benötigen beide den login. Ich werde auch nochmal in der configuration nach dem annony. Login schauen.

Funzt ganz easy- du musst im Prinzip nur 2 Parameter setzen:

in der .ini

[auth.anonymous]
enabled = true
org_name = $NAMEDEINERGRAFANAORG


oder als Umgebungsvariable (wenn Du wie ich Grafana unter Docker nutzt)

GF_AUTH_ANONYMOUS_ENABLED true
GF_AUTH_ANONYMOUS_ORG_NAME $NAMEDEINERGRAFANAORG


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TottiToad am 27 Januar 2018, 09:53:52
Hi,

ich versuche mich gerade mit Grafana :)

Erst einmal bin ich völlig begeistert und konnte schon einige Graphen (Temperaturverläufe) umsetzten.

Jetzt bekomme ich es aber nicht hin, für einen Zähler Tageswerte anzuzeigen ?

Die Sache mit Timestamp verstehe ich noch nicht so ganz.

Ich möchte das jeweils der Tageswert angezeigt wird als Balken.

SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d')) as time_sec,
  VALUE as value,
  "HKV_Woche" as metric
FROM history
WHERE READING="Tagesverbrauch" AND DEVICE="HKV_Buro" AND $__timeFilter(TIMESTAMP)


So wird mir zwar der Wert angezeigt, jedoch z.B. der letzte Wert dann gleichzeitig auch an den Zukünftigen Tagen. Es soll aber nur für den einen Tag anzeigt werden, wenn danach kein Wert vorhanden ist, dann halt 0.


Ich hoffe ich konnte so halbwegs beschreiben worum es mir geht und ihr könnt mir weiterhelfen.

Grüße & Danke
Torsten
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 09 Februar 2018, 11:27:54
Moin,

ich habe auch mal eine Grafana oder MYSQL Frage :-)

Wie muss der Select aussehen, das ich Werte, die zum Beispiel 9:59:00 in die DB geschrieben worden sind (Stundenwerte) als Balken dargestellt werden - und der Balken müsste von 9:00 bis 10 Uhr gehen (oder meinetwegen auch 9:59)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: lewej am 09 Februar 2018, 18:19:33
Hi Thyraz,

kannwt du ein Beispiel zeigen wie du deine Monatswerte einmal im Monat ermittelst und die täglichen wären auch Interessant.
Gruss

Zitat von: Thyraz am 09 Oktober 2017, 11:02:21
Beispiel: Bar Chart mit monatlichen Verbräuchen
Ich habe in meiner Datenbank Logeinträge von mehreren Statistic-Modul Instanzen die mir den täglichen / monatlichen / jährlichen Stromverbrauch diverser Geräte aufzeichnen.

Das Problem ist hier, dass zB. bei den monatlichen Verbräuchen der Timestamp 5 Sekunden vor dem Monatswechsel geloggt wird.
Dadurch sitzt der Balken im Diagramm mehr im nächsten Monat als im eigentlich zugehörigen.
Um das zu umgehen wird die DATE_FORMAT Funktion von MySQL genutzt um Uhrzeit und Tag des Monats im Timestamp zu manipulieren:


SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-01')) as time_sec,
  VALUE as value,
  "Trockner" as metric
FROM history
WHERE READING="statEnergyValMonthLast" AND DEVICE="Dummy_PowerSwitch04" AND $__timeFilter(TIMESTAMP)


- Im Reiter Display ist der Draw Mode statt Line auf Bars gesetzt
- Im Reiter Time Range habe ich Override relative time auf 1 Jahr (1y) gesetzt
- Beim Select Statement für das zweite Gerät im Balkendiagramm habe ich den Tag in der DATE_FORMAT Funktion nicht auf 1, sondern auf 4 gesetzt. Dadurch sind die Balken etwas versetzt zu einander.
Das ist optisch von Vorteil falls der hintere Balken mal kleiner ist als vordere.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 13 Februar 2018, 12:53:01
Hi, ich würde gerne auch das Tables Widget nutzen, scheitere aber beim Datum. Ich bekomme die Unix Time, würde gerne aber Datetime nutzen.

Wie müsste das denn beim Select aussehen?

UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%D')) as time_sec, funktioniert irgendwie nicht,.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 13 Februar 2018, 14:50:03
Zitat von: Kai-Alfonso am 09 Februar 2018, 11:27:54
Moin,

ich habe auch mal eine Grafana oder MYSQL Frage :-)

Wie muss der Select aussehen, das ich Werte, die zum Beispiel 9:59:00 in die DB geschrieben worden sind (Stundenwerte) als Balken dargestellt werden - und der Balken müsste von 9:00 bis 10 Uhr gehen (oder meinetwegen auch 9:59)

Dafür musst du an sich nur die Minuten und Sekunden aus dem Datetime String auf 0 setzen und die Anzeigeart des Graphen auf Bars statt Line.
Sollte so gehen denke ich:

UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:00:00')) as time_sec
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 13 Februar 2018, 14:55:59
Zitat von: lewej am 09 Februar 2018, 18:19:33
Hi Thyraz,

kannwt du ein Beispiel zeigen wie du deine Monatswerte einmal im Monat ermittelst und die täglichen wären auch Interessant.
Gruss

Hallo lewej,

das ist wie in dem Post beschrieben mit dem Statistics Modul geschehen:
https://wiki.fhem.de/wiki/Statistics

Alternativ kann man diese auch direkt in Mysql aus den Einzelwerten ermitteln lassen.
Das ist hier beschrieben:
https://forum.fhem.de/index.php/topic,77724.msg717020.html#msg717020

Vorteil: Keine zusätzlichen Hilfsdaten in der Datenbank nötig. Daher auch auf bereits vorhandene Altdaten anwendbar.
Nachteil: Aufwändige Berechnungen bei jedem Anzeigen des Charts, daher je nach Hardware des DB-Servers evtl. lange Ladezeiten.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 13 Februar 2018, 14:58:47
Zitat von: Thyraz am 13 Februar 2018, 14:50:03
Dafür musst du an sich nur die Minuten und Sekunden aus dem Datetime String auf 0 setzen und die Anzeigeart des Graphen auf Bars statt Line.
Sollte so gehen denke ich:

UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:00:00')) as time_sec



Das hatte ich auch - schien aber ein Bug in Grafana zu sein, wenn man manuell die Time Range ändert. Jetzt gehts aber :-) Danke
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 13 Februar 2018, 15:18:14
Zitat von: Kai-Alfonso am 13 Februar 2018, 12:53:01
Hi, ich würde gerne auch das Tables Widget nutzen, scheitere aber beim Datum. Ich bekomme die Unix Time, würde gerne aber Datetime nutzen.

Wie müsste das denn beim Select aussehen?

UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%D')) as time_sec, funktioniert irgendwie nicht,.

UNIX_TIMESTAMP macht ja auch aus einem Datetime String einen Timestamp.
Wenn du das nicht willst musst du die Funktion also einfach weglassen. ;)

Oder geht es darum, dass du die Zeit auch brauchst?
Dann so:
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i%s')) as time_sec

Dazu mal die Doku von DATE_FORMAT anschauen:
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format


Wobei das das ehrlich gesagt genau dem entspricht was in der DB in TIMESTAMP drin steht.
Damit kann man sich wahrscheinlich das DATE_FORMAT sparen und einfach den Code verwenden:

TIMESTAMP as time_sec

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 13 Februar 2018, 16:47:03
Zitat von: Thyraz am 13 Februar 2018, 15:18:14
UNIX_TIMESTAMP macht ja auch aus einem Datetime String einen Timestamp.
Wenn du das nicht willst musst du die Funktion also einfach weglassen. ;)

Oder geht es darum, dass du die Zeit auch brauchst?
Dann so:
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i%s')) as time_sec

Dazu mal die Doku von DATE_FORMAT anschauen:
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format


Wobei das das ehrlich gesagt genau dem entspricht was in der DB in TIMESTAMP drin steht.
Damit kann man sich wahrscheinlich das DATE_FORMAT sparen und einfach den Code verwenden:

TIMESTAMP as time_sec


Achso  8)


Deine Lösung hatte ich auch mal probiert, bekomme aber in der time_sec Spalte statt einen Wert das Zeichen "-" . Das hatte mich verwirrt  :o :o :o

SELECT
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i%s')) as time_sec,
value as value
FROM history
  WHERE READING="statTotal_consumptionDayLast" AND DEVICE="Stromzaehler" AND $__timeFilter(TIMESTAMP)


Es geht im Prinzip um eine Tabelle, wo ich die Tageswerte ausgeben lassen möchte. '%Y-%m-%d  als Ausgabe würden mir reichen




Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 16 Februar 2018, 07:28:24
@Thyraz

Hast Du noch eine Idee, wo ran es liegen kann? (siehe Screenshot)

Column Style steht auf Date - ändere ich den Style auf String zB dann ist die Spalte sogar leer

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 16 Februar 2018, 08:23:20
Also als erstes fehlt bei DATE_FORMAT ein Doppelpunkt zwischen Minuten und Sekunden. ;)
Den Fehler hast leider von meinem schnell hingepinselten Code übernommen.

Aber ich hatte da noch einen weiteren Denkfehler drin: das äußere UNIX_TIMESTAMP sollte auch weg.
Du willst ja einen lesbaren Datumsstring und nicht irgendeine riesige Nummer im Unix Zeitformat (Sekunden seit 1970).
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 16 Februar 2018, 08:40:52
Zitat von: Thyraz am 16 Februar 2018, 08:23:20
Also als erstes fehlt bei DATE_FORMAT ein Doppelpunkt zwischen Minuten und Sekunden. ;)
Den Fehler hast leider von meinem schnell hingepinselten Code übernommen.

Aber ich hatte da noch einen weiteren Denkfehler drin: das äußere UNIX_TIMESTAMP sollte auch weg.
Du willst ja einen lesbaren Datumsstring und nicht irgendeine riesige Nummer im Unix Zeitformat (Sekunden seit 1970).

Lol, ist mir auch entgangen :-) Einfach blind mitkopiert  8)  Jetzt hab ich es aber hinbekommen dank deiner Hilfe. Das UNIX_TIMESTAMP musste weg. vielen Dank dafür
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: triagony am 16 Februar 2018, 16:33:22
Hallo!
Erstmal aller besten Dank für diese tolle Anleitung und vor allem auch die Beispiele! Echt klasse. Ich würde gerne sowohl die Helligkeit (Lux) des aktuellen Tages als die Helligkeit des vorangegangenen Tages "übereinander liegend", sozusagen als Overlay, anzeigen lassen.

Der erste Plot für den aktuellen Tag (der auch funktioniert) sieht wie folgt aus:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Helligkeit" as metric
FROM history
WHERE READING="Helligkeit" AND DEVICE="Lichtsensor" AND $__timeFilter(TIMESTAMP)


Für den zweiten Plot (also für den vom gestrigen Tag) habe ich folgendes versucht:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Helligkeit gestern" as metric
FROM history
WHERE READING="Helligkeit" AND DEVICE="Lichtsensor" AND TIMESTAMP >= NOW() - INTERVAL 24 HOUR


Leider liefert das 2. Query exakt denselben Plot wie das erste Query. Ich muss dazu sagen, dass ich von SQL absolut keine Ahnung habe (sieht man vielleicht auch an meiner Frage ;) ). Hat jemand einen Tipp für mich?

Danke und beste Grüße!

PS: um es etwas besser zu verdeutlichen, angehängt der Plot, wie ich ihn bisher verwende.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: triagony am 22 Februar 2018, 09:56:10
Hat jemand Erfahrung mit Fhem und Grafana hinter einem Reverse Proxy?

Bei mir werden die Grafana-Plots in Fhem nur angezeigt, wenn ich mit meinem LAN verbunden bin.  Über den Reverse Proxy (Apache - im Wesentlichen wie im Video-Tutorial von Matthias Kleine konfiguriert) leider nicht.

Vielen Dank und Beste Grüße!

Gesendet von meinem SM-G950F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: cyberthom am 26 Februar 2018, 15:21:38
Ich habe diesen Post bei der Suche nach Grafana Statistiken für Fussbodenheizung gefunden. Ich muß sagen, super Post!!!
Ich bin auch gerade dabei meine Sensordaten sinnvoll in Grafana abzubilden. Eine Sache fehlt mir bzw. weiß ich nicht, wie ich sie realisieren kann, ich denke aber, dass sie zu einen deiner ersten Grafiken sehr gut passen würde.
Ich habe auch die Raumtemperatur und die Zeiten, in denen das Fussbodenventil auf und zu ist abgebildet. Ich habe momentan noch eine Tag/Nacht Steuerung (möchte keine Diskussion über Tag/Nacht Steuerung anfangen). Wie kann ich bei Grafana eine Art "Referenzkurve" hinterlegen, welche die Solltemperatur nach Tageszeit zeigt. Ich habe z.B. für das Schlafzimmer 5 Verschiedene Solltemperaturen über den Tag verteilt.Eine Variante wäre diese auch in einer Datenbank zu loggen, ich möchte hier aber DB-Einträge sparen, die Daten sind ja jeden Wochentag gleich.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 08 März 2018, 08:52:53
Guten Morgen,

Zitat von: Thyraz am 11 Oktober 2017, 07:33:04
Beispiel: Kurve ausdünnen bei zu vielen Messwerten (lange Ladezeiten / langsamer Seitenaufbau)

Meine LaCrosse Thermometer loggen die Temperatur mit 0.1°C Genauigkeit, wodurch man an sich ständig Schwankungen hat und somit massig Messwerte.
Damit die Diagramme auf dem Handy anständig laden, zeige ich weit weniger Punkte in der Kurve an, als Messwerte vorhanden sind.
Um dennoch eine möglichst genaue Darstellung der Kurven zu bekommen, wird dazu jeweils aus den zusammengefassten Punkten der Mittelwert gebildet.

Zuerst das normale Select Statement mit allen Messpunkten:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value,
  "Original" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)


Und hier dann die angepasste Version mit Gruppierung zu 300s / 5min und der Average Berechnung:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, DOUBLE)) as value,
  Geglättet" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300


Edit:
Es gibt noch eine erweiterte Möglichkeit um die Stärke der Glättung an den gerade gewählten Zeitraum anzupassen.
Das hilft, damit bei einem Anzeigezeitraum von 1 Woche ähnlich viele Datenpunkte angezeigt werden wie wenn man 1 Jahr wählt.
Bei einer Gruppierung mit einem festen Sekunden-Teiler wäre dies nicht der Fall.

Grafana bietet hierzu eine Variable $__interval welche sich beim ändern des Zeitraums anpasst.
Sie nimmt dabei Werte wie z.B. 2s, 5m, 1h an.
Dies kann man wie folgt verwenden:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, DOUBLE)) as value,
  "Geglättet" as metric
FROM history
WHERE READING="temperatureVal" AND DEVICE="Thermometer02" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV CASE RIGHT($__interval, 1) 
                                          WHEN 's' THEN $__interval
                                          WHEN 'm' THEN $__interval * 60
                                          WHEN 'h' THEN $__interval * 3600
                                          WHEN 'h' THEN $__interval * 86400
                                          ELSE $__interval
                                        END


Wem die Glättung dabei zu gering ausfällt, kann hinter das *60, *3600 usw. auch noch einen weiteren Multiplikator hinzufügen.

ich habe Grafana gerade mal auf Version 5.0.0 upgedated, aber leider funktioniert das ausdünnen dann nicht mehr, sondern der Plot wirft einen Fehler - hat jemand eine Idee, wie man das löst?

Danke
Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 16 März 2018, 08:36:50
Guten Morgen,

Ich habe noch eine andere Frage: Ich habe eine Idee, die ich gern mit der Heatmap umsetzen möchte, aber leider reichen meine SQL-Kenntnisse hierfür nicht  :(: Ich logge in meiner Datenbank die Zustände der Bewegungsmelder (Reading motion mit Wert on/off). Nun hätte ich gern folgende Heatmap:

x-Achse: Tage (also Zeitpunkt)
y-Achse: Stunde des Tages (0..23)
"Heat-Wert" soll pro Stunde eines Tages per Farbe die Gesamtdauer des Zustandes on für das Reading motion anzeigen (z.B. 0min = schwarz, 60min = tiefrot).

Wäre dies irgendwie möglich?

Vielen Dank
Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Tuxi70 am 26 März 2018, 16:45:48
Bei mir sieht es so stufig aus. Geht es auch ein weniger Stufiger?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: alook90 am 26 März 2018, 16:54:03
Versuch mal in den Einstellungen deines Graphen unter dem Reiter "Display" den Punkt "Staircase" (unter "Mode Options") zu deaktivieren. Durch diese Einstellung wird bei mir die Kurve "stufiger" (siehe Anhang).



Gruß,
Alex
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Tuxi70 am 29 März 2018, 17:13:01
Mir ist da was aufgefallen, was mir bei der "Legend-Anzeige" ersichtlich wurde. Denn ein Wohnzimmer total mit gut 4000 °C zu beheizen (siehe Screenshot), ist doch irgendwie unglaubwürdig, oder?  8)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SabineT am 29 März 2018, 19:12:09
Zitat von: Tuxi70 am 29 März 2018, 17:13:01
Mir ist da was aufgefallen, was mir bei der "Legend-Anzeige" ersichtlich wurde. Denn ein Wohnzimmer total mit gut 4000 °C zu beheizen (siehe Screenshot), ist doch irgendwie unglaubwürdig, oder?  8)
Total wird da auch keinen Sinn machen, da werden vermutlich alle Messwerte des angezeigen Bereiches addiert...

lg, Sabine
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Tuxi70 am 29 März 2018, 21:55:41
Für Steckdosen ist es eher Brauchbar, da auch dort die Readings zusammen gerechnet werden und die Maßeinheit passend umgestellt werden.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 03 April 2018, 12:07:23
Zitat von: triagony am 22 Februar 2018, 09:56:10
Hat jemand Erfahrung mit Fhem und Grafana hinter einem Reverse Proxy?

Bei mir werden die Grafana-Plots in Fhem nur angezeigt, wenn ich mit meinem LAN verbunden bin.  Über den Reverse Proxy (Apache - im Wesentlichen wie im Video-Tutorial von Matthias Kleine konfiguriert) leider nicht.

Vielen Dank und Beste Grüße!

Gesendet von meinem SM-G950F mit Tapatalk

Ich betreibe Grafana hinter einem Apache reverse Proxy.

/etc/apache2/sites-available/seite.conf :
        <Location /grafana-fhem-pc/>
                RequestHeader unset Authorization
                ProxyPass http://192.168.123.4:3000/
                ProxyPassReverse http://192.168.123.4:3000/
                # auth
                Satisfy All
                AuthType Basic
                AuthName "private"
                AuthUserFile /etc/apache2/users.htpasswd
                Require user username1 username2
        </Location>


/etc/grafana/grafana.ini :
domain = example.com
root_url = %(protocol)s://%(domain)s:/grafana-fhem-pc


Location aus der Apache config und root_url aus Grafana muss ident sein! in meinem Fall "/grafana-fhem-pc"

Hier noch das DIV meiner tabletui:
<div style="float:right"
                        data-type="iframe"
                        data-src="https://example.com/grafana-fhem-pc/dashboard/db/dashboardname?orgId=1&from=now%2Fd&to=now%2Fd"
                        data-fill="yes"
                        data-scrolling="yes">
                </div>


Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: triagony am 03 April 2018, 16:12:34
Zitat von: sku am 03 April 2018, 12:07:23
Ich betreibe Grafana hinter einem Apache reverse Proxy.

/etc/apache2/sites-available/seite.conf :
        <Location /grafana-fhem-pc/>
                RequestHeader unset Authorization
                ProxyPass http://192.168.123.4:3000/
                ProxyPassReverse http://192.168.123.4:3000/
                # auth
                Satisfy All
                AuthType Basic
                AuthName "private"
                AuthUserFile /etc/apache2/users.htpasswd
                Require user username1 username2
        </Location>


/etc/grafana/grafana.ini :
domain = example.com
root_url = %(protocol)s://%(domain)s:/grafana-fhem-pc


Location aus der Apache config und root_url aus Grafana muss ident sein! in meinem Fall "/grafana-fhem-pc"

Hier noch das DIV meiner tabletui:
<div style="float:right"
                        data-type="iframe"
                        data-src="https://example.com/grafana-fhem-pc/dashboard/db/dashboardname?orgId=1&from=now%2Fd&to=now%2Fd"
                        data-fill="yes"
                        data-scrolling="yes">
                </div>


Gruß
Hallo, vielen Dank für deine Antwort. Sehe ich das richtig, dass du den grafana-server selbst über den reverse Proxy von außen erreichbar machst?

Ich hatte eigentlich "nur" vor, von außen auf Fhem zugreifen zu können (das funktioniert) und dann dort (d.h. innerhalb von Fhem) auch grafana-Grafiken anzeigen zu lassen. Ist es dafür zwingend notwendig, grafana selbst von außen erreichbar zu machen?

Beste Grüße.

Gesendet von meinem SM-G950F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 04 April 2018, 09:49:43
Zitat von: triagony am 03 April 2018, 16:12:34
Hallo, vielen Dank für deine Antwort. Sehe ich das richtig, dass du den grafana-server selbst über den reverse Proxy von außen erreichbar machst?

Ich hatte eigentlich "nur" vor, von außen auf Fhem zugreifen zu können (das funktioniert) und dann dort (d.h. innerhalb von Fhem) auch grafana-Grafiken anzeigen zu lassen. Ist es dafür zwingend notwendig, grafana selbst von außen erreichbar zu machen?

Was meinst du mit "innerhalb von FHEM?" Als eingebettete Seite wie in meinem Tabletui Beispiel?

Ich kenne nur die Möglichkeit, Seiten miteinzubinden wie in meinem Beispiel, welche aber auch vom jeweiligen Gerät aus erreichbar sein müssen. D.h. einbinden bietet keine Proxy Funktionalität.
Zusatzinfo: In der Apache config sind bei mir bei jedem Basic Auth die AuthName ident. Wenn der AuthName bei /fhem und /grafahan-fhem unterschiedlich ist, wird das Passwort 2x abgefragt (zumindest bei mir, als ich unterschiedliche AuthName verwendet hatte^^). Die Domain muss auch gleich sein denke ich, zumindest hab ichs anders noch nicht getestet.

Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: triagony am 04 April 2018, 10:40:36
Guten Morgen. Noch einmal danke für deine Antwort.

Vorweg zur Info: Grafana und Fhem laufen bei mir auf dem gleichen Host, nur auf unterschiedlichen Ports (fhem: 8083 / grafana: 3001). Für Fhem selbst habe ich einen reverse Proxy eingerichtet, mit dem ich von außen, d.h. aus dem Internet über https://DOMAIN auf Fhem zugreifen kann. Der reverse Proxy liegt auf einem anderen Host (jeweils virtuelle Maschinen). Meine Apache-Config hierfür sieht so aus:


<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName DOMAIN

    ServerAdmin EMAIL
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/DOMAIN.error.log
    CustomLog ${APACHE_LOG_DIR}/DOMAIN.access.log combined

    SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem

    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On

    <Location /fhem>
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /fhem(.*)           ws://FHEM-IP:8083/fhem$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /fhem(.*)           http://FHEM-IP:8083/fhem$1 [P,L]


        ProxyPass  http://FHEM-IP:8083/fhem
        ProxyPassReverse  http://FHEM-IP:8083/fhem
# ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
  ProxyHTMLURLMap /        /fhem/
  ProxyHTMLURLMap /fhem/     /fhem/

        AuthType Basic
        AuthName "Password Required"
        AuthUserFile /etc/fhem-htpasswd
        Require valid-user
        Order deny,allow
        Allow from all
</Location>
<Directory />
   RedirectPermanent / /fhem
</Directory>
</VirtualHost>
</IfModule>


Für Grafana (läuft auf dem gleichen Host wie FHEM nur auf einem anderen Port, s.o.) habe ich - wie gesagt - bisher keine eigene von außen über den reverse Proxy erreichbare Adresse eingerichtet.

Mit "in Fhem einbinden" meine ich das Einbinden eines Graphen mittels Weblink in folgender Form (Beispiel):

define NAME weblink image http://[GRAFANA-IP]:3001/render/dashboard-solo/db/dashboard?orgId=1&from=now-2d&to=now&panelId=2&width=780&height=480&tz=UTC%2B02%3A00&theme=light

Das funktioniert auch, solange ich mich im gleichen LAN befinde. Es funktioniert nicht, wenn ich mich über den rProxy auf die Fhem-Oberfläche verbinde und dort den Grafana-Graphen anzeigen lassen möchte. Dort erscheint dann nur ein Platzhalter für den Graphen.

Wenn ich nun - weil es anders nicht geht(?) - auch grafana von außen erreichbar mache (mittels reverse proxy), müsste ich dann in meinem weblink-Beispiel die von außen erreichbare Domain im Link eintragen, richtig? Oder gibt es doch einen Weg, die LAN-IP zu nutzen? Ich fänd es ziemlich umständlich, die Grafana-Graphiken, über das Internet einzubinden / abzurufen, wenn doch die Graphiken an sich auf dem gleichen Host wie Fhem liegen.

Vielleicht habe ich aber auch nur einen (oder mehrere) Denkfehler?

Danke und beste Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 04 April 2018, 11:18:47
Hallo,

ich kenne mich zwar mit dem ReverseProxy nicht aus, aber eine möglich Alternative wäre es vielleicht, die Bilder von Grafana mittels cronjob und wget zyklisch auf dem Server ablegen zu lassen (z.B. im FHEM-WWW-Verzeichnis) und von dort aus anzuzeigen - könnte unter Umständen sogar schneller laden  ;)

Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 05 April 2018, 15:11:21
Zitat von: RoBra81 am 04 April 2018, 11:18:47
Hallo,

ich kenne mich zwar mit dem ReverseProxy nicht aus, aber eine möglich Alternative wäre es vielleicht, die Bilder von Grafana mittels cronjob und wget zyklisch auf dem Server ablegen zu lassen (z.B. im FHEM-WWW-Verzeichnis) und von dort aus anzuzeigen - könnte unter Umständen sogar schneller laden  ;)

Ronny
Dann wäre doch der Vorteil von Grafana dahin, dass man in der Grafik zB. rumzoomen kann.

Zitat von: triagony am 04 April 2018, 10:40:36
Mit "in Fhem einbinden" meine ich das Einbinden eines Graphen mittels Weblink in folgender Form (Beispiel):

define NAME weblink image http://[GRAFANA-IP]:3001/render/dashboard-solo/db/dashboard?orgId=1&from=now-2d&to=now&panelId=2&width=780&height=480&tz=UTC%2B02%3A00&theme=light

Das funktioniert auch, solange ich mich im gleichen LAN befinde. Es funktioniert nicht, wenn ich mich über den rProxy auf die Fhem-Oberfläche verbinde und dort den Grafana-Graphen anzeigen lassen möchte. Dort erscheint dann nur ein Platzhalter für den Graphen.

Wenn ich nun - weil es anders nicht geht(?) - auch grafana von außen erreichbar mache (mittels reverse proxy), müsste ich dann in meinem weblink-Beispiel die von außen erreichbare Domain im Link eintragen, richtig? Oder gibt es doch einen Weg, die LAN-IP zu nutzen? Ich fänd es ziemlich umständlich, die Grafana-Graphiken, über das Internet einzubinden / abzurufen, wenn doch die Graphiken an sich auf dem gleichen Host wie Fhem liegen.

Ich meine, es muss Grafana auch von außen erreichbar sein. Den Weblink ruft ja der Browser auf, daher muss das ebenfalls über den Apache Proxy laufen.
Wenn du im internen LAN bist und die von außen erreichbare Domain aufrufst, sollte der Router das direkt umleiten und nicht über das Internet schicken.


Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: triagony am 05 April 2018, 15:14:18
Zitat von: sku am 05 April 2018, 15:11:21
Dann wäre doch der Vorteil von Grafana dahin, dass man in der Grafik zB. rumzoomen kann.

Ich meine, es muss Grafana auch von außen erreichbar sein. Den Weblink ruft ja der Browser auf, daher muss das ebenfalls über den Apache Proxy laufen.
Wenn du im internen LAN bist und die von außen erreichbare Domain aufrufst, sollte der Router das direkt umleiten und nicht über das Internet schicken.


Gruß
Na dann werde ich wohl diesen Weg gehen (müssen). Vielen Dank nochmal.

Beste Grüße

Gesendet von meinem SM-G950F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 05 April 2018, 15:16:38
Zitat von: sku am 05 April 2018, 15:11:21
Dann wäre doch der Vorteil von Grafana dahin, dass man in der Grafik zB. rumzoomen kann.

Ja, ich selbst habe es auch als iFrame direkt eingebunden, aber dem Code von @triagony hatte ich entnommen, dass er es sowieso schon als image einbindet...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 05 April 2018, 16:35:55
Zitat von: RoBra81 am 05 April 2018, 15:16:38
Ja, ich selbst habe es auch als iFrame direkt eingebunden, aber dem Code von @triagony hatte ich entnommen, dass er es sowieso schon als image einbindet...
Tatsache, so genau hatte ich vorhin gar nicht geschaut...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 08 Mai 2018, 08:32:30
Guten Morgen,

ich habe Grafana im Docker Containter laufen, welches sich dann hin und wieder mit Watchtower automatisch updated.

Naja, es scheint das Grafana irgendwas geändert hat - in meinen Graphen (die vorher gingen), bekomme ich folgende Fehlermeldung:

Zitat"Value column must have numeric datatype, column: value type: string value

Der Select dazu sieht folgendermaßen aus:

SELECT
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H')) as time_sec,
    VALUE as value,
    "Wasserverbrauch Stunde" as metric
  FROM history
  WHERE READING="LitreHourLast" AND DEVICE="Wasserzaehler" AND $__timeFilter(TIMESTAMP)


Jemand eine Idee?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 08 Mai 2018, 08:51:45
Hab bei mir Grafana länger nicht aktualisiert.
Evtl. sind die etwas strikter bei den Datentypen geworden statt automatisch zu konvertieren.

Hier war mal ein manuellen konvertieren drin, da man mit Strings nicht as "+2" hätte rechnen können:
https://forum.fhem.de/index.php/topic,77724.msg697780.html#msg697780

Falls du was mit Komma statt nur Ganzzahlen brauchst, müsstest du mal suchen wie SQL das statt Integer nennt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 08 Mai 2018, 09:05:12
Zitat von: Thyraz am 08 Mai 2018, 08:51:45
Hab bei mir Grafana länger nicht aktualisiert.
Evtl. sind die etwas strikter bei den Datentypen geworden statt automatisch zu konvertieren.

Hier war mal ein manuellen konvertieren drin, da man mit Strings nicht as "+2" hätte rechnen können:
https://forum.fhem.de/index.php/topic,77724.msg697780.html#msg697780

Falls du was mit Komma statt nur Ganzzahlen brauchst, müsstest du mal suchen wie SQL das statt Integer nennt.

Hey danke - ich hab es jetzt dank deines Hinweises so hinbekommen (keine Ahnung, ob es auch anders geht)

Aus

VALUE as value

wurde

CONVERT(VALUE, INTEGER) as value,

Damit werden die Graphen wieder dargestellt ;D ;D
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sku am 08 Mai 2018, 16:37:54
Zitat von: Kai-Alfonso am 08 Mai 2018, 09:05:12
CONVERT(VALUE, INTEGER) as value,

Damit werden die Graphen wieder dargestellt ;D ;D

Mir half
CONVERT(VALUE, double) as value,
da mit deiner Lösung die Nachkommastellen von Temperaturen gerundet werden.


Habe meinen Code in Antwort #19 ebenfalls angepasst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fhemfreund am 06 August 2018, 00:08:45
Habe auch mal Grafana installiert und in Fhem eingebunden. Bin soweit sehr zufrieden :-)

Bei der Darstellung eines Stromverbrauch-Plots komme ich aber nicht weiter.
Mein SQL Statement selektiert nach den in letzter Stunde verbrauchen KWh, die immer um **.59:55 der jeweiligen Stunde geschrieben werden:


SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT (VALUE,DECIMAL(7,3)) as value,
  "Stromverbrauch" as metric
FROM history
WHERE READING="statKWhHourLast" AND DEVICE="ESPEasy_HmWifiEng2_Energy_Total" AND $__timeFilter(TIMESTAMP)


Allerdings stellt Grafana diese für die darauf folgende Stunde dar (siehe angehängte Grafik), obwohl es ja eine Aufsummierung der vergangenen Stunde ist (und auch der Datensatz noch innerhalb dieser in die DB geschrieben wird).

Gibt es eine Möglichkeit, die Bar-Charts daher an den Anfang der entsprechenden Stunde zu plotten?
Habe es schon mit 'Timeshift' im Tab 'Time-Range' versucht - allerdings verschiebt dieser nur die X-Achse um eine Stunde, aber nicht die Darstellung der Bar-Charts ...

Andreas
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SabineT am 06 August 2018, 07:55:32
Du könntest mit:

SELECT
  (UNIX_TIMESTAMP(TIMESTAMP) DIV 3600)* 3600  as time_sec,
  CONVERT (VALUE,DECIMAL(7,3)) as value,
  "Stromverbrauch" as metric
FROM history
WHERE READING="statKWhHourLast" AND DEVICE="ESPEasy_HmWifiEng2_Energy_Total" AND $__timeFilter(TIMESTAMP)


die Minuten und Sekunden auf 0 setzen.

Sabine
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 06 August 2018, 09:58:24
Genau. Grafana weiß ja nicht, dass es sich um einen Tageswert handelt.
Das Ereignis in der Datenbank beginnt bei 59 Minuten und 55 Sekunden.

Da zeichnet es Grafana dann eben in den Grafen, was für dich aussieht als ob es bei der Folgestunde losgeht.

Den Zeitstempel beim Laden so zu manipulieren, dass er auf den Anfang der Stunde statt das Ende zeigt, sollte das Problem also lösen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fhemfreund am 08 August 2018, 00:47:00
Zitat von: SabineT am 06 August 2018, 07:55:32
Du könntest mit:

SELECT
  (UNIX_TIMESTAMP(TIMESTAMP) DIV 3600)* 3600  as time_sec,
  CONVERT (VALUE,DECIMAL(7,3)) as value,
  "Stromverbrauch" as metric
FROM history
WHERE READING="statKWhHourLast" AND DEVICE="ESPEasy_HmWifiEng2_Energy_Total" AND $__timeFilter(TIMESTAMP)


die Minuten und Sekunden auf 0 setzen.

Sabine

Klasse Tip - hat einwandfrei funktioniert. Danke dafür. Da ich allerdings kein SQL-Jünger bin: was ist denn der Trick hinter dem Teilen und Multiplizieren der Sekunden einer Std.?

Andreas
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SabineT am 08 August 2018, 06:43:06
Zitat von: fhemfreund am 08 August 2018, 00:47:00
Klasse Tip - hat einwandfrei funktioniert. Danke dafür. Da ich allerdings kein SQL-Jünger bin: was ist denn der Trick hinter dem Teilen und Multiplizieren der Sekunden einer Std.?

Andreas
Das ist eigentlich nichts SQL Spezifisches.

DIV ist eine Division, bei der beim Ergebnis der Teil hinter dem Komma weg gelassen wird. Wenn du also z.B. einen Timestamp "01:59:59" hast (also 1 Stunde, 59 Minuten, 59 Sekunden), dann wird das erst mal auf 7199 Sekunden umgerechnet (den Datumsanteil hab ich der Einfach heit halber hier mal weg gelassen), nach dem DIV 3600 bleibt dann 1 als Ergebnis über.

Grafana will aber den Wert in Sekunden haben, daher wird das dann einfach wieder mit 3600 Multipliziert.
Dadurch wird aus "01:59:59" eben dann "01:00:00".

Sabine
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: JoeALLb am 08 August 2018, 07:43:27
Ginge aber auch mit

SELECT DATE_FORMAT(timestamp, "%H:00:00");
Wäre für komplexere Sachen minimal effektiver, da Indexe noch benutzt werden könne. Natürlich müsste man das Datum zur Zeit auch noch ergänzen.

SG Joe

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 August 2018, 18:47:45
hat jemand ein paar Screenshots wie Grafana in FHEMWEB aussieht? Ist es möglich die Plot per iFrame einzubinden und die Zoom-Buttons zu behalten? Ggf. mit der Definition?

Danke!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 25 August 2018, 20:04:00
Ich mache das so wie im Anhang, durch
Internals:
   DEF        iframe http://192.168.2.7:3000/dashboard/db/temperaturen
   LINK       http://192.168.2.7:3000/dashboard/db/temperaturen
   NAME       TempView
   NR         99
   STATE      initialized
   TYPE       weblink
   WLTYPE     iframe
Attributes:
   htmlattr   width="100%" height="400" frameborder="0" marginheight="0" marginwidth="0"
   room       Grafiken
   sortby     5
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 August 2018, 20:31:44
Zitat von: andies am 25 August 2018, 20:04:00
Ich mache das so wie im Anhang, durch


danke dir!

Vielleicht weißt du das ... wenn ich mir Post https://forum.fhem.de/index.php/topic,77724.msg696839.html#msg696839   ansehe ist das nur ein Plot ohne die Grafana-Spalte links. Ist das "nackte" Plot ein PNG? Geht ja in Grafana auch.

Habe Grafana auf einem Testsystem laufen. Muss ich mich näher befassen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 25 August 2018, 20:41:35
Nein, das sind keine png's. Ich hatte mal das Problem, das ich png brauchte, um sie mit Telegram zu verschicken (an mich, als Kontrolle). Das ist nicht so simpel.

Ich habe in dem raspberry, auf dem grafana läuft, eine batch-Datei geschrieben, die ich zweimal pro Tag aufrufe und die aus grafana png holt. Die sieht so aus:

#!/bin/bash
curl  -H   "Authorization: Bearer XXXXXXXXXX=" "http://localhost:3000/render/dashboard-solo/db/temperaturen?orgId=1&panelId=1&from=now-1d&to=now&width=1000&height=500&tz=UTC%2B01%3A00" > /home/pi/GrafanaTemperaturen.png
curl  -H   "Authorization: Bearer XXXXXXXXXX=" "http://localhost:3000/render/dashboard-solo/db/temperaturen?orgId=1&panelId=2&from=now-1d&to=now&width=1000&height=500&tz=UTC%2B01%3A00" > /home/pi/GrafanaTemperaturen1.png
curl -s -H "Authorization: Bearer XXXXXXXXXX=" "http://localhost:3000/render/dashboard-solo/db/energie?orgId=1&panelId=1&from=now-1d&to=now&width=1000&height=500&tz=UTC%2B01%3A00" > /home/pi/GrafanaEnergie.png
curl -s -H "Authorization: Bearer XXXXXXXXXX=" "http://localhost:3000/render/dashboard-solo/db/wasser-und-entkalkung?orgId=1&panelId=1&from=now-1d&to=now&width=1000&height=500&tz=UTC%2B01%3A00" > /home/pi/GrafanaWasser.png
curl -s -H "Authorization: Bearer XXXXXXXXXX=" "http://localhost:3000/render/dashboard-solo/db/raspberry?orgId=1&panelId=1&from=now-1d&to=now&width=1000&height=500&tz=UTC%2B01%3A00" > /home/pi/GrafanaRaspberry.png
## notwendig fuer FHEM, grafiken werden gerendert und dann in fhem abgelegt
## Datei wird ueber crontab aufgerufen, derzeit zweimal taeglich (21 Uhr und 6 Uhr)

Die Sachen, die ich mit XXXXXXXXXX gekennzeichnet habe, sind Codes aus grafana zum autorisieren. Sie erhältst Du, wenn Du in grafana unter Configuration->API keys Angaben eingibst, dann wird Dir der Code angezeigt. Mehr hier
http://docs.grafana.org/reference/sharing/ (http://docs.grafana.org/reference/sharing/)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: fischit am 25 August 2018, 23:53:50
Sind das denn keine brauchbaren PNGs die ich beim Sharing unter dem Punkt "Direct link rendered image" erzeuge?
Wenn ich die Bilder wegspeichere sind das PNGs.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 26 August 2018, 08:29:31
Kann ich nicht sagen - ich wollte ja automatisiert speichern, das habe ich nur so geschafft. Vielleicht geht es anders?


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 30 August 2018, 13:35:00
Gibt es eigentlich schon eine Sammlung, was man alles tolles mit FHEM + Grafana bauen kann, insb. wo die normalen Plots absolut nicht mehr mitmachen?

Ich werfe mal einen Vergleich "Sommer 2018 vs. 2017" in den Raum. Nachbauen kann man das mit dem Carpetplot (standardmäßig bei Grafana dabei):


SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE+0 as value,
  "Außentemperatur" as metric
FROM history
WHERE READING="temperature" AND DEVICE="aussenthermometer" AND $__timeFilter(TIMESTAMP)
ORDER BY time_sec


Dazu noch Min und Max im Reiter "Display" feststellen (hier 10 und 30°C) und im Reiter "Time Range" ggf. einen Override (hier: now-90d) einbauen.

Dann das Ding einmal "duplizieren" und im Reiter "Time Range" noch "Add Time Shift" auf "365d" stellen für den Vorjahresvergleich setzen. Voila!

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 30 August 2018, 14:42:25
Hallo,

Zitat von: peterk_de am 30 August 2018, 13:35:00
Gibt es eigentlich schon eine Sammlung, was man alles tolles mit FHEM + Grafana bauen kann

nein, im Wiki ist nur ein Link auf diesen Thread.

Zitat von: peterk_de am 30 August 2018, 13:35:00
Ich werfe mal einen Vergleich "Sommer 2018 vs. 2017" in den Raum.

Das nehme ich doch mal zum Anlass, meinen Plot zum Bewegungsmelder vorzustellen: Ich logge den Status meiner Bewegungsmelder und habe mir eine Auswertung über die Tageszeit gebastelt: Als plot kommt die Heatmap zum Einsatz (sollte bei Grafana dabei sein).

SQL:

SELECT
  SELECT UNIX_TIMESTAMP(date(TIMESTAMP)) as time_sec,
    count(VALUE) as value,
    CONCAT((hour(TIMESTAMP)*60*60)+floor(minute(TIMESTAMP)/15)*15*60) as metric
  FROM history
  WHERE (READING="motion" or READING="state") and device="OG.ez.BM.Whg_Tuer" AND $__timeFilter(TIMESTAMP) and VALUE not like '%off%'
  group by floor(minute(TIMESTAMP)/15), hour(TIMESTAMP), day(TIMESTAMP), month(TIMESTAMP), year(TIMESTAMP)


(READING="motion" or READING="state" kommt daher, dass sich das Reading mal geändert hat)

Bei Axis folgende Einstellungen:
  Data format -> Format -> Time series buckets
  Y-Axis -> Unit -> duration (hh:mm:ss)

Bei Display folgende Einstellungen:
  Colors -> Mode -> Spectrum
  Colors -> Scheme -> YlOrRd
  Color scale -> Min -> 0
  Color scale -> Max -> 30 (entspricht maximal 30 Auslösungen pro viertel Stunde - auto wäre auch möglich)
  Legend -> Show legend -> ja
  Buckets -> Space -> 0

Im Ergebnis sieht man dann, zu welcher Tageszeit der Raum benutzt wurde. Im Anhang sieht man einen Plot eines Bewegungsmelders im allgemein zugänglichen Hausflur - spannender sind hier aber die Plots der Bewegungsmelder in der Wohnung, da man hier auch die Wochentage sehr gut erkennen kann, aber die will ich hier nicht zeigen, da ja nicht jeder wissen muss, wann bei uns niemand zu Hause ist ;-)

Ronny

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 31 August 2018, 09:29:04
Hey super :-) Die Heatmap habe ich noch gar nicht ausprobiert, aber das ist ein schöner Use Case dafür!

Dann zeige ich gleich einmal noch meine "Anwesenheitsauswertung", die ich vor allem für die Optimierung der Heizzeiten einsetze:

Für jeden Raum habe ich in FHEM einen Dummy (hier z.B. kueche.anwesenheit), in dem ich verschiedene Sensoren über ein DOIF zu einem "Rating" kombiniere, ob dort jemand ist:

defmod di_kueche.anwesenheit DOIF (0) (set kueche.anwesenheit Ja) (set kueche.anwesenheit Unbekannt) (set kueche.anwesenheit Unwahrscheinlich) (set kueche.anwesenheit Nein)\
\
DOELSEIF  ( ( [kueche.wandtaster.praesenz:"motion.*on"] \
              or [kueche.fenster:"^(offen|geschlossen)$"]\
              or [kueche.fenster2:"^(offen|geschlossen)$"]              \
            ) and [?kueche.tuer] eq "geschlossen"\
          ) \
          (set kueche.anwesenheit Ja) \
\
DOELSEIF ([kueche.wandtaster.praesenz:"motion.*on"] \
          or [kueche.tuer:"offen"] \
          or [kueche.tuer:"geschlossen"]\
          or [kueche.fenster:"^(offen|geschlossen)$"]\
          or [kueche.fenster2:"^(offen|geschlossen)$"]  \
          ) \
         (set $SELF cmd_1)

attr di_kueche.anwesenheit do resetwait
attr di_kueche.anwesenheit wait 0,60,300,900:0:0


Das DOIF wäre ein Thema für sich und verwendet einige Kniffe - jedenfalls bekomme ich so relativ "sauber" mit, ob dort gerade jemand ist (Ja) bzw. abgestuft nach der Dauer der Inaktivität eine Wahrscheinlichkeit (Unbekannt / Unwahrscheinlich / Nein) - auch unter Berücksichtigung der Tatsache, dass der Raum bei geschlossener Tür normalerweise nicht verlassen werden kann, selbst wenn der Bewegungsmelder nichts erkennt ;-)

In Grafana visualisiere ich das dann für jeden Raum über das "Discrete"-Plugin. Damit das sauber aussieht, habe ich den Hack für das Erweitern des Plots über den Anzeigezeitraum ("Plotabriss vermeiden") hinaus noch etwas verbessert. Die Metric für die Küche sieht z.B. so aus (bei allen anderen wird nur der Name der Metric und das device einmal geändert):

SELECT
  data.time_sec as time_sec,
  "Küche" as metric,
      case
        when data.rawValue = 'Ja' then 3
        when data.rawValue = 'Unbekannt' then 2
        when data.rawValue = 'Unwahrscheinlich' then 1
        when data.rawValue = 'Nein' then 0
        when data.rawValue is null then 0
    end as value
FROM
(
   SELECT @reading:="state", @device:="kueche.anwesenheit"
) AS var,
(
   (
   SELECT
      $__unixEpochFrom() as time_sec,
      VALUE as rawValue
   FROM history
   WHERE READING=@reading AND DEVICE=@device AND UNIX_TIMESTAMP(TIMESTAMP) <= $__unixEpochFrom()
   ORDER BY TIMESTAMP DESC
   LIMIT 1
   )
UNION
   (
   SELECT
      UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
      VALUE as rawValue
   FROM history
   WHERE READING=@reading AND DEVICE=@device AND $__timeFilter(TIMESTAMP)
   )
UNION
   (
   SELECT
      $__unixEpochTo() as time_sec,
      VALUE as rawValue
   FROM history
   WHERE READING=@reading AND DEVICE=@device AND UNIX_TIMESTAMP(TIMESTAMP) <= $__unixEpochTo()
   ORDER BY TIMESTAMP DESC
   LIMIT 1
   )
) as data
ORDER BY time_sec ASC


Jetzt macht man in dem Tab "Mappings" noch folgendes ...


0 -> Nein
1 -> Unbekannt
2 -> Unwahrscheinlich
3 -> Ja


... und legt die Farben nach Wunsch fest. Fertig ist eine schicke "Raumbenutzungsansicht" :-) Im Screenshot sieht man sehr schön, dass an dem ersten der beiden dargestellten Tage (10-16 Uhr) im Schlafzimmer ein Bewegungsmelder "Amok" läuft. Ist also auch gut zum Debuggen :-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 08 Oktober 2018, 13:36:12
Hallo,
versuche mich auch gerade mit grafana und komme nicht weiter.
Bei einigen Geräten lasse ich "state" loggen mit folgendem Inhalt
T: 18.9 desired: 5.0 valve: 0
In Fhem habe ich per regex mit
T:\s([-\.\d]+).* den Wert für die Temperatur bekommen.
Jetzt wollte ich das gleiche bei grafana probieren und komme aber absolut nicht weiter wo und wie ich das ganze dort hinterlegen muss.
Hat jemand evtl. ein Beispiel wie ich das ganze bei gafana zum laufen bekommen?
Danke im Voraus und
Grüße Sten
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 08 Oktober 2018, 18:13:25
Mache mal ein list des log-devices


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 08 Oktober 2018, 18:53:03
Welches meinst Du speziell? Das Gerät was die log Einträge (sprich Thermostat) erzeugt oder mein dblog Device?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 08 Oktober 2018, 20:21:28
Ich nehme an, das ist ein Homematic? Ich mache das so:
defmod DbLog DbLog ./db.conf (DECT1:power.*|.*thermostat_Clima:measured-temp.*|.*rssi_at_WLAN_HmUART.*|Blitzwolf(1|2):.*)

und damit werden die Temperaturen erfasst. Valve kannst du dann hinzufügen. In Grafana wird das so angezeigt
SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    AVG(VALUE) as value,
    "Deine Beschreibung" as metric
  FROM history
  WHERE READING="measured-temp" AND DEVICE="Badezimmerthermostat_Clima" AND $__timeFilter(TIMESTAMP)
  GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 1200

wobei "Badezimmerthermostat_Clima" das device (genauer der channel) des HM ist. 1200 ist die Anzahl der Sekunden, über die gemittelt wird.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 09 Oktober 2018, 07:46:59
Richtig, ist Homemtaic ABER ich loge nicht jeden Wert einzeln bei meinen Stellventilen sondern nur state.
Was dann so aussieht.
state T: 21.2 desired: 19.5 valve: 0

Meine gplot files in FHEM sind im Datenteil wie folgt definiert
#myLogDB <SPEC1>:state:::$val=~s/T:\s([-\.\d]+).*/$1/eg
#myLogDB <SPEC1>:state:::$val=~s/.*valve:\s([-\.\d]+).*/$1/eg


Damit suche ich mir aus dem state den Teil für die Temperatur und den Teil für die Ventilstellung.
In dem Beispiel oben für state zeigt er dann im Plot folgende Werte für Temperatur und Ventilstellung
21.2
0


Und mein Problem ist das Grafana aus der dblog Datenbank für state ja das gleiche bekommt und ich
nicht weiß wie ich in Grafana mit regex oder ähnliches mir den nummerischen Wert "heraus ziehen" kann.
Ich hoffe ich konnte das Problem jetzt rüberbringen?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag 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:

SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    100-substring_index(substring_index(value, ' ', 4),' ',-1) as value,
    "CPU gesamt" as metric
  FROM history
  WHERE READING="stat_cpu_percent" and device="SysMon" AND $__timeFilter(TIMESTAMP)


Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 09 Oktober 2018, 08:13:44
TOP!!! Das war es. Um die Werte in Grafana zu bekommen sieht es jetzt so bei mir aus
Temperatur
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT((substring_index(substring_index(value, ' ', 2),' ',-1)), double) as value,
  "Temperatur" as metric
FROM history
WHERE READING="state" AND DEVICE="BA_o_Hz_Stellantrieb_Clima" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300


und Ventilstellung
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT((substring_index(substring_index(value, ' ', 3),' ',-1)), double) as value,
  "Ventil" as metric
FROM history
WHERE READING="state" AND DEVICE="BA_o_Hz_Stellantrieb_Clima" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 09 Oktober 2018, 08:50:09
Wobei du theoretisch das Problem bekommen könntest, dass sich der Index von Ventilstellung ändert.
Theoretisch deshalb, weil die Temperatur in einem Innenraum wahrscheinlich nie einstellig oder negativ werden sollte. ;)

Eine Lösung falls man in so ein Problem rennen sollte, könnte eine Kombination aus REGEXP_SUBSTR (Mit deiner Regex valve:\s([-\.\d]+)) und REPLACE (um das valve: aus dem Treffer zu entfernen) sein.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: RoBra81 am 09 Oktober 2018, 10:38:10
Zitat von: Thyraz am 09 Oktober 2018, 08:50:09
Wobei du theoretisch das Problem bekommen könntest, dass sich der Index von Ventilstellung ändert.
Theoretisch deshalb, weil die Temperatur in einem Innenraum wahrscheinlich nie einstellig oder negativ werden sollte. ;)

Das verstehe ich nicht ganz? Ich dachte, substring_index trennt den Wert an definierten Trennzeichen (hier das Leerzeichen ' ') - da ist doch egal, wie viele Stellen die Temperatur hat und ob da noch ein '-' davor ist, oder?

Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 10 Oktober 2018, 09:03:17
Hätt ich mal nicht nur den Namen der Funktion, sondern auch die Doku dazu gelesen.  ;D

Dann stimmt es natürlich.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 06 November 2018, 20:01:31
hallo zusammen,
falls ihr auch das problem haben solltet, dass im Tablet UI ein iframe aufruf von grafana nichts anzeigt.
prüft mal ob FHEM unter https läuft und falls ja, solltet ihr grafana auch auf https umstellen.
dazu muss man im Verzeichnis /etc/grafana die datei grafana.ini an drei Stellen leicht modifizieren:

#################################### Server ####################################
[server]
# Protocol (http, https, socket)
protocol = https

# https certs & key file
cert_file = /opt/fhem/certs/server-cert.pem
cert_key = /opt/fhem/certs/server-key.pem



/opt/fhem/certs ist hierbei das Verzeichnis in dem die HTTPS zertifikate des servers hinterlegt sind.

danach datei speichern und einmal den grafana service neu starten bzw. sudo reboot...
ich hoffe es hilft dem einen oder anderen.

vg,
chris
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: slawekking am 07 November 2018, 10:49:08
Hallo,

ich habe aktuell das Problem, dass um 23:00 Uhr das ploten in Fhem aufhört. Am darauf folgendem Tag  sehe ich den Plot vom vorherigen Tag bis 23:00 Uhr.

Nach dem anlegen im Fhem läuft es anfangs problemlos:

define WEB_GrafanaTemp_EG weblink iframe http://192.168.1.64:3500/d-solo/MaImxb-ik/power-consumption?orgId=1&panelId=4&from=1541458800000&to=1541545199999

Unter Grafana wird das Ploten nicht gestoppt. Es ändert sich ohne Grund die Panel ID habe ich festgestellt.

Hat einer von euch eine Idee? Liegt es vielleicht am .ini Eintrag session_life_time?

Gruß

Christoph

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: LordVoodoo am 07 November 2018, 19:26:43
Hallo,

habe mich die letzten Tage ebenfalls mit Grafana beschäftigt. Ziel war es, die Wetterdaten aus Proplanta auszulesen und auch die Prognose der nächsten Tage darzustellen.

Voraussetzungen:


Im Screenshot sind drei Graphen integriert (historische Luftfeuchtigkeit, historische Temperatur und Prognosetemperatur.

Chart Luftfeuchtigkeit:

SELECT
  UNIX_TIMESTAMP(timestamp) as time_sec,
  Cast(value as decimal(10,0)) as value,
  'Feuchtigkeit' as metric
FROM history
Where device = 'Dienst_Wetter_Siegelsbach'
And reading = 'humidity'
And $__timeFilter(timestamp)
ORDER BY timestamp ASC


Chart Temperatur:
SELECT
  UNIX_TIMESTAMP(timestamp) as time_sec,
  Cast(value as decimal(10,1)) as value,
  'Temperatur' as metric
FROM history
Where device = 'Dienst_Wetter_Siegelsbach'
And reading = 'temperature'
And $__timeFilter(timestamp)
ORDER BY timestamp ASC


Chart Temperaturprognose

Select time_sec,
value,
metric
From (
SELECT
  UNIX_TIMESTAMP(timestamp) as time_sec,
  Cast(value as decimal(10,1)) as value,
  'Temperaturprognose' as metric
FROM current
Where device = 'Dienst_Wetter_Siegelsbach'
And reading = 'temperature'
Union
SELECT
  UNIX_TIMESTAMP(STR_TO_DATE(Concat(DATE_FORMAT(timestamp, '%Y%m%d')+(SubString(reading, 3,1)), SubString(reading, 9,2)), '%Y%m%d %H')) as time_sec,
  Cast(value as decimal(10,1)) as value,
  'Temperaturprognose' as metric
FROM current
Where device = 'Dienst_Wetter_Siegelsbach'
And STR_TO_DATE(Concat(DATE_FORMAT(timestamp, '%Y%m%d')+(SubString(reading, 3,1)), SubString(reading, 9,2)), '%Y%m%d %H') > now()
And reading Like 'fc_\_temp__'
) Wetterprognose
Where $__timeFilter(FROM_UNIXTIME(time_sec))
ORDER BY time_sec ASC


Der Chart der Temperaturprognose beginnt am letzten gemeldeten Ist-Wert der Temperatur (erster Teil des Union) und anschließend werden die fc*_temp**-Einträge zerlegt.

Damit die Anzeige auch stattfindet, den Zeitfilter von Grafana (oben rechts) korrekt einstellen, z.B. auf "now-2d to now+9d".
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 12 November 2018, 11:33:57
Hallo, irgendwie habe ich Probleme bei grafana mit der Zeiteinstellung oder Zeitumstellung.
Meine Plots hören alle 1 Stunde vor der aktuellen Zeit auf, s. Screenshot.
FHEM loggt aber richtig und zeigt mir die Einträge auch bis "jetzt" richtig an.
Ich habe keine Ahnung warum aber grafana diese Werte nicht darstellt.
Wenn ich bei metrics auf Generated SQL gehen dann hört das immer eine Stunde vorher auf.

Kann mir jemand evtl. einen Tip geben woran das liegen kann?

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 12 November 2018, 12:00:21
Hast du dich mal direkt per MYSQL Konsole oder phpMyAdmin eingeloggt und geschaut ob aktuellere Daten da sind?

Kann theroretisch auch am Async-Betrieb deiner DBLog Instanz liegen.
Ich hab hier die Zeitabstände bzw. die Anzahl der nötigen Logeinträge bevor der Cache in die DB übertragen wird auch entsprechend angepasst,
damit die Daten schneller in der DB und somit auch in Grafana landen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: LordVoodoo am 12 November 2018, 12:05:30
Hatte den Zeitversatz anfangs auch. In den Grafana-Einstellungen kann man auf ,,Browser"-Zeit (oder ähnlich) einstellen. Danach stimmten Darstellung und Zeitpunkt gem. Datenbank bei mir.

Einstellung ist unter:
Preferences > Local Browser Time


Gesendet von iPhone mit Tapatalk
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 12 November 2018, 12:11:14
Wenn ich mir die Plots von FHEM anschaue dann gibt es aktuelle Daten.
Auch bringt ein umstellen auf local Browser time keine Veränderung.
Was mich halt wundert ist das er bei Generated SQL eine Stunde vorher aufhört.

Jetzt gerade erzeugt
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, double) as value,
  "Verbrauch" as metric
FROM history
WHERE READING="power" AND DEVICE="KE_u_Sd_Waschmaschine_Pwr" AND TIMESTAMP BETWEEN '2018-11-12T05:10:08Z' AND '2018-11-12T11:10:08Z'


Er hört mit dem timestamp um 11:10 Uhr auf obwohl es 12:10 Uhr ist.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: jostereo am 13 November 2018, 09:21:55
Schau dir vielleicht mal die Zeiteinstellung des Grafana Servers an.

Also der Maschine, auf der Grafana läuft.

Die Stunde zurück deutet sehr stark auf GMT Zeit hin.

Wir (Deutschland) sind ja GMT + 1 Stunde.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: devil77 am 13 November 2018, 09:32:09
Dachte ich auch aber überall (Docker / Synology) ist UTC gleich eingestellt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SabineT am 13 November 2018, 12:02:22
Die Endzeit '2018-11-12T11:10:08Z' ist auch 11:10 GMT (das Z am Ende steht da für Zero bzw. Zulu).
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: saschae am 19 November 2018, 04:49:04
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 .....
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 07 Dezember 2018, 07:48:44
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.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag 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.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Kai-Alfonso am 07 Dezember 2018, 08:16:35
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?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: oliverr am 15 Dezember 2018, 22:21:39
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'))


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: dirkbalzer am 21 Dezember 2018, 18:35:11
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
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: chriss1006 am 27 Dezember 2018, 15:19:35
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?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: oliverr am 02 Januar 2019, 21:32:03
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
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: chriss1006 am 14 Januar 2019, 17:57:22
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.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag 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?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 21 Januar 2019, 10:27:23
ich habe fhem, mysql und grafana auf RPi3 mit load 0,05, CPU 5% usw
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 12:58:16
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.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag 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


So schaut es in phpmyadmin aus:
2019-01-21 16:18:54
temp_keller
LACROSSE
temperature2: 18.6
temperature2
18.6
°C
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 16:55:16
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 ...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 21 Januar 2019, 17:11:11
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
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 17:46:06
Zitat von: ChrisW am 21 Januar 2019, 17:11:11
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
Varchar ist default. Utf8 ist unicode und auch Standard. Das dblog scriot legt genau diese Struktur an.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 17:50:39
https://github.com/grafana/grafana/issues/12463
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 21 Januar 2019, 20:34:41
also ich hab die DB geleert lag wohl weil ich erst ohne utf8 geloggt habe und dann umgestellt habe.
Aktuell keine Fehlermeldung aber es wird auch nichts angezeigt .. obwohl schon ein paar Temperaturen in der Datenbank sind .. komisch. Selbst Zeitraum 5 Minuten Zeigt nichts an.

Edit: ... nun macht es wieder Probleme. Hatte die Tabelle Repariert / Optimiert per phpmyadmin. Das 2. Thermometer aktuell ohne fehler aber no data ..

{
  "results": {
    "A": {
      "error": "Value column must have numeric datatype, column: value type: string value: 18.6",
      "refId": "A",
      "meta": {
        "sql": "SELECT\r\n  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,\r\n  VALUE as value,\r\n  \"temp_keller\" as metric\r\nFROM history\r\nWHERE READING=\"temperature2\" AND DEVICE=\"temp_keller\" AND TIMESTAMP BETWEEN FROM_UNIXTIME(1548078070) AND FROM_UNIXTIME(1548099670)"
      },
      "series": null,
      "tables": null
    }
  },
  "message": "Value column must have numeric datatype, column: value type: string value: 18.6"
}



Der Code liefert über phpmyadmin Daten ich lasse nur  AND $__timeFilter(TIMESTAMP) weg ... komisch irgendwas scheint mit der Zeit nicht zu funktionieren


Edit2: also die Ausgabe in phpmyadmin Zeigt was an
SELECT
UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
VALUE as value,
"temp_keller" as metric
FROM history
WHERE READING="temperature2" AND DEVICE="temp_keller" AND TIMESTAMP BETWEEN FROM_UNIXTIME(1548057565) AND FROM_UNIXTIME(1548100765)


Frag mich wo der fehler nun liegt ...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 21:02:03
hast du dir den link mal angesehen? https://github.com/grafana/grafana/issues/12463

ab version 5.20 ist die Datentypeprüfung scheinbar restriktiver.

Dein Log zeigt dass du einen Type-Missmatch hast. Solange wirst du auch keine Werte bekommen.

Versuche mal ein Cast für Feld VALUE. Zum Test mal DECIMAL, muss ggf. noch geändert werden.

VALUE as value, <... alt

CAST(VALUE AS DECIMAL(3,1)) as value, <... neu

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 21 Januar 2019, 21:13:10
Danke. Mit dem cast hatte ich auch da hat er dann nur 22c angezeigt obwohl das nicht im Log war.
Mit CAST(VALUE AS DECIMAL(3,1)) as value, klappt es :) Juhu

edit: Wie bekomm ich nun noch die Legende richtig ?
   22.6000 °C   22.9000 °C   22.9000 °C

Edit: Wäre noch Interessant wie man die Farbe anpasst :D Habe alles gefunden aber nichts zur farbe
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Januar 2019, 21:41:28
decimals ... https://stackoverflow.com/questions/40049980/how-to-display-values-with-decimal-places-in-grafana-with-elasticsearch-datasour

color .... http://docs.grafana.org/features/panels/graph/ ... auf die Legende klicken und anpassen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 22 Januar 2019, 12:41:02
Danke so versteckt *g* was ich nun noch vermisse wie ich den einzelnen Metricen A B C verschiedene Designs geben kann ? Quasi A = steps B= Points ist so etwas möglich ??

Und nun noch etwas Kompliziertes ich hoffe das kann man über den mysql Befehl filtern ?
Täglich generiert das Device Hausstrom ein Reading :
day das scaut so aus : D21 Wd: 27.45 kWh Wm:  27.45 kWh C:  0.00 €

Das D ändert sich pro Tag. Ich möchte gern Bars haben wo ich täglich eine Bar habe mit dem Verbrauch.
Wie komme ich also an dieses 27.45 ?

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 22 Januar 2019, 15:31:51
Zitat von: ChrisW am 22 Januar 2019, 12:41:02
Danke so versteckt *g* was ich nun noch vermisse wie ich den einzelnen Metricen A B C verschiedene Designs geben kann ? Quasi A = steps B= Points ist so etwas möglich ??


balken und linien kombinieren geht irgendwie ... musst mal google fragen.
https://community.hiveeyes.org/t/abweichungen-pro-tag-als-balken-in-gewichtsgrafik-anzeigen/748


Frage zu Tageswerten ... schau dir mal die Grafik an, Datasource ist zwar Influx aber vielleicth hast du die 1d-Agregation auch für Mysql in Grafana. In der Grafik ganz unten.

https://discourse-cdn-sjc2.com/standard14/uploads/grafana/optimized/2X/8/804b5a0db49b1864d31428493496490d219feec4_2_690x387.PNG

Ansonsten müsstest du in Mysql die Group by date Funktion nutzen. Ich lade mir Mysql in influxdb, macht vieles einfacher. Wenn die Aggregation in Grafana für Mysql nicht angeboten wird meldest dich nochmal.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 22 Januar 2019, 15:37:18
oh okay ja sicher alles irgendwie möglich aber sql ist da nicht so mein ding :D
Ich denke ich werde da eher mit Fhem arbeiten mit diesem Statistik Modul scheint ein wenig einfacher zu sein. Dann lasse ich mir da die Werte Ausrechnen und per dblog loggen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 22 Januar 2019, 17:34:06
Ein anderes Problem gerade gefunden ..
Ich logge Gerät Hausstrom mit reading power
Im filelog und in der mysql ist um 17:12:05 ein Eintrag mit 16KW also power 16.80

Ich lasse es wie folgt ausgeben:
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
CAST(VALUE AS DECIMAL(3,1)) as value,
  "Power" as metric
FROM history
WHERE READING="power" AND DEVICE="Hausstrom" AND $__timeFilter(TIMESTAMP)


Aber so schaut es aus die "Spitze" ist absolut nicht sichbar .. im Filelog vom Fhem schon. Woran liegt das?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 22 Januar 2019, 18:47:10
Zitat von: ChrisW am 22 Januar 2019, 15:37:18
oh okay ja sicher alles irgendwie möglich aber sql ist da nicht so mein ding :D
Ich denke ich werde da eher mit Fhem arbeiten mit diesem Statistik Modul scheint ein wenig einfacher zu sein. Dann lasse ich mir da die Werte Ausrechnen und per dblog loggen.


https://discourse-cdn-sjc2.com/standard14/uploads/grafana/optimized/2X/8/804b5a0db49b1864d31428493496490d219feec4_2_690x387.PNG
--> Das bedeutet, die Aggregationsfunktion "1d" wird dir bei mysql nicht angezeigt? Interessehalber ...


Zitat von: ChrisW am 22 Januar 2019, 17:34:06
Ein anderes Problem gerade gefunden ..
Ich logge Gerät Hausstrom mit reading power
Im filelog und in der mysql ist um 17:12:05 ein Eintrag mit 16KW also power 16.80

Ich lasse es wie folgt ausgeben:
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
CAST(VALUE AS DECIMAL(3,1)) as value,
  "Power" as metric
FROM history
WHERE READING="power" AND DEVICE="Hausstrom" AND $__timeFilter(TIMESTAMP)


Aber so schaut es aus die "Spitze" ist absolut nicht sichbar .. im Filelog vom Fhem schon. Woran liegt das?

Teste mal DECIMAL(5,2) ... insgesamt 5 Stellen, davon 2 Nachkomma. Evtl. wird hier was abgeschnitten oder verworfen weil CAST fehlschlägt.

Zusätzlich habe ich bei Plots mit wenig Datensätze mit Point als Typ getestet, da siehst du viel besser welche Werte ankamen. Mit Linien wird geglättet. Das ist irgendwo bei Chart options, da hast du aktuell Lines, daneben kannst du Points auswählen. Kann erst wieder am Wochenende auf mein System, kann grad nicht genauer beschreiben.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 22 Januar 2019, 21:09:04
Danke aber irgendwie stimmen die Werte nicht die Angezeigt werden auch nach der Anpassung. Es werden Werte Angezeigt die gibt es in der Datenbank nicht. Auch im fhem filelog nicht
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
CAST(VALUE AS DECIMAL(5,2)) as value,
  "Power" as metric
FROM history
WHERE READING="power" AND DEVICE="Hausstrom" AND $__timeFilter(TIMESTAMP)

Und noch ein paar bilder

EDIT: Intressant es scheint als ob Grafana eine Stunde vor geht ...


edit2: Bei einem Thermometer hab ich es geprüft 21.10 Uhr letzter eintrag filelog und mysql gleich. Aber in Grafana sind bis jetzt locker 10 andere anzeigen. Hab Points an ... woher die messwerte auch sind. Ich glaube in der Zeitumrechnung stimmt etwas nicht
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 23 Januar 2019, 05:52:06
was ist unter timezone in den einstellungen des dashboards eingestellt. utc oder local browser time? grafana erwartet utc zeiten aus der mysql datenbank. grafana dashboard sollte aber local browser time haben.vielleicht passt auch hier was nicht.

timezone auf host und locals prüfen. wird die richtige zeit und zeitzone cet angezeigt?

date


wird im browser richtige timezone genutzt?

http://browserspy.dk/date.php

zeigt die seite gmt+0100 an?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 23 Januar 2019, 08:00:27
Nachtrag. Du kannst zum Test die Dashboard Zeitzone auf utc umstellen oder andersherum. Je nachdem was aktuell drin ist.

da war oder ist ein Bug in Grafana. Hast du kleiner als 5.3.4? Auch 5.3.4 ohne letze Bugfixes könnte betroffen sein. Könnte dein Problem erklären.
Wenn es der Bug ist, sollte die Änderung deines Statements zu dem unten geposteten dein Problem lösen.

$__timeFilter(TIMESTAMP::TIMESTAMP WITH TIME ZONE AT TIME ZONE 'UTC')

Bug Report
https://github.com/grafana/grafana/issues/13769
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 23 Januar 2019, 09:13:19
ALso ich habe  Grafana v5.4.3
Habe beides UTC gesetzt links in den Settings und im Dashboard oben bei diesen Settings. Es steht nun oben rechts rot UTC.
Problem er denkt es ist 8:11 es ist aber 9:11 hmm

Wenn ich den Code anpasse:
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '::TIMESTAMP WITH TIME ZONE AT TIME ZONE 'UTC' BETWEEN FROM_UNIXTIME(1548209580) ' at line 6

Gerade im Docker bei grafana geschaut bei date kommt :
Wed Jan 23 08:21:18 UTC 2019   
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 23 Januar 2019, 10:47:00
fehlermeldung ... ich hab das nur aus dem bugreport übernommen. hab aktuell keinen zugriff auf ein mysql zum testen.

aktuelles setup: dashboard ist utc und es geht 1 stunde "nach"? und im dashboard ist aktuell utc eingestellt (wegen roter warnung)? wenn du das dashboard auf local browser time stellst sollte das doch passen, oder?

mir fehlt etwas die übersicht, welches tool welche zeitzone hat. die eine stunde differenz ist CET <--> UTC. wenn du um 9.21 im dashboward 8.21 UTC angezeigt bekommst ist das ja richtig.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 23 Januar 2019, 10:57:55
Hmmm also ich weiss auch nicht mehr weiter also
FHEM Filelog und mysql sagen 2019-01-23 08:09:58 22
In grafana mit Einstellung UTC und Dashboatd Browser Time ist das 22c bei : 2019-01-23 09:09:58 22.00 c

Die anzeige in der Grafik simmt es geht durch bis zur richtigen Uhrzeit also 10:49 Uhr
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 23 Januar 2019, 20:47:49
Hallo

Versuche mein Glück jetzt mal mit dem Problem was ich habe hier im Forum.
Das sieht so aus. Habe einen S0 Stromzähler, der schreibt die Daten in meine MariaDB und speichert die so ab.

Zitat
id | channel_id   | timestamp | value
1188122 | 16 | 1509134552863 | 1
1188117 | 16 | 1509134355607 | 1
1188116 | 16 | 1509134306097 | 1
1188115 | 16 | 1509134258030 | 1
1188113 | 16 | 1509134217868 | 1
1188106 | 16 | 1509134177735 | 1
1188104 |   16 | 1509134137744 | 1
1188101 |   16 | 1509134098104 | 1
1188097 | 16 | 1509134058869 | 1
1188095 | 16 | 1509134020423 | 1
1188091 | 16 | 1509133982958 | 1
1188088 |   16 | 1509133945493 | 1
1188085 | 16 | 1509133908074 | 1
1188079 | 16 | 1509133870714 | 1
1188078 | 16 | 1509133815953 | 1

Der Zähler wird vom ,,Volkszähler" eingelesen Dieser kann die zwar als Graph darstellen, mir gefällt das aber nicht so gut. Möchte das daher in Grafana darstellen.
Jeder Impuls vom Stromzähler wird als Value 1 mit Timestap abgespeichert.

Diese Werte möchte ich nun mit Grafana darstellen.
Mit Diesem Code bekomme ich über die Ganze Zeitlinie nur 1 angezeigt

Zitat
SELECT
  timestamp/1000 as time_sec,
  data.value as value,
  properties.value as metric
FROM data
  LEFT JOIN properties ON (properties.entity_id = data.channel_id)
  LEFT JOIN entities ON (entities.id = data.channel_id)
WHERE
  (channel_id = 1 || channel_id = 2 || channel_id = 3)  AND
  (timestamp/1000) >= $__unixEpochFrom() AND
  (timestamp/1000) <= $__unixEpochTo() AND
  properties.pkey = 'title'
ORDER BY timestamp ASC

Mit diesem hier habe ich zwar einen Graphen, aber die Werte stimmen nicht.

Zitat
SELECT
  cast((timestamp/1000)/300 as signed integer)*300 as time_sec,
  sum(value) as value,
  "Stromverbrauch" as metric
FROM data
WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1
GROUP BY 1
ORDER BY 1

Hoffe mir kann hier jemand helfen


Gruß
Happyuser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 00:46:55
Definiere "stimmen nicht" was willst du darstellen? Ein Impuls ist ein kWh und du willst auf Minuten aggregieren? Oder was ist die Anforderung?
Schau dir mal Eintrag 4 auf Seite 1 an. Ist das was du willst?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 24 Januar 2019, 05:29:28
Ich möchte das so darstellen wie im Anhang.

Mein Zähler liefert 150 Impulse pro kWh. So ähnlich wie in Beitrag vier.

Definiere ,,stimmen nicht"

Wenn ich das letzte Beispiel verwende (timestap/1000)/300 usw.) habe zwar einen Graphen wie im Anhang, aber ganz andere Werte zu unterschiedlichen Zeiten, wenn ich die beiden Kurven vergleiche.

Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 06:54:50
definiere "stimmt nicht". aktuell weiß ich dass du ewas darstellen willst das aussieht wie etwas anderes. was ist die einheit? aggregation watt pro minuten?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 24 Januar 2019, 08:28:40
Ich möchte den Watt oder Kilowatt verbrauch, völlig egal, über die Zeit darstellen. So wie auf dem Foto vorher.

Momentan läuft das ganze auf dem Volkszähler der auch das Frontend stellt.
Wenn ich die gleichen Daten aus der Datenbank verwende und mit diesem Code

ZitatSELECT
  cast((timestamp/1000)/300 as signed integer)*300 as time_sec,
  sum(value) as value,
  "Stromverbrauch" as metric
FROM data
WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1
GROUP BY 1
ORDER BY 1

in Grafana auslese

Bekomme ich z.B am 1.1.2019 um 18:00
bei Grafana 800 Watt verbrauch
beim Volkszähler 2500.

Ich hoffe ich habe es jetzt verständlich rübergebracht.

Gruß.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 24 Januar 2019, 08:32:08
booooor also nach langennn hin und her aktuell scheint das zu stimmen:
/org dort Browser Time
im Dashboard UTC

Jetzt stimmen die Angaben auch.

Ich nutze Current und History was wohl nun dafür sorgt das die letzten ( Neusten Werte ) nicht angezeigt werden. Welche vorteil soll dieses Current überhaupt haben ? Nur das Aktuelle Werte schneller ausgegeben werde und nicht in der großen Histrory geschaut wird ? Weil dann stelle ich komplett nur auf History um
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 10:07:49
Zitat von: ChrisW am 24 Januar 2019, 08:32:08
Welche vorteil soll dieses Current überhaupt haben ? Nur das Aktuelle Werte schneller ausgegeben werde und nicht in der großen Histrory geschaut wird ? Weil dann stelle ich komplett nur auf History um

Current brauchst nicht mehr wenn ein Attribut entsprechend gesetzt ist ... s. Commandref. Im history-mode bleibt current-Tabelle leer. Ist auch mitlerweile default.


DbLogType
attr <device> DbLogType [Current|History|Current/History|SampleFill/History]
Dieses Attribut legt fest, welche Tabelle oder Tabellen in der Datenbank genutzt werden sollen. Ist dieses Attribut nicht gesetzt, wird per default die Einstellung history verwendet.

Bedeutung der Einstellungen sind:

Current Events werden nur in die current-Tabelle geloggt. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet.
History Events werden nur in die history-Tabelle geloggt. Es wird keine DropDown-Liste mit Vorschlägen bei der SVG-Erstellung erzeugt.
Current/History Events werden sowohl in die current- also auch in die hitory Tabelle geloggt. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet.
SampleFill/History Events werden nur in die history-Tabelle geloggt. Die current-Tabelle wird bei der SVG-Erstellung ausgewertet und kann zur Erzeugung einer DropDown-Liste mittels einem DbRep-Device
"set <DbRep-Name> tableCurrentFillup" mit einem einstellbaren Extract der history-Tabelle gefüllt werden (advanced Feature).


Hinweis:
Die Current-Tabelle muß genutzt werden um eine Device:Reading-DropDownliste zur Erstellung eines SVG-Plots zu erhalten.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 10:20:49
Zitat von: Happyuser20 am 24 Januar 2019, 08:28:40
Ich möchte den Watt oder Kilowatt verbrauch, völlig egal, über die Zeit darstellen. So wie auf dem Foto vorher.

Momentan läuft das ganze auf dem Volkszähler der auch das Frontend stellt.
Wenn ich die gleichen Daten aus der Datenbank verwende und mit diesem Code

Solange du nicht weißt was die Einheit ist, bzw. auf welche Zeiteinheit aggregiert werden soll mögen beide Plots korrekt sein. Sie zeigen nur eine andere Sicht. Bevor wir hier weiterraten rechne doch mal nach, ob deine geloggten Werte ggf. Watt/min darstellen sollen. Wenn ja schaun wir weiter.

Lösung könnte dann das Macro für MySQL ... $__timeGroup(dateColumn, '1m') .... sein, wenn Watt/min gewollt ist. http://docs.grafana.org/features/datasources/mysql/

ChrisW hatte ein Problem mit Zeitzonen, kann es bei dir sein, dass der Plot nur um eine oder n-Stunden verschoben ist.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 24 Januar 2019, 11:13:59
Okay dann kann ich ja nun langsam mal etwas rumspielen :)

Da du ja der Profi hier bist vielleicht hast du eine Idee / Lösung.
Ich würde mir gerne ein iagramm / Balken anzeigen lassen

Ich habe einen dummy dHeizung das loggt on / off und die Zeiten dazu


Internals:
   CHANGED   
   FUUID      5c4746ac-f33f-678b-6af5-2a67bf9cbff77ea4
   NAME       dHeizung
   NR         979
   STATE      on
   TYPE       dummy
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   Helper:
     DBLOG:
       statStateDayLast:
         myDbLog:
           TIME       1548284395.57082
           VALUE      off: 16:46:17 off_Count: 32 on: 07:13:43 on_Count: 31
       state:
         myDbLog:
           TIME       1548323881.81365
           VALUE      on
   READINGS:
     2019-01-24 10:59:55   statStateDay    off: 07:43:44 off_Count: 12 on: 03:16:16 on_Count: 12
     2019-01-23 23:59:55   statStateDayLast off: 16:46:17 off_Count: 32 on: 07:13:43 on_Count: 31
     2019-01-24 10:59:55   statStateMonth  off: 1d 05:21:02 off_Count: 50 on: 11:56:26 on_Count: 50 (since: 2019-01-22_17:42:27)
     2019-01-24 10:59:55   statStateYear   off: 1d 05:21:02 off_Count: 50 on: 11:56:26 on_Count: 50 (since: 2019-01-22_17:42:27)
     2019-01-24 10:58:01   state           on
   helper:
     _98_statistics myStatDevice
Attributes:
   DbLogExclude .*
   DbLogInclude state,statStateYear,statStateDayLast,statStateMonth,statStateYear
   event-on-change-reading .*
   room       Heizung

Ich zähle hier wie lange Heizung AN / AUS war.
Ich würde das gerne als Monatsansicht haben also die ON Zeit.
Bekomme Täglich 23:59 folgendes im Log:
statStateDay    off: 07:43:44 off_Count: 12 on: 03:16:16 on_Count: 12

Schön wäre also eine Bar die die on Zeit ausgibt als Monatsansicht.
Sehr geil wäre es wenn die Anzeite wie oft ON geschaltet wurde. Also Wieviele Brenner Starts.
(Und Sehr Sehr geil wäre eine Liene mit der Außentemperatur. << ABER ich denke das Kombinieren wird hier schwer.)

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 24 Januar 2019, 11:43:44
Zitat
Solange du nicht weißt was die Einheit ist, bzw. auf welche Zeiteinheit aggregiert werden soll mögen beide Plots korrekt sein. Sie zeigen nur eine andere Sicht. Bevor wir hier weiterraten rechne doch mal nach, ob deine geloggten Werte ggf. Watt/min darstellen sollen. Wenn ja schaun wir weiter.

Lösung könnte dann das Macro für MySQL ... $__timeGroup(dateColumn, '1m') .... sein, wenn Watt/min gewollt ist. http://docs.grafana.org/features/datasources/mysql/

ChrisW hatte ein Problem mit Zeitzonen, kann es bei dir sein, dass der Plot nur um eine oder n-Stunden verschoben ist.
Tut mir leid, ich kann dir leider nicht so richtig folgen.
Ich verstehe gerade nicht wieso ich eine Zeiteinheit angeben muss. Das ist doch variabel, je nach dem wie weit ich reinzoome oder rauszoome.

Ich stelle mir das so vor: links die Achse mit Watt, unten die Zeit von Beginn der Aufzeichnung bis jetzt.
Wenn ich jetzt auf z.B. 18:31 am 24.12.18 gehe, möchte ich sehen wieviel Watt ich zu dem Zeitpunkt verbraucht habe. Der Gesamtverbrauch soll natürlich kw/h sein.
Der Zähler selbst bringt 150 Impulse pro kWh, jeder Impuls vom Zähler wird mit der Unixtime abgespeichert und daraus muss man das doch ausrechnen können, wieviel Watt zwischen den Impulsen verbraucht wurde?

Oder liege ich da komplett falsch??

Zitat
ChrisW hatte ein Problem mit Zeitzonen, kann es bei dir sein, dass der Plot nur um eine oder n-Stunden verschoben ist.

Werde mir das die tage nochmal anschauen in Grafana und zum Vergleich im Volkszähler.

Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 12:47:00
Zitat von: Happyuser20 am 24 Januar 2019, 11:43:44
Wenn ich jetzt auf z.B. 18:31 am 24.12.18 gehe, möchte ich sehen wieviel Watt ich zu dem Zeitpunkt verbraucht habe.

Und genau darum geht es ... du verbrauchst eben nicht zu einem "Zeitpunkt", die Watt sind nicht einfach - flopp - weg. Watt ist Leistung. Du "verbrauchst" über einen Zeitraum, das ist aber dann Arbeit (Arbeit = Leistung durch Zeit). WAs bedeutet ein Wert 20 ... was soll der aussagen? 20 Watt/min? Arithmetisches Mittel über irgend was in der Stunde, Normalverteilung .. was auch immer. Ist die Kurve irgendwie geglättet ...

Solange du nicht definierst was du willst kann man nicht sagen wie du da hinkommst. Da musst du erstmal in deinem anderen Tool nachschaun oder aus deinen Zahlenreihen rausrechnen. Oder im Forum des Tools das  es "richtig" macht nachfragen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 13:06:00
Zitat von: ChrisW am 24 Januar 2019, 11:13:59
Da du ja der Profi hier bist vielleicht hast du eine Idee / Lösung.
Ich würde mir gerne ein iagramm / Balken anzeigen lassen

Ich habe einen dummy dHeizung das loggt on / off und die Zeiten dazu

Ich zähle hier wie lange Heizung AN / AUS war.
Ich würde das gerne als Monatsansicht haben also die ON Zeit.
Bekomme Täglich 23:59 folgendes im Log:

Schön wäre also eine Bar die die on Zeit ausgibt als Monatsansicht.
Sehr geil wäre es wenn die Anzeite wie oft ON geschaltet wurde. Also Wieviele Brenner Starts.
(Und Sehr Sehr geil wäre eine Liene mit der Außentemperatur. << ABER ich denke das Kombinieren wird hier schwer.)

Profi ist vielleicht etwas übertrieben. Ich nutze nichtmal Mysql für Grafana, ich schreibe aktuell alles von MySQL in InfluxDB (zyklisch) und werde irgendwann vollständig auf InfluxDB umsteigen sobald ich mal meine Dashboards gebaut habe. Influx ist m. E. einfach besser geeignet und schneller. Aktuell habe ich nur die Doku gelesen und etwas in Docker auf einer VM rumgespielt.

Gehen tut vieles. Wenn es dir nur um die Starts geht würde ich dem Dummy den Wert 1 geben für ein und 0 für aus (statt on/off). Schon als zu speichernden Wert. Du musst dann aber auch even-on-change readings machen damit du nicht zu zählst.

Dann einfach über die Zeit aggregieren. Wenn du als Einheit 1 Stunde nimmst musst du nur die Value-Tabelle aufaddieren. Auch das mit Linien kombinieren sollte gehen, du kannst mehrere Reihen in ein Diagramm geben und denen dann Linie oder andere Darstellung zuweisen. Den Link hab ich oben schon mal gepostet .. da wurde das auch gemacht ... https://community.hiveeyes.org/t/abweichungen-pro-tag-als-balken-in-gewichtsgrafik-anzeigen/748/3

Ich stelle mir nur die Frage, wie aussagekräftig ist ein Start eines Brenners zu zählen. Wäre die Laufzeit nicht viel besser? Auch dass ist möglich, einfach ein Dummy füllen wenn von on-->off geschaltet wird. Zeit aus Readings age ... irgendwie. Müsste man sich etwas Gedanken machen. ... Ansatz ähnlich wie hier ... https://forum.fhem.de/index.php?topic=48059.0

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 24 Januar 2019, 15:53:39
hi,
ja ich will ja auch die Lautzeit haben ;) Also Laufzeit soll in den Balken als Diagramm Monatsansicht.  Das simple würde mich schon reichen ;) Ich weiss nur noch nicht wie ich den wert als value bekomme da dort ja noch viel mehr drin steht.
Kann ich den Code einfach von der Temperatur nehmen ? Dort dann per regex ? Geht das wie bei den fhem Plots mit stellen ??
Und da gibt es doch nocht Probleme hab ein Beispiel vorne gesehe  da es ja um 23:59 gepostet wird ...

Wie kann ich das den mal testen mit InfluxDB ? Aber ob das so viel einfacher für mich sein wird ? (könnte ja per iobroker in so eine DB loggen )
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 19:37:08
Zitat von: ChrisW am 24 Januar 2019, 15:53:39
ja ich will ja auch die Lautzeit haben ;) Also Laufzeit soll in den Balken als Diagramm Monatsansicht.  Das simple würde mich schon reichen ;) Ich weiss nur noch nicht wie ich den wert als value bekomme da dort ja noch viel mehr drin steht.

z. B. so ... s. u.
- Reading on_off hat 0 oder 1 ... diese kannst du über Zeitaggregation auf Stunde, Tag ... verarbeiten
- Reading timecnt hat beim Wechsel von on-->off die Zeit die das Reading state auf "on" war. Auch das kannst du über Aggregation aufaddieren. Kein Hexenwerk


defmod dy_dummy dummy
attr dy_dummy event-on-change-reading on_off,timecnt
attr dy_dummy userReadings timecnt {((ReadingsVal($name,"state",0) eq 'off' ) ? ReadingsAge($name,"timecnt",121) : 0)},on_off {((ReadingsVal($name,"state",0) eq 'off' ) ? 0 : 1)}


Zitat von: ChrisW am 24 Januar 2019, 15:53:39
Kann ich den Code einfach von der Temperatur nehmen ? Dort dann per regex ? Geht das wie bei den fhem Plots mit stellen ??
Ist das eine Frage? Verstehe ich nicht, bzw. weiß nicht worauf du referenzierst.


Zitat von: ChrisW am 24 Januar 2019, 15:53:39
Und da gibt es doch nocht Probleme hab ein Beispiel vorne gesehe  da es ja um 23:59 gepostet wird ...
Möglich, müsste man sich ansehen


Zitat von: ChrisW am 24 Januar 2019, 15:53:39
Wie kann ich das den mal testen mit InfluxDB ? Aber ob das so viel einfacher für mich sein wird ? (könnte ja per iobroker in so eine DB loggen )

Loggen kann auch Fhem, muss nicht IOBroker sein. Gibt ein Modul für InfluxDB, siehe ... https://forum.fhem.de/index.php/topic,71551.0.html

InfluxDB ist halt sehr gut in Grafana integriert. Brauchst dann in Grafana keine SQL-Statements bearbeiten, geht viel über Menü und Dropdown. Du kannst dir mal das in Youtube ansehen, dauert nicht all zu lange aber dann kannst dir selbst ein Bild davon machen. https://www.youtube.com/playlist?list=PL5cpKC5uartgYqiwGNlJ94eqSonl2dk7e

Ich habe aktuell DBLog und InfluxDB in Fhem parallel laufen. Das funktioniert. Du hast von Docker auf Synology gesprochen. Kannst ja zum Test den InfluxDB Container einbinden.

Einfacher? Kann ich nicht sagen. Du musst in Fhem sauber loggen, wenn die Hürde überwunden ist geht es in Grafana dafür einfacher, zumindest mein Empfinden. Nachteil ist aktuell der Beta-Status von Influx da es noch nicht von vielen genutzt wird. Ich mache es weil ich es einfacher empfinde und mich das Thema auch beruflich reizt. Müsste Influx schneller sein.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Januar 2019, 22:02:48
Zitat von: kadettilac89 am 24 Januar 2019, 12:47:00
Und genau darum geht es ... du verbrauchst eben nicht zu einem "Zeitpunkt", die Watt sind nicht einfach - flopp - weg. Watt ist Leistung. Du "verbrauchst" über einen Zeitraum, das ist aber dann Arbeit (Arbeit = Leistung durch Zeit). WAs bedeutet ein Wert 20 ... was soll der aussagen? 20 Watt/min? Arithmetisches Mittel über irgend was in der Stunde, Normalverteilung .. was auch immer. Ist die Kurve irgendwie geglättet ...

Solange du nicht definierst was du willst kann man nicht sagen wie du da hinkommst. Da musst du erstmal in deinem anderen Tool nachschaun oder aus deinen Zahlenreihen rausrechnen. Oder im Forum des Tools das  es "richtig" macht nachfragen.

weil meine Glaskugel mal Zeit hatte und ich zum Test mal mit mySql testen wollte ... select unten sollte watt/min ausgeben. Wenns das nicht ist bin ich raus bis brauchbarer input kommt.

channel_id = 16
tabellenname = data
name = Stromverbrauch

SELECT
  ((timestamp DIV 60000) * 60 ) + 60 as time_sec,
  sum(value) as value,
  "Stromverbrauch" as metric
FROM data
WHERE timestamp >= $__unixEpochFrom()*1000 AND timestamp <= $__unixEpochTo()*1000 AND channel_id = 16
GROUP BY time_sec
ORDER BY $__unixEpochGroup(time_sec,$__interval)


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 07:39:08
Okayy also ich werde mich auch mit der influxdb mal beschäftigen. Leider im Docker nicht ganz so einfach .. Brauche ja auch chronograph zur Verwaltung. Das Interne Admin von influxdb gibt es wohl nicht mehr in der neusten Docker .. bekomme nurnoch 404 ... Habs gefrickelt nun am laufen. Schauen das sich Testwese mal Daten rein bekomme...

Zu den Heizungszeiten okay passt nicht mehr so ganz hier hin aber ich habe dHeizung nun bei on ein 1 verpasst und bei off eine 0. Hat es per set dHeizung 1 / set dHeizung 0 ausprobiert aber es zählt nichts. Also auch nicht wenn ich 1-2 Minuten 1 lasse .. Hier das list:
Internals:
   CHANGED   
   FUUID      5c4746ac-f33f-678b-6af5-2a67bf9cbff77ea4
   NAME       dHeizung
   NR         979
   STATE      0
   TYPE       dummy
   .attraggr:
   .attreocr:
     on_off
     timecnt
   .attrminint:
   .userReadings:
     HASH(0x5456970)
     HASH(0x62c4fa8)
   Helper:
     DBLOG:
       on_off:
         myDbLog:
           TIME       1548397890.0526
           VALUE      1
       statStateDayLast:
         myDbLog:
           TIME       1548370795.52726
           VALUE      off: 16:31:47 off_Count: 32 on: 07:28:13 on_Count: 31
       state:
         myDbLog:
           TIME       1548397046.32765
           VALUE      off
       timecnt:
         myDbLog:
           TIME       1548397890.0526
           VALUE      0
   READINGS:
     2019-01-25 07:35:13   on_off          1
     2019-01-25 07:31:30   statStateDay    2_Count: 1 off: 05:44:23 off_Count: 4 on: 01:47:12 on_Count: 3
     2019-01-24 23:59:55   statStateDayLast off: 16:31:47 off_Count: 32 on: 07:28:13 on_Count: 31
     2019-01-25 07:31:30   statStateMonth  2_Count: 1 off: 1d 19:53:28 off_Count: 73 on: 17:55:35 on_Count: 72 (since: 2019-01-22_17:42:27)
     2019-01-25 07:31:30   statStateYear   2_Count: 1 off: 1d 19:53:28 off_Count: 73 on: 17:55:35 on_Count: 72 (since: 2019-01-22_17:42:27)
     2019-01-25 07:35:13   state           0
     2019-01-25 07:35:13   timecnt         0
   helper:
     _98_statistics myStatDevice
Attributes:
   DbLogInclude .*
   event-on-change-reading on_off,timecnt
   room       Heizung
   userReadings timecnt {((ReadingsVal($name,"state",0) eq 'off' ) ? ReadingsAge($name,"timecnt",121) : 0)},on_off {((ReadingsVal($name,"state",0) eq 'off' ) ? 0 : 1)}
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 08:31:34
Chronograf brauchst nicht, geht auch über console oder 3rd party tools. darum auch die Referenz auf die cli im anderen Thread.

Heizzeiten ... du hast state 0 oder 1, mein Beispiel fragt auf on/off (default bei dummy) ab. Ersetze bei den userReadings     "eq 'off'"   durch " = 0".  Das Reading on_off bräuchtest dann eigentlich nicht mehr, wäre dann identisch zu deinem aktuellen state. Würde es aber dennoch erstmal lassen damit du mit event-on-change-** experimentieren kannst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 09:14:29
Okay Danke
Hab nun influxdb laufen. Per Chronograf kann ich auf die FHEM Tabelle gehen AC.Power und recht value und da sehe ich sogar DIREKT eine Grafik mit den Zeiten ..

So Grafana Source hinzugefügt. Neues Dashboard ( wegen dem UTC Problemen ) Wähle die Source aus dann sehe ich auch unten Add Query da tauchen auch die ganzen Geräte aus. Wähle AC.Power nichts ..
Oben steht nur
Could not find query part column

Laut google liegt es am Dashboard ich muss das Trennen .. habe ich ja .. ganz neues Dashboard auch andere Zeit

Ich habe ein Youtube VIdeo gesehen da ist dann auch sofort eine Grafik gekommen ... frage mich wieso es bei mir wieder nicht klappt


EDIT: Es lag daran das die mysql Source Default gesetzt war. Das hat den Grafen dann direkt kaputt gemacht. Also influxdb als default und klappt
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 09:25:22
ich empfehle dir, direkt in der datasource das flag "default" in der influx zu setzen. dann ist bei jedem neuen dashboard vorausgewählt. du siehts jetzt was ich meinte ... kurz datenquelle, zeitreihe auswählen und du siehts den plot ohne ewig mit irgend welchen mysql aggregationen oder besonderheiten rumspielen zu müssen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 09:35:22
ja gefällt mir wirklich sehr gut ;) Leider Bremst das influxdb Modul mein FHem .. OKAY ich packe gerade ALLES da rein pro Sekkunfe 2-3 Werte...
Ich denke ich werde mit dem Script arbeiten was mir alle X Minuten das sql in influxdb umwandelt..

Bezüglich der Heizungszeiten.
Ich habe es wieder so geändert das on / off gesetzt werden. Somit geht dein reading wunderbar. Das timecnt aber nicht das bleibt immer bei 0.
Aber grafana kann doch das schon errechnen oder ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 10:09:54
Zitat von: ChrisW am 25 Januar 2019, 09:35:22
Bezüglich der Heizungszeiten.
Ich habe es wieder so geändert das on / off gesetzt werden. Somit geht dein reading wunderbar. Das timecnt aber nicht das bleibt immer bei 0.
Aber grafana kann doch das schon errechnen oder ?

ich weiß nicht was du mit errechnen meinst. on-off zähler sollte gehen. timecnt ist die zeit, die deine heizung on war in sec. wie grafana das aus den on-off status errechnen soll weiß ich nicht. teste das mit dem dummy-beispiel das ich dir gepostet hab (unverändert anlegen). das hat funktioniert. dann baust um und schaust warum es mit 0/1 nicht mehr geht.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 11:31:56
Ja das habe ich gemacht damit klappt es auch das er das hochzählt. Also erst on dann off und dann Zeigt er die Zeit da an.
Bei dem aktuellen Dummy aber nicht. Hab es ganz genau so gemacht mit attr hier ein List


Internals:
   FUUID      5c4746ac-f33f-678b-6af5-2a67bf9cbff77ea4
   NAME       dHeizung
   NR         977
   STATE      off
   TYPE       dummy
   .attraggr:
   .attreocr:
     on_off
     timecnt
   .attrminint:
   .userReadings:
     HASH(0x51801b8)
     HASH(0x510a558)
   Helper:
     DBLOG:
       on_off:
         myDbLog:
           TIME       1548412188.04514
           VALUE      0
       timecnt:
         myDbLog:
           TIME       1548412188.04514
           VALUE      0
   READINGS:
     2019-01-25 11:29:48   on_off          0
     2019-01-25 11:29:48   statStateDay    off: 01:12:48 off_Count: 5 on: 00:47:13 on_Count: 4 (since: 2019-01-25_09:29:47)
     2019-01-24 23:59:55   statStateDayLast off: 16:31:47 off_Count: 32 on: 07:28:13 on_Count: 31
     2019-01-25 11:29:48   statStateMonth  off: 01:12:48 off_Count: 5 on: 00:47:13 on_Count: 4 (since: 2019-01-25_09:29:47)
     2019-01-25 11:29:48   statStateYear   off: 01:12:48 off_Count: 5 on: 00:47:13 on_Count: 4 (since: 2019-01-25_09:29:47)
     2019-01-25 11:29:48   state           off
     2019-01-25 11:29:48   timecnt         0
   helper:
     _98_statistics myStatDevice
Attributes:
   DbLogInclude .*
   event-on-change-reading on_off,timecnt
   room       Heizung
   userReadings timecnt {((ReadingsVal($name,"state",0) eq 'off' ) ? ReadingsAge($name,"timecnt",121) : 0)},on_off {((ReadingsVal($name,"state",0) eq 'off' ) ? 0 : 1)}
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 12:22:10
mach mal zum Test das event-on-change-reading raus.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 12:38:10
tzz es geht einfach nicht .. Dann muss es ja am myStatDevice liegen würde ich sagen..
Ist es nicht möglich diesen langen wert in die Datenbank zu bekommen und daraus die Zeiten zu nehmen ?
Oder man müsste es so umbauen das die on Zeit als eigenes Reading um 23:59 gesetzt wird...

Es schaut s aus das sich das timecnt mit 0 füllt da es Orange wird und wieder ne 0 steht ..


Aber aktuell hab ich ja noch ein ganz anderes Problem mit dem script was mysql zu influxdb wandelt .. steht ja im anderen Post .. Irgendwie geht nun nichts mehr :(
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 16:13:39
Also ich hab einen neuen Dummy angelegt ohne das Statistik Zeugs.
Ist das gewollt das das timecnt jedesmal wieder auf 0 zurück geht ?
Ich hab da natürlich dann so 30-40 verschiedene timecnt werte pro Tag.
Aber kein day wert.

Hintergrund ich will eine Statistik mit Balken
vom 1.1.2019 bis zum 31.1.2019. Dort will ich dann per Balken den kompletten Tageswert wie lange ( Minuten ) die Heizung an war.

Mit diesem Statistik Modul habe ich halt das Problem da sist ein Gesamtes Reading .. das ist nun auch nicht in der influxdb drin weil es ja nicht nur Zahlen sind ;/
Kann man mit grafana nicht dieses lange Reading also:  off: 03:58:52 off_Count: 13 on: 02:36:41 on_Count: 13 (since: 2019-01-25_09:29:47) auswerten = Da habe ich ja den Tageswert für die Bar:  02:36:41

Notfalls das per fhem irgendwie in eizelne Readigs zu Splitten ?

Per Influxdb kann man jetzt wirklich sucher schön die sachen bauen ohne zu suchen. Danke :)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 17:15:23
Zurücksetzen ist gewollt da du dann aggregieren kannst wie du willst. Stunde. Täglich. Ist dein System du kannst loggen was du willst. War nur ein Vorschlag wie ich es machen würde.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 25 Januar 2019, 20:06:56
Okay nur wie bekomme ich das nun schön dargestellt als Monatsansicht mit der Täglichen Laufzeit ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Januar 2019, 21:54:25
Zitat von: ChrisW am 25 Januar 2019, 20:06:56
Okay nur wie bekomme ich das nun schön dargestellt als Monatsansicht mit der Täglichen Laufzeit ?

du legst es als plot an und wählst bei metrics rechts in options "min time intervall 1d" aus
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 26 Januar 2019, 21:42:55
Danke klappt glaube ich aber ich skaliere das auf 1M also 1 Monat. Da sind die Markierungen unten nicht für jeden Tag.
Also mal steht da 1/23 das nächste ist dann 1/25. Da kann mann dann bisschen raten wo der 24. ist. Also die Striche nach unten sind nicht Pro Tag

Ich nutze den Wert Energie der zählt immer bis um 23:59 hoch und ist dann wieder 0
Hier mal ein List von dem Gerät vielleicht ist da ein anderer Wert besser ? Also der Power wert vielleicht ?? Schaut aber genauso komisch aus

LIst von dem Gerät
Internals:
   CODE       1
   CUL_0_MSGCNT 4
   CUL_0_RAWMSG E01015CB0D608005101
   CUL_0_RSSI -52
   CUL_0_TIME 2019-01-26 21:38:44
   DEF        1 75
   FUUID      5c45bfc8-f33f-678b-d4b9-e6754d143a6976c9
   IODev      CUL_1
   LASTInputDev CUL_0
   MSGCNT     4
   NAME       Hausstrom
   NR         669
   STATE      W: 32.31 kWh P:  1.28 kW Pmax: 0.224 kW
   TYPE       EMX
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   Helper:
     DBLOG:
       count:
         myDbLog:
           TIME       1548535124.48091
           VALUE      54960
       count_prev:
         myDbLog:
           TIME       1548535124.48091
           VALUE      54952
       energy:
         myDbLog:
           TIME       1548535124.48091
           VALUE      32.31
       peak:
         myDbLog:
           TIME       1548535124.48091
           VALUE      0.224
       pmeter:
         myDbLog:
           TIME       1548535124.48091
           VALUE      56714.3
       power:
         myDbLog:
           TIME       1548535124.48091
           VALUE      1.28
       seqnr:
         myDbLog:
           TIME       1548535124.48091
           VALUE      92
       seqnr_prev:
         myDbLog:
           TIME       1548535124.48091
           VALUE      91
       statCount:
         myDbLog:
           TIME       1548535124.48091
           VALUE      Hour: 177.0000000000 Day: 2423.2833333333 Month: 9502.1600000000 Year: 9502.1600000000 (since: 2019-01-23 )
       statEnergy:
         myDbLog:
           TIME       1548535124.48091
           VALUE      Hour: 2.360 Day: -1.887 Month: -3.016 Year: -3.016 (since: 2019-01-23 )
       state:
         myDbLog:
           TIME       1548535124.48091
           VALUE      W: 32.31 kWh P:  1.28 kW Pmax: 0.224 kW
   READINGS:
     2019-01-26 21:38:44   cost            0
     2019-01-26 21:38:44   count           54960
     2019-01-26 21:38:44   count_prev      54952
     2019-01-25 23:59:05   day             D25 Wd: 34.20 kWh Wm:  34.20 kWh C:  0.00 €
     2019-01-26 21:38:44   energy          32.31
     2019-01-26 21:38:44   error           0
     2019-01-25 23:59:05   first_day       0
     2018-12-31 23:56:25   month           M12 Wm:  32.47 kWh
     2019-01-26 21:38:44   peak            0.224
     2019-01-26 21:38:44   pmeter          56714.3
     2019-01-26 21:38:44   power           1.28
     2019-01-26 21:38:44   seqnr           92
     2019-01-26 21:38:44   seqnr_prev      91
     2019-01-26 21:38:44   statCount       Hour: 177.0000000000 Day: 2423.2833333333 Month: 9502.1600000000 Year: 9502.1600000000 (since: 2019-01-23 )
     2019-01-26 20:59:55   statCountLast   Hour: 285.0000000000 Day: 2564.8000000000 Month: - Year: -
     2019-01-26 21:38:44   statEnergy      Hour: 2.360 Day: -1.887 Month: -3.016 Year: -3.016 (since: 2019-01-23 )
     2019-01-26 20:59:55   statEnergyLast  Hour: 3.800 Day: 3.062 Month: - Year: -
     2019-01-26 21:38:44   statPowerDay    Min: 0.48 Avg: 1.50 Max: 16.00
     2019-01-25 23:59:55   statPowerDayLast Min: 0.48 Avg: 1.44 Max: 22.56
     2019-01-26 21:38:44   statPowerMonth  Min: 0.48 Avg: 1.38 Max: 22.56 (since: 2019-01-22_17:42:26 )
     2019-01-26 21:38:44   statPowerYear   Min: 0.48 Avg: 1.38 Max: 22.56 (since: 2019-01-22_17:42:26 )
     2019-01-26 21:38:44   state           W: 32.31 kWh P:  1.28 kW Pmax: 0.224 kW
   helper:
     _98_statistics myStatDevice
Attributes:
   CostM      28.60
   CostN      0.24
   IODev      CUL_1
   LogM       EnergyM
   LogY       EnergyY
   event-on-change-reading .*
   model      EMWZ
   room       STROM
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 Januar 2019, 12:15:18
Zitat von: ChrisW am 26 Januar 2019, 21:42:55
Danke klappt glaube ich aber ich skaliere das auf 1M also 1 Monat. Da sind die Markierungen unten nicht für jeden Tag.
Also mal steht da 1/23 das nächste ist dann 1/25. Da kann mann dann bisschen raten wo der 24. ist. Also die Striche nach unten sind nicht Pro Tag

du willst unter jedem Balken den Tag / Datum als Beschriftung? Das ist ein feature-Request bei Grafana, jedoch funktioniert das noch nicht. Mein letzter Stand.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 27 Januar 2019, 12:32:57
achso ich hab gedacht man könnte das schon bestimmen.

Zurück zu der Heizung und dem timecnt.
Der balken sagt gestern ca. 5 stunden ( Okay DB Loggin war erst irgendwann Mittags. )
Heute 12 Uhr sagt er schon 10 Stunden .. das kann gar nicht da die Heizung erst seit 6 Uhr läuft und so durchgehend gelaufen ist.
Ich denke er rechnet den vortag ein ? Habe ja unter Einstellungen 1d eingestellt.. kann es sein das die Werte dann erst morgen stimmen ? Da er ja quasi von Jetzt 24 stunden zurückguckt ?? Oder zählt er das nun jeden tag hoch ?? Heute 20 morgen dann 30 usw,.. ?

Edit: Auch hier bei select mal auf "sum" geändert. Einheiten auf Sekunde hatte da Minuten aus versehen. Behalte es im Auge. Kann ich da sin fhem irgendwie testen das er da auch mal timecnt auf einen Tag hochzählt ? Nur zur Prüfung jetzt?


Beim Hausstrom oben ist es auch komisch steht heute: 4,42KW wenn ich aber beim Gerät in Fhem gucke steht da für heute schon 12KW ..
Edit: Habe nun bei Hausstrom mal bei Select ein last eingebaut. Nun scheint es da auch zu stimmen

Anonsten sehr geil ds Grafana auch mit den Alerts. Aber leider kann man bei den Alerts nicht sagen Alert Ausblenden also den roten Balken :D Wie lange gibt es Grafana den schon ? Wird da viel dran gemacht ?


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 27 Januar 2019, 12:49:55
Sorry für den Doppelpost aber wegen der Übersicht und für andere die das Problem haben vielleicht besser
Ich habe einheit Sekunden die ich im timecnt ja logge.
Als Einheit habe ich Sekunden ausgewählt.

Bekomme nun im Graf am Rand aber so angaben wie 1.67 Hour .. bekommt man das noch irgendwie besser Formatiert ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 Januar 2019, 13:27:23
ich verzichte die ganzen fragen als zitat einzufügen.

aggregierung ... daten prüfen, macht dir am besten einen plot in fhem der das ganz stupide ausgibt. im plot - in der defitionsansicht wo du spalten auswählen kannst ... - da kannst du dann "show processed input" klicken, da siehst du dann alles was von der db kommt. diese werten dann in excel aufaddieren ... alternativ musst du im forum suchen, habe sowas in fhem noch nicht benötigt.

wahrscheinlich nimmt er bei 1d genau 24h.

alterts ... was willst du damit sehen? wenn es dir nur um die horizontale linie geht schau dir mal threshold im tab display an

dezimalstellen an der y-achse --> setze decimals 0 dann siehst du nur ganze zahlen.

seit wann gibt es grafana, 2016? noch länger ... `?

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 27 Januar 2019, 15:45:40
okay dann werd ich da mal weiter basteln Danke.

Wollte meine ersten ergebnisse direkt mal einbauen in tabletui .. per iframe. Das Problem FHEM ist https ( Eigenes selbst erstelltes Zertifikat ) Grafana ist http.

So nun habe ich gesucht und in der grafana.ini rumgespielt hat da das ;http auf ;https geändert nichts ..
Hab ich das ; davor weg gemacht = Docker Kaputt...
Quasi alles von neu :(

Hast du noch einen Tipp für Grafana in https zufällig ? Ohne ein Zertifikat
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 27 Januar 2019, 16:47:44
Hab jetzt nochmal von vorne begonnen.

Die Zeitschiene passt schon mal, die Spitzen sind in der Zeit identisch ( siehe Screenshots)

Was aber nicht passt, ist links die Y-Achse. Da sind wir vermutlich wieder bei der Sache mit "Wert/Zeit"

ZitatSELECT
  cast((timestamp/1000)/150 as signed integer)*150 as time_sec,
  sum(value) as value,
  "Stromverbrauch" as metric
FROM data
WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1
GROUP BY 1
ORDER BY 1

Kann mir bitte jemand erläutern was hier genau gemacht wird, vor allem das /150 und *150. timestamp/1000 = ist unix_time in MS ?
"cast((timestamp/1000)/150 as signed integer)*150 as time_sec"

und hier
"WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1"


Habe versucht Details über den Volkszähler zu finden, im Bezug auf Wert/Zeit, leider erfolglos.
Das einzige ist der Code des Interpreters der das alles ausrechnet und darstellt.

Zitat
namespace Volkszaehler\Interpreter;
24 
25 /**
26  * Meter interpreter
27  *
28  * @author Steffen Vogel <info@steffenvogel.de>
29  * @author Andreas Götz <cpuidle@gmx.de>
30  */
31 
32 class ImpulseInterpreter extends Interpreter {
33 
34    protected $pulseCount;
35    protected $ts_last; // previous tuple timestamp
36 
37    /**
38     * Generate database tuples
39     *
40     * @return \Generator
41     */
42    public function getIterator() {
43       $this->rows = $this->getData();
44       $this->pulseCount = 0;
45       $this->ts_last = $this->getFrom();
46 
47       foreach ($this->rows as $row) {
48          if ($this->raw) {
49             // raw database values
50             yield array_slice($row, 0, 3);
51          }
52          else {
53             $tuple = $this->convertRawTuple($row);
54             $this->pulseCount += $row[1];
55 
56             $this->updateMinMax($tuple);
57 
58             yield $tuple;
59          }
60       }
61    }
62 
63    /**
64     * Convert raw meter readings
65     */
66    public function convertRawTuple($row) {
67       $delta = $row[0] - $this->ts_last;
68 
69       // (1 imp * 60 min/h * 60 s/min * 1000 ms/s * scale) / (1 imp/kWh * 1ms) = 3.6e6 kW
70       $tuple = array(
71          (float) ($this->ts_last = $row[0]), // timestamp of interval end
72          (float) ($row[1] * 3.6e6 * $this->scale) / ($this->resolution * $delta), // doing df/dt
73          (int) $row[2] // num of rows
74       );
75 
76       return $tuple;
77    }
78 
79    /**
80     * Calculates the consumption
81     *
82     * @return float total consumption in Wh
83     */
84    public function getConsumption() {
85       return $this->channel->getDefinition()->hasConsumption ? $this->scale * $this->pulseCount / $this->resolution : NULL;
86    }
87 
88    /**
89     * Get Average
90     *
91     * @return float average in W
92     */
93    public function getAverage() {
94       if ($this->pulseCount) {
95          $delta = $this->getTo() - $this->getFrom();
96          // 60 s/min * 60 min/h * 1.000 ms/s * 1.000 W/kW = 3.6e9 (Units: s/h*ms/s*W/KW = s/3.600s*.001s/s*W/1.000W = 1)
97          return (3.6e6 * $this->scale * $this->pulseCount) / ($this->resolution * $delta);
98       }
99       else { // prevents division by zero
100          return 0;
101       }
102    }
103 
104    /**
105     * Return sql grouping expression
106     *
107     * Override Interpreter->groupExpr
108     *
109     * For precision when bundling tuples into packages
110     * AccumulatorInterpreter needs MAX instead of SUM.
111     *
112     * @author Andreas Götz <cpuidle@gmx.de>
113     * @param string $expression sql parameter
114     * @return string grouped sql expression
115     */
116    public static function groupExprSQL($expression) {
117       return 'SUM(' . $expression . ')';
118    }
119 }
120 
121 ?>

Einmal angenommen ich möchte Kilowatt pro Stunde darstellen, wie würde das aussehen.

Herzlichen Dank

Gruß
HappyUser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 Januar 2019, 17:10:11
Zitat von: ChrisW am 27 Januar 2019, 15:45:40
okay dann werd ich da mal weiter basteln Danke.

Wollte meine ersten ergebnisse direkt mal einbauen in tabletui .. per iframe. Das Problem FHEM ist https ( Eigenes selbst erstelltes Zertifikat ) Grafana ist http.

So nun habe ich gesucht und in der grafana.ini rumgespielt hat da das ;http auf ;https geändert nichts ..
Hab ich das ; davor weg gemacht = Docker Kaputt...
Quasi alles von neu :(

Hast du noch einen Tipp für Grafana in https zufällig ? Ohne ein Zertifikat

ohne Zertifikat, http/https umbiegen ... alles halbfertiges gebastle ... sorry, my 2cents.

wenn du das vernünftig machen willst --> reverse proxy über nginx oder apache wobei nginx wahrscheinlich öfter im einsatz ist. anleitung zu reverse proxy in nginx gibts bei grafana.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 Januar 2019, 17:22:05
Zitat von: Happyuser20 am 27 Januar 2019, 16:47:44
Hab jetzt nochmal von vorne begonnen.

Die Zeitschiene passt schon mal, die Spitzen sind in der Zeit identisch ( siehe Screenshots)

Was aber nicht passt, ist links die Y-Achse. Da sind wir vermutlich wieder bei der Sache mit "Wert/Zeit"

Kann mir bitte jemand erläutern was hier genau gemacht wird, vor allem das /150 und *150. timestamp/1000 = ist unix_time in MS ?
"cast((timestamp/1000)/150 as signed integer)*150 as time_sec"

und hier
"WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1"




.... div 1000 weil die timestamps mit ms gespeichert sind, 3 nachkommastellen zur sekunde. grafana braucht aber nur sekunden. durch die gnazzahlige division werden die 3 stellen abgetrennt. warum div 150 weiß ich nicht. wäre aggregation pro 2.5 minuten. alles nur raten.

stelle mal die rohdaten für die grafik aus mysql bereit, für den tag den du im volkszähler plot anzeigst. vielleicht kann ich dir daraus die aggregation rausziehen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 27 Januar 2019, 18:52:42
Hallo

Hab eine Datei angehängt von den Impulsen heute 6:00 - 16:00. ist jede Menge, hoffe das passt so.

"124619,"       "1"","                "1548602173018"","               "1"""
  unwichtig      ChannelID           Timstamp                              Value

Habe die 150 gewählt, weil mein Stromzähler 150 Impulse pro kWh liefert, war nur so ein Noobversuch  :D

Gruß
HappyUser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 27 Januar 2019, 18:54:31
und wieder die nächste Baustelle  "reverse proxy" ;) Das habe ich für fhem schon irgendwie hinbekommen :D

So langsam weiss ich die es funktioniert Lines & Bars.
Was ich aber nicht schaffe ist zu sagen WAS im Vorne und was im Hintergrund ist.

Auch würde ich gerne die Durchschnittstemperatur anzeigen lassen. Habe MeinWetter und davon Temperatur. Um die Tagestemperatur anzuzeigen brauch ich ja am besten die durchschnittstemperatur ? Ob die jetzt so aussagekräftig ist lassen wir mal dahingestellt.

edit: Okay ich kann die Bars ein wenig Transparent machen. Aber kann es aktuell nicht testen da ich aktuell für heute keine Liene hinter der Bar habe :D Daher klappen auch die ganzen Versuche wohl nicht
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 Januar 2019, 20:02:40


Zitat von: ChrisW am 27 Januar 2019, 18:54:31

Was ich aber nicht schaffe ist zu sagen WAS im Vorne und was im Hintergrund ist.
Die Option gibt es glaub ich nicht. Was du testen kannst die SQL abfragen in der Reihenfolge tauschen. Vielleicht funktioniert es. Nach unten kopieren gehtbüber duplicate.

Durchschnittlich vielleicht mit math-funktionen in der Metrik. Verstehe die Anforderung aber nicht.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 28 Januar 2019, 17:25:29
Ja irgendwie hat es nun geklappt :)

Sag mal mit dem reverse proxy... ist zwar jetzt nicht ganz passens aber vielleicht kannst du mir ein paar Infos geben...
http://docs.grafana.org/installation/behind_proxy/

Brauch ich da nur die 2 Optionen zu machen ? Oder muss man im Docker Image von Grafana noch den proxy erst einrichten ? Wenn ich die anleitung von FHEM nehme gibt das doch irgendwie mit dem lets encrypt Probleme oder ??
Ich müsste das Zertifikat ja dann irgendwie auf das Grafana System Kopieren. ?!

Mein FHEM läuft auf einem PI da konnte ich das wunderbar alles machen mit lets encrypt .. meinedeomain.de/fhem

ODER
Kann ich im Proxy auf dem fhem system eine Verlinkung in der config zu meiner DOCKERIP:3000 machen ??
Somit brauche ich ja gar keine 2. Löst trotzdem nicht das Provlem das ich im TabletUI welches https ist ( Lokal auch ) nicht das nicht https Grafana einbinden kann

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 28 Januar 2019, 18:46:15
Zitat von: ChrisW am 28 Januar 2019, 17:25:29
Sag mal mit dem reverse proxy... ist zwar jetzt nicht ganz passens aber vielleicht kannst du mir ein paar Infos geben...

ich habe grafana unter path /grafana

änderungen in grafana.ini


root_url = http://localhost:3000/grafana/

<<<< wenn ohne login in display-mode gearbeitet wird
[auth.anonymous]
enabled = true
org_role = Viewer


in nginx-config. hier ist keine authentifizierung drin. musst dir selber überlegen wie du zugang absichern willst ... ich arbeite mit client certificate, damit hab ich das problem nicht


  location /grafana/ {
     proxy_pass http://localhost:3000/;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-Host $host;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }


mit o.g. config macht nginx die http-https umsetzung. ide set_header-parameter habe ich irgendwo übernommen, ob die so passen weiß ich nicht. aber so wie ich es beurteilen kann läuft es im test. zumindest kommst du dann über https drauf.

zertifikate brauchst du für den server part, deckt dann fhem und grafana ab wenn beides durch einen webserver abgedeckt werden. auf den grafana-server musst du keine certs kopieren da dieser auf http antwortet. welche probleme meinst du? letsencrypt läuft bei mir problemlos.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 28 Januar 2019, 21:05:20
okay habs nun auf dem fhem proxy eingerichtet komme nun auch extern per https://meinedomain.de/grafana/ drauf :) War gar nicht so einfach.
Löst aber mein Lokales Problem nicht.

Muss ich nun nurnoch 2 tabletui versionen bauen eine interne und eine externe ..
will ja nicht immer intern alles über meine domain draußen laden ...
Müsste sonst vorher prüfen wenn es lokal ist dann interne URL im Iframe ;)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 28 Januar 2019, 21:13:47
Zitat von: Happyuser20 am 27 Januar 2019, 18:52:42
Hallo

Hab eine Datei angehängt von den Impulsen heute 6:00 - 16:00. ist jede Menge, hoffe das passt so.

"124619,"       "1"","                "1548602173018"","               "1"""
  unwichtig      ChannelID           Timstamp                              Value

Habe die 150 gewählt, weil mein Stromzähler 150 Impulse pro kWh liefert, war nur so ein Noobversuch  :D

Gruß
HappyUser20

hab mich etwas mit deinen daten gespielt ... aggregation 150 sekunden bring ein ähnliches bild wie im volkszähler. musst halt mal prüfen welcher zeitraum zum aggregieren verwendet wird. du kannst im plot oben auf export klicken und in der exportierten datei prüfen wie viel zeit zwischen den einzelnen punkten ist. datenbank heißt bei mir fhem_mysql. musst anpassen, rest sollte bei dir importierbar sein. channel_id = 1 ...

zur erklärung:


SELECT
  cast((timestamp/1000)/150 as signed integer)*150 as time_sec,
  sum(value)/150*3600/150 as value,
  "150sec" as metric
FROM data
WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1
GROUP BY 1
ORDER BY 1


cast((timestamp/1000)/150 as signed integer)*150 as time_sec,
==> 150 ist in diesem fall die aggregation 2,5 minuten.

  sum(value)/150*3600/150 as value,
==> sum(value) = anzahl der ticks / signale vom reader in den 2,5 minuten
==> sum(value)/150*3600/150 as value .... anzahl der ticks/<zeit in sekunden> * <sekunden pro stunde>/<ticks pro kw/h>

kw/h ist leistung = arbeit durch zeit, anzahl der ticks ist hier die arbeit




{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "gnetId": null,
  "graphTooltip": 0,
  "id": 15,
  "links": [],
  "panels": [
    {
      "aliasColors": {
        "150sec": "#3f6833",
        "1h": "#0a50a1",
        "Stromverbrauch_150sec": "#0a50a1",
        "Total": "#cffaff"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "FHEM MySQL",
      "fill": 1,
      "gridPos": {
        "h": 9,
        "w": 12,
        "x": 0,
        "y": 0
      },
      "id": 2,
      "interval": "1m",
      "legend": {
        "alignAsTable": false,
        "avg": true,
        "current": false,
        "max": true,
        "min": true,
        "rightSide": true,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "connected",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "1h",
          "bars": true,
          "lines": false
        },
        {
          "alias": "Total",
          "color": "#ffffff",
          "hideTooltip": true
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "format": "time_series",
          "group": [],
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "hide": false,
          "metricColumn": "none",
          "orderByTime": "ASC",
          "policy": "default",
          "rawQuery": true,
          "rawSql": "SELECT\r\n  cast((timestamp/1000)/3600 as signed integer)*3600 as time_sec,\r\n  sum(value)/3600*3600/150 as value,\r\n  \"1h\" as metric\r\nFROM data\r\nWHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and\r\nchannel_id = 1\r\nGROUP BY 1\r\nORDER BY 1\r\n",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "ChannelID"
                ],
                "type": "column"
              }
            ]
          ],
          "table": "volkszaehler",
          "tags": [],
          "timeColumn": "Value",
          "timeColumnType": "int",
          "where": [
            {
              "name": "$__unixEpochFilter",
              "params": [],
              "type": "macro"
            }
          ]
        },
        {
          "format": "time_series",
          "group": [],
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "hide": false,
          "metricColumn": "none",
          "orderByTime": "ASC",
          "policy": "default",
          "rawQuery": true,
          "rawSql": "SELECT\r\n  cast((timestamp/1000)/150 as signed integer)*150 as time_sec,\r\n  sum(value)/150*3600/150 as value,\r\n  \"150sec\" as metric\r\nFROM data\r\nWHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and\r\nchannel_id = 1\r\nGROUP BY 1\r\nORDER BY 1\r\n",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "ChannelID"
                ],
                "type": "column"
              }
            ]
          ],
          "table": "volkszaehler",
          "tags": [],
          "timeColumn": "Value",
          "timeColumnType": "int",
          "where": [
            {
              "name": "$__unixEpochFilter",
              "params": [],
              "type": "macro"
            }
          ]
        },
        {
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT\r\n  max(cast((timestamp/1000)/150 as signed integer)*150 + 150) as time_sec,\r\n  sum(value)/150 as value,\r\n  \"Total\" as metric\r\nFROM data\r\nWHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and\r\nchannel_id = 1\r\n\r\nORDER BY 1",
          "refId": "C",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [],
      "timeShift": null,
      "title": "Volkszähler",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    }
  ],
  "refresh": false,
  "schemaVersion": 16,
  "style": "dark",
  "tags": [],
  "templating": {
    "list": []
  },
  "time": {
    "from": "2019-01-26T23:02:46.005Z",
    "to": "2019-01-27T23:01:52.459Z"
  },
  "timepicker": {
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "time_options": [
      "5m",
      "15m",
      "1h",
      "6h",
      "12h",
      "24h",
      "2d",
      "7d",
      "30d"
    ]
  },
  "timezone": "",
  "title": "volkszaehler",
  "uid": "pDbNvKmgz",
  "version": 13
}


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 29 Januar 2019, 10:21:40
Ich habe da noch ein komisches Problem. Ich habe immer wieder diese Streifen im Bild. grün = OK gelb = nodata
Das kommt vom Alert das habe ich in einem anderen Dashboard für Luftfeuchte .. ABER wieso taucht es bei meinem Hausstrom auf ?
Siehe screen da ist kein Alert
Das verschandelt die sachen total
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 Januar 2019, 10:50:00
Zitat von: ChrisW am 29 Januar 2019, 10:21:40
Ich habe da noch ein komisches Problem. Ich habe immer wieder diese Streifen im Bild. grün = OK gelb = nodata
Das kommt vom Alert das habe ich in einem anderen Dashboard für Luftfeuchte .. ABER wieso taucht es bei meinem Hausstrom auf ?
Siehe screen da ist kein Alert
Das verschandelt die sachen total


was du siehst ist eine annotation und kein alert. ist bei einstellungen - annotation ... vielleicht hast du hier rumgeklickt. ansosnten weiß ich auch nicht.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 29 Januar 2019, 11:25:04
hehe ja wie auch immer .. denke ich hab das wohl aus versehen Aktiviert :) Danke.

Komisch ist das ich seit 7:30 Uhr keine Daten mehr in Grafana habe .. habe ja diesen Cronjob angelegt.. kann man sich da irgendwie benachrichtigen lassen wenn da ein Fehler passiert ist ?
Habe die vermutung das da irgendwas nicht läuft ...
Edit:
Im chronograf steht nun hinter der Datenbank .autogen ??!! Ich bekomme dort auch wieder nichts angezeigt ( Das ist immer wenn das script noch läuft ) Aber ich habe es ja auch alle 5 Minuten und Maximal 15 minuten zurück eingestellt..
Als ob sich das "aufgehangen hätte"

Das mysql2influx.log ist nun schon 56 Mb gross letzte änderung 6:41 ... ich versuche mal ob dort was drin steht aber ob ich das geöffnet bekomme

Edit:
Der letzte eintrag ist nich vollständig scheint abgestürzt zu sein ..
2019.01.29 06:41:11 --- Error: Bad Request, Code: 400, 2019-01-29 05:53:21, hm.tur.hof, contact, closed (to VCCU)
2019.01.29 06:41:11 --- Error: Bad Request, Code: 400, 2019-01-29 05:53:21, hm.tur.hof, state, closed
2019.01.29 06:41:13 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:03, handy_tanja_fritz, state, absent
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, state, W:  4.58 kWh P:  1.12 kW Pmax: 0.254 kW
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, statEnergy, Hour: 1.480 Day: -20.422 Month: -30.747 Year: -30.747 (since: 2019-01-23 )
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, statCount, Hour: 111.0000000000 Day: 343.4266666667 Month: 14039.1600000000 Year: 14039.1600000000 (since: 2019
2019.01.29 06:41:16 --- Error: Bad Request,

Die frage ist nun ich muss nun sicher das script mit 12 Stunden abändert das ich da alles wieder in die DB bekomme. ABER was ist mit dem chronjob der hat ja alle 5 Minuten rein . Gibt es da eine elegante lösung ohne chrojob ändern ?
Und wie kann ich mich vor den abstürzen Schnützen ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 29 Januar 2019, 11:34:43
Danke erstmal für die mühen.

Wo dieser Code hingehört ist mir klar
Zitat

SELECT
  cast((timestamp/1000)/150 as signed integer)*150 as time_sec,
  sum(value)/150*3600/150 as value,
  "150sec" as metric
FROM data
WHERE cast(timestamp/1000 as signed integer) > $__unixEpochFrom() and cast(timestamp/1000 as signed integer) < $__unixEpochTo() and
channel_id = 1
GROUP BY 1
ORDER BY 1


Wohin muss der andere, längere?
Zitatdu kannst im plot oben auf export klicken und in der exportierten datei prüfen wie viel zeit zwischen den einzelnen punkten ist. datenbank heißt bei mir fhem_mysql. musst anpassen, rest sollte bei dir importierbar sein. channel_id = 1 ...

Da stehe ich momentan etwas auf dem Schlauch.  :-[ :-[ :-[

Gruß
HappyUser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 Januar 2019, 11:59:19
Zitat von: Happyuser20 am 29 Januar 2019, 11:34:43

Wohin muss der andere, längere?
Da stehe ich momentan etwas auf dem Schlauch.  :-[ :-[ :-[

Gruß
HappyUser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 Januar 2019, 12:30:56
Zitat von: ChrisW am 29 Januar 2019, 11:25:04
hehe ja wie auch immer .. denke ich hab das wohl aus versehen Aktiviert :) Danke.

Komisch ist das ich seit 7:30 Uhr keine Daten mehr in Grafana habe .. habe ja diesen Cronjob angelegt.. kann man sich da irgendwie benachrichtigen lassen wenn da ein Fehler passiert ist ?
Habe die vermutung das da irgendwas nicht läuft ...
Edit:
Im chronograf steht nun hinter der Datenbank .autogen ??!! Ich bekomme dort auch wieder nichts angezeigt ( Das ist immer wenn das script noch läuft ) Aber ich habe es ja auch alle 5 Minuten und Maximal 15 minuten zurück eingestellt..
Als ob sich das "aufgehangen hätte"

Das mysql2influx.log ist nun schon 56 Mb gross letzte änderung 6:41 ... ich versuche mal ob dort was drin steht aber ob ich das geöffnet bekomme

Edit:
Der letzte eintrag ist nich vollständig scheint abgestürzt zu sein ..
2019.01.29 06:41:11 --- Error: Bad Request, Code: 400, 2019-01-29 05:53:21, hm.tur.hof, contact, closed (to VCCU)
2019.01.29 06:41:11 --- Error: Bad Request, Code: 400, 2019-01-29 05:53:21, hm.tur.hof, state, closed
2019.01.29 06:41:13 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:03, handy_tanja_fritz, state, absent
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, state, W:  4.58 kWh P:  1.12 kW Pmax: 0.254 kW
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, statEnergy, Hour: 1.480 Day: -20.422 Month: -30.747 Year: -30.747 (since: 2019-01-23 )
2019.01.29 06:41:16 --- Error: Bad Request, Code: 400, 2019-01-29 05:55:44, Hausstrom, statCount, Hour: 111.0000000000 Day: 343.4266666667 Month: 14039.1600000000 Year: 14039.1600000000 (since: 2019
2019.01.29 06:41:16 --- Error: Bad Request,

Die frage ist nun ich muss nun sicher das script mit 12 Stunden abändert das ich da alles wieder in die DB bekomme. ABER was ist mit dem chronjob der hat ja alle 5 Minuten rein . Gibt es da eine elegante lösung ohne chrojob ändern ?
Und wie kann ich mich vor den abstürzen Schnützen ?

ich habe nur numerische werte in der mysql, kann sein, dass zu viele errormeldungen etwas überlaufen lassen.

du kannst das script kopieren, die zeit auf 60m oder was auch immer ändern und separat laufen lassen. cron kann dann weiterlaufen. du kannst das originale script auch umbennenen, dann findet der cronjob das script nicht und erzeugt einen fehler. wenn alles erledigt ist, bennenst das originalscript wieder zurück.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 29 Januar 2019, 13:02:51
super Dankke .. kann man das Log auch ausmachen # vor einer Zeile ? Dann beobachte ich das mal ..
Aktuell ist mein PI abgestürzt  per sudo auf crontab hatte ich nur lesezurgriff .. hab ich sudo reboot gemacht. Kommt nicht mehr wieder :/

EDIT: Na super das wars wohl mit dem PI auch nach Stromlos machen komme ich per ssh nicht mehr drauf
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 Januar 2019, 17:16:26
Zitat von: ChrisW am 29 Januar 2019, 13:02:51
super Dankke .. kann man das Log auch ausmachen # vor einer Zeile ? Dann beobachte ich das mal ..
Aktuell ist mein PI abgestürzt  per sudo auf crontab hatte ich nur lesezurgriff .. hab ich sudo reboot gemacht. Kommt nicht mehr wieder :/

EDIT: Na super das wars wohl mit dem PI auch nach Stromlos machen komme ich per ssh nicht mehr drauf

ja, log kannst du ausmachen. zusätzlich am besten auch syslog / daemon.log ausschalten sonst werden die files groß

https://community.influxdata.com/t/disable-influxd-logging/429
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Happyuser20 am 03 Februar 2019, 14:30:02
Dank dir ,,kadettkilac89" für die Unterstützung, funktioniert soweit.

Gruß
Happyuser20
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Februar 2019, 19:48:04
Zitat von: Happyuser20 am 03 Februar 2019, 14:30:02
Dank dir ,,kadettkilac89" für die Unterstützung, funktioniert soweit.

Gruß
Happyuser20
Passt, konnte damit für mich selber was testen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 05 Februar 2019, 20:30:25
so langsam komme ich wieder zu grafana.
Mein reserve Proxy läuft..

In der grafana.ini habe ich bei root_url die url eingetragen. https://grafana.meinedomain.de
Das klappt auch. Aber wie bekomme ich das hin das es auch lokal geht http(s)://192.168.2.1:3000 ???
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 Februar 2019, 09:38:07
Zitat von: ChrisW am 05 Februar 2019, 20:30:25
so langsam komme ich wieder zu grafana.
Mein reserve Proxy läuft..

In der grafana.ini habe ich bei root_url die url eingetragen. https://grafana.meinedomain.de
Das klappt auch. Aber wie bekomme ich das hin das es auch lokal geht http(s)://192.168.2.1:3000 ???

ich route alles über extern ... du kannst mal hier durchlesen vielleicht funktioneirt eine der diskutierten settings


https://github.com/grafana/grafana/issues/2066


du kannst mal als root_url "http://localhost" testen. Sollte funktionieren dann musst du aber auch intern über reverse Proxy gehen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 09 Februar 2019, 14:43:29
Grafana intern + extern .... location ist bei mir grafana (http(s)://<intern>|<esterne ip>/grafana/)

Nginx reverse für intern über Port 80. .... bei mir läuft alles in Docker, darum "grafana" stattt localhost.

server {
    listen 80;
location /grafana/ {
   proxy_pass http://grafana:3000/;
}
}


für den externen Zugang hast du ja schon eine Location.

Als Root_url ... hab ich "http://localhost/grafana/" ...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Februar 2019, 18:28:06
Ich lasse mir in grafana drei Zeitreihen anschauen, in etwa so
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, DECIMAL(7,3)) as value,
  "Wasser" as metric
FROM history
WHERE READING="Warmwassertemperatur" AND DEVICE="Viessmann" AND $__timeFilter(TIMESTAMP)

(dabei sind zwei verschiedene devices involviert). Ich möchte zusätzlich den Durchschnitt der drei Temperaturwerte angezeigt bekommen. Natürlich könnte ich das so machen, dass ich in FHEM den Durchschnitt errechne (in einem dummy) und den dann anzeigen lasse. Aber geht das auch mit den SQL-Aufrufen und wenn ja, wie?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 16 Februar 2019, 14:34:26


Zitat von: andies am 14 Februar 2019, 18:28:06
Ich lasse mir in grafana drei Zeitreihen anschauen, in etwa so
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, DECIMAL(7,3)) as value,
  "Wasser" as metric
FROM history
WHERE READING="Warmwassertemperatur" AND DEVICE="Viessmann" AND $__timeFilter(TIMESTAMP)

(dabei sind zwei verschiedene devices involviert). Ich möchte zusätzlich den Durchschnitt der drei Temperaturwerte angezeigt bekommen. Natürlich könnte ich das so machen, dass ich in FHEM den Durchschnitt errechne (in einem dummy) und den dann anzeigen lasse. Aber geht das auch mit den SQL-Aufrufen und wenn ja, wie?

Grafana hat average Funktion ... lese mal die Doku ob dir das was hilft. Möglich dass es damit geht. Wenn du gute sql Kenntnisse hast geht es sicher auch per Union und subquery. Wird dann aber sicher langsam da die DB viel lesen muss.

Ansonsten halt in fhem ... weniger Aufwand wenn man nicht so tief in der Materie drinn ist.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Aerics am 25 März 2019, 21:03:38
Gibt es eine Möglichkeit Grafana auch unter 32bit zum Laufen zu bekommen?
Bin leider nicht so der Linux Mann und habe es nicht geschafft selbst zu builden. Und überall finde ich nur die 64bit Version.
Wenn man auf MySQL umgestellt hat wird dann weiterhin auch noch in Textdateien geloggt? Könnte man dann ja ausschalten, oder?

Unter Windows habe ich es zum Laufen bekommen und die DB angezapft. Nette Sache :)

Ich nutze nur HM-CC-RT-DN. Lässt sich außer nette Temperatur-Grafen vielleicht auch mit dem Actor Wert etwas ausgeben um seine Heizzeiten vielleicht zu optimieren? Also ob es vielleicht bessere wäre Nachts nicht soweit abzusenken etc. Hab gerade keine Idee wie man das statistisch darstelllen könnte um vielleicht irgend ein "Nutzen" aus den Daten zu haben.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: saschae am 24 Mai 2019, 05:04:22
Gibt es irgendeinen weg allow_embedding in der 6.2 wieder zu aktivieren ?????

So ist sind die tollen Grafana kurven nämlich nicht mehr schön in Fehm zu verwenden ......

Wenn ich mein Rechner nur local laufen haben sollten angriffe auf Grafana eigentlich nicht so Rolle Spielen oder ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 24 Mai 2019, 08:58:01
also Fazit nach längerer Zeit das script zum umwandeln musste ich abschalten. Diskstation ( Fhem im Doker ) hat VOlume 100% ausgelastet ..
Nun übergebe ich es in iobroker per fhem adapter und dort per influx Adapter wird dgeloggt. Funktioniert aktuell besser. Da ich iobroker auch nutze Optimal.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: JoeALLb am 24 Mai 2019, 09:09:08
Zitat von: saschae am 24 Mai 2019, 05:04:22
Gibt es irgendeinen weg allow_embedding in der 6.2 wieder zu aktivieren ?????

So ist sind die tollen Grafana kurven nämlich nicht mehr schön in Fehm zu verwenden ......

Wenn ich mein Rechner nur local laufen haben sollten angriffe auf Grafana eigentlich nicht so Rolle Spielen oder ?

Ich habe den Header davon einfach im Apache oder nginx-proxy ausgefiltert. Klappt. Aber an einer internen Lösung wäre ich auch interessiert.
Joe
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 24 Mai 2019, 09:29:04
Laut Doku (https://github.com/grafana/grafana/blob/master/docs/sources/installation/configuration.md#allow_embedding) kann man in /etc/grafana/grafana.ini allow_embedding auf true setzen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: saschae am 24 Mai 2019, 11:30:51
Genau das kannst du nicht .....
es gibt den Eintrag zwar auf der pref Seite in Grafana aber nicht in der .ini
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 24 Mai 2019, 13:36:21
Bedeutet, der Eintrag ist nicht in der Beispiel-/Standardconfig die mit der Grafana Installation ausgeliefert wird, oder greift der Eintrag tatsächlich nicht wenn man ihn in der Config hat?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: saschae am 24 Mai 2019, 19:03:56
Er greift nicht wenn man ihn einträgt
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: dirkbalzer am 26 Mai 2019, 08:01:37
Bei mir hat es mit dem Eintrag in der .ini Datei funktioniert.
In der /etc/grafana/grafana.ini

[security]
allow_embedding = true


danach natürlich Grafana einmal neustarten:
sudo service grafana-server restart


Danach wurde bei mir wieder alles im iframe Angeigt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: saschae am 26 Mai 2019, 11:30:01
Jetzt hab ich es so in den security block eingetragen und es geht wohl scheinbar  ;D
ich hatte vorher allow_embedding = trueimmer nur ans ende geschrieben und da wollte es nicht funktionieren ....wenn ich auch nicht versteh warum  :-[
Titel: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 26 Mai 2019, 11:44:02
genau das klappt bei mir nicht, ich habe inzwischen grafana deinstalliert und wieder installiert - ohne Ergebnis. Im Browser lässt sich die Seite anzeigen, in iframe nicht (obwohl allow_embedding=true in [security] und nochmaliger neustart).

Hat noch jemand eine Idee oder einen link?

<edit> Jetzt geht es, nachdem ich http:// davor geschrieben habe und den RPi neu startete.

<edit2> Wiki angepasst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ChrisW am 26 Juni 2019, 14:05:32
Gibt es in der neuen Version mitlerweile eine Möglichkeit bei einer Monatsansicht den Wochentag als Zahl unter jeden Balken zu haben ? Aktuell habe ich noch immer nur alle 3-5 Tage ein Datum drunter stehen.
Will gerne den Stromverbrauch pro Tag in einer Monatsansicht hmmmmmm
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Juli 2019, 16:34:19
Kann mir mal jemand auf die Sprünge helfen? Ich musste das neu installieren und hänge schon bei der einfachsten Darstellung

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  VALUE as value
FROM history
WHERE READING="Abgastemperatur" AND DEVICE="Viessmann" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300

ergibt "no data points", obwohl die in der Datenbank sind, siehe Screenshot.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: netsrac4th am 14 Juli 2019, 17:13:07
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MAX(CONVERT(VALUE, double)) as value,
  "Carsten Steps" as metric
FROM history
WHERE READING="leaderboard_summary_steps" AND DEVICE="fitbit_U2ZCPJ7" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%M:%s'))
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Juli 2019, 17:15:00
Nee, passt auch nicht:
ZitatError 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'double)) as value
FROM history
WHERE READING="Abgastemperatur" AND DEVICE="Viess' at line 3
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: netsrac4th am 14 Juli 2019, 17:23:04
Zeige uns doch mal Dein gesamten Code.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Juli 2019, 17:24:23
Das war der schon, aber inzwischen glaube ich den Fehler gefunden zu haben. Ich habe die Datenbank nicht ausgewählt (database) und da sind natürlich keine Datenpunkte da. Ergänze ich gleich mal im Wiki.

Komischerweise habe ich noch ein Problem. Grafana habe ich gestoppt und trotzdem sehe ich was auf dem Webbrowser. Das ist noch ärgerlicher...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: netsrac4th am 14 Juli 2019, 17:30:47
Versuch mal nach value das Komma zu setzen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Juli 2019, 17:31:25
Gelöst, endlich. Danke:
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(VALUE) as value
FROM history
WHERE READING="Abgastemperatur" AND DEVICE="Viessmann" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 300
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 29 September 2019, 16:01:05
Zitat von: netsrac4th am 14 Juli 2019, 17:13:07
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MAX(CONVERT(VALUE, double)) as value,
  "Carsten Steps" as metric
FROM history
WHERE READING="leaderboard_summary_steps" AND DEVICE="fitbit_U2ZCPJ7" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%M:%s'))
Ich habe schon wieder ein nicht nachvollziehbares Problem. Meine Syntax lautet
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MAX(CONVERT(VALUE, double)) as value,
  "Regen" as metric
FROM history
WHERE READING="rain_today" AND DEVICE="Regenmesser" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 3600

und ich kriege als Fehlermeldung
Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'double)) as value,
  "Regen" as metric
FROM history
WHERE READING="rain_today" A' at line 3
Sieht jemand mehr als ich?!

AVG(Value) nimmt er, VALUE selbst nicht und auch Min/Max etc lehnt er ab.
Titel: Frage zur Umwandlung von Werten
Beitrag von: Gunther am 17 November 2019, 17:36:58
Ich brauche mal Eure Hilfe. Komme mit den diversen mySQL-Tutorials nicht zurecht.

Ich möchte gerne verschiedene Devices loggen, habe aber Probleme bei der Umwandlung der Daten.

Soe sehen meine SQL-Daten aus:
2019-11-17 13:21:43   VBUSDEV_7321   VBUSDEV   speed_R07: 100 %   speed_R07   100 %   
2019-11-17 17:26:14   VBUSDEV_7321   VBUSDEV   temperature_T03: 72 °C   temperature_T03   72 °C   Â°C

1.) wie bekomme ich
100 %
in 100 (Dezimal) umgewandelt - muss natürlich auch von 0-99 passen
Oder macht es hier Sinn in % umzuwandeln?

Das muss ja im Folgenden bei value mit convert laufen, richtig? Nur wie?

SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    "Pumpe Vorlauf" as metric
  FROM history
  WHERE READING="speed_R07" AND DEVICE="VBUSDEV_7321" AND $__timeFilter(TIMESTAMP)


2.) wie bekomme ich
72 °C
in 72 (Dezimal) umgewandelt - die Werte können ebenfalls von 0-100 gehen

Das muss ja im Folgenden bei value mit convert laufen, richtig? Nur wie?

SELECT
    UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
    VALUE as value,
    "Temperatur Kamin" as metric
  FROM history
  WHERE READING="temperature_T03" AND DEVICE="VBUSDEV_7321" AND $__timeFilter(TIMESTAMP)


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Gunther am 17 November 2019, 18:05:10
zu 1:
so scheint es zu laufen:
SELECT
  UNIX_TIMESTAMP(`TIMESTAMP`) as time_sec,
  CAST(`VALUE` AS DECIMAL(10, 6)) as value,
  'Leistung Pumpe Vorlauf Kamin' as metric
FROM `history`
WHERE $__timeFilter(`TIMESTAMP`) AND `DEVICE` = 'VBUSDEV_7321' AND `READING` = 'speed_R03'
ORDER BY `TIMESTAMP` ASC


Was genau macht das?
CAST(`VALUE` AS DECIMAL(10, 6)) as value
10 Stellen und 6 hinter dem Komma?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Gunther am 17 November 2019, 19:57:31
Ich habe nun 2 Readings in einem Graphen. Einmal % und einmal °C.

Den 2. habe ich so aufgebaut:
SELECT
  UNIX_TIMESTAMP(`TIMESTAMP`) as time_sec,
  CAST(`VALUE` AS DECIMAL(10, 6)) as value,
  'Temperstur Vorlauf Kamin' as metric
FROM `history`
WHERE $__timeFilter(`TIMESTAMP`) AND `DEVICE` = 'VBUSDEV_7321' AND `READING` = 'temperature_T03'
ORDER BY `TIMESTAMP` ASC


Sieht so aus wie im Anhang

Wie bekomme ich rechts auf der y-Achse und in der Legende °C abgebildet?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 17 November 2019, 20:51:24
ich glaube, du meinst Series Overrides?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Gunther am 17 November 2019, 22:30:20
super, danke!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 18 November 2019, 07:24:03
Hallo,
habe 2 Fragen an Euch...

Danke und Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 18 November 2019, 08:02:10
Zitat von: Steffen@Home am 18 November 2019, 07:24:03
Kann man die X-Achse irgendwie formatieren (dd mm yyyy) auf z.B. 18. Nov statt 11/18 usw?

https://github.com/grafana/grafana/issues/1459#issuecomment-542942752
(https://github.com/grafana/grafana/issues/1459#issuecomment-542942752)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 18 November 2019, 08:40:15
Zitat von: Steffen@Home am 18 November 2019, 07:24:03
Hallo,
habe 2 Fragen an Euch...

  • das letzte passende Release für Grafana ist das 5.1.4 aus dem fg2it End of Life Repository ?


fg2it war / ist für Raspberry ... es gibt nun auch eine Version für ARM / ARMHF auf der Grafan-Seite für das aktuelle Release. Darum wird das Github-Projekt nicht mehr gepflegt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 18 November 2019, 13:27:18
Zitat von: kadettilac89 am 18 November 2019, 08:40:15
fg2it war / ist für Raspberry ... es gibt nun auch eine Version für ARM / ARMHF auf der Grafan-Seite für das aktuelle Release. Darum wird das Github-Projekt nicht mehr gepflegt.

Bei mir ist das Grafana auf dem Raspberry Pi installiert, bei euch nicht(mehr) ?

FHEM Wiki:
Installation des Grafana Servers
Es gibt einen offiziellen Download. Der ist nicht ganz unproblematisch, und will man auf einem Raspberry Pi installieren, sollten eher vorkompilierte Pakete genutzt werden. Sie sind unter diesem Link zu finden.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 18 November 2019, 13:35:26
Zitat von: andies am 18 November 2019, 08:02:10

https://github.com/grafana/grafana/issues/1459#issuecomment-542942752
(https://github.com/grafana/grafana/issues/1459#issuecomment-542942752)
Hallo Andie(s)

- Wenn ich es richtig verstehe wurde eine Änderung in der Hinsicht gemacht und mit dem Commit #20361 in das offizielle Master gepusht oder?
- Was ich nicht verstehe ist ab welcher Revision liegt diese Änderung zum Download bereit oder wie komme ich da ran?
Außerdem habe ich noch das Grafana 5.0.3 vom Repository fg2it installiert.
Danke.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: volschin am 19 November 2019, 07:13:42
Zitat von: Steffen@Home am 18 November 2019, 13:27:18
Bei mir ist das Grafana auf dem Raspberry Pi installiert, bei euch nicht(mehr) ?
Ich habe jetzt schon länger Grafana im Docker Container laufen. Funktioniert bestens.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 19 November 2019, 07:26:55
hmm, da habe ich auch keine ahnung - ich mache zu selten updates, ich hatte schlechte erfahrungen gemacht.


Gesendet von iPad mit Tapatalk Pro
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 19 November 2019, 08:50:01
Zitat von: Steffen@Home am 18 November 2019, 13:35:26
Hallo Andie(s)

- Wenn ich es richtig verstehe wurde eine Änderung in der Hinsicht gemacht und mit dem Commit #20361 in das offizielle Master gepusht oder?
- Was ich nicht verstehe ist ab welcher Revision liegt diese Änderung zum Download bereit oder wie komme ich da ran?
Außerdem habe ich noch das Grafana 5.0.3 vom Repository fg2it installiert.
Danke.

Also die aktuelle Version ist 6.4.4:
https://grafana.com/grafana/download?platform=arm
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 19 November 2019, 10:05:13
Zitat von: Thyraz am 19 November 2019, 08:50:01
Also die aktuelle Version ist 6.4.4:
https://grafana.com/grafana/download?platform=arm

Hallo Thyraz,
das heißt auf meinem Pi3 (ARMv8) kann ich das offizielle
Ubuntu & Debian(ARM64) installieren ?

wget https://dl.grafana.com/oss/release/grafana_6.4.4_arm64.deb
sudo dpkg -i grafana_6.4.4_arm64.deb


Laut FHEM-Wiki sollten doch nur vorkompilierte Pakete genutzt werden aus dem fg2it Repository  ???
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 19 November 2019, 10:06:23
Wenn's klappt (Versuchskaninchen), dann bitte Wiki ändern.  8)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 November 2019, 10:10:58
Zitat von: kadettilac89 am 18 November 2019, 08:40:15
fg2it war / ist für Raspberry ... es gibt nun auch eine Version für ARM / ARMHF auf der Grafan-Seite für das aktuelle Release. Darum wird das Github-Projekt nicht mehr gepflegt.

Zitat von: Steffen@Home am 19 November 2019, 10:05:13
Hallo Thyraz,
das heißt auf meinem Pi3 (ARMv8) kann ich das offizielle
Ubuntu & Debian(ARM64) installieren ?

wget https://dl.grafana.com/oss/release/grafana_6.4.4_arm64.deb
sudo dpkg -i grafana_6.4.4_arm64.deb


Laut FHEM-Wiki sollten doch nur vorkompilierte Pakete genutzt werden aus dem fg2it Repository  ???

Auszug aus dem Github ....

Warning Notice: End of Life
Starting from v5.2.0-beta1 Grafana introduced official support for armv7 and arm64 linux platforms. Many thanks to them for that.

As a consequence, this repo is no more needed and stops support starting from v5.2.0-beta1.


==> Backup von der SD-Karte machen und offizielle Version installieren. Wenn es nicht funktioniert SD-Karte aus dem Backup restoren. Ich gehe davon aus, dass du für den Raspberry das armhf-deb benötigst. Kannst ja testen welchen sich installieren lässt
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 November 2019, 10:35:08
zusätzlich ... diese Datei sichern und zurückspielen, da sind die ganzen Dashboards gespeichert ...

https://grafana.com/docs/installation/debian/

Database
The default configuration specifies a sqlite3 database located at /var/lib/grafana/grafana.db. Please backup this database before upgrades. You can also use MySQL or Postgres as the Grafana database, as detailed on the configuration page.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 19 November 2019, 12:35:00
Zitat von: kadettilac89 am 19 November 2019, 10:10:58
...Ich gehe davon aus, dass du für den Raspberry das armhf-deb benötigst. Kannst ja testen welchen sich installieren lässt

Das _armhf.deb steht auf Grafana Download https://grafana.com/grafana/download?platform=arm (https://grafana.com/grafana/download?platform=arm) bei Ubuntu & Debian(ARMv6)

Wenn ich dann im Wiki https://de.wikipedia.org/wiki/Raspberry_Pi#Eigenschaften (https://de.wikipedia.org/wiki/Raspberry_Pi#Eigenschaften) bei Architektur ARMv6 (32bit) schaue, dann steht dieses unter Pi:
Zero, Zero W / WH, 1 Mod. A, 1 Mod. A+, 1 Mod. B, 1 Mod. B+

Ich habe aber den Pi3 und dort steht Architektur: ARMv8 (64 Bit) => somit müsste doch die ARM64 (grafana_6.4.4_arm64.deb) passen...?

Verstehe ich das alles falsch?


@volschin:
Docker kenne ich seither leider nicht.

@kadettilac: Danke für die Tipps.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 November 2019, 14:42:37
Zitat von: Steffen@Home am 19 November 2019, 12:35:00

Ich habe aber den Pi3 und dort steht Architektur: ARMv8 (64 Bit) => somit müsste doch die ARM64 (grafana_6.4.4_arm64.deb) passen...?


https://stackoverflow.com/questions/37790029/what-is-difference-between-arm64-and-armhf

Raspberry Pi Type 3 has 64-bit CPU, but its architecture is not arm64 but armhf.


Bin mir ziemlich sicher dass ich damals auf meinem RPi3 auch Grafana armhf installieren musste. Wie geschrieben, teste einfach welche *.deb-Datei du installieren kannst. Es geht sowieso nur eine der beiden ...
Titel: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: volschin am 20 November 2019, 22:05:04
Zitat von: kadettilac89 am 19 November 2019, 14:42:37
https://stackoverflow.com/questions/37790029/what-is-difference-between-arm64-and-armhf

Raspberry Pi Type 3 has 64-bit CPU, but its architecture is not arm64 but armhf.


Bin mir ziemlich sicher dass ich damals auf meinem RPi3 auch Grafana armhf installieren musste. Wie geschrieben, teste einfach welche *.deb-Datei du installieren kannst. Es geht sowieso nur eine der beiden ...
Auf alle Fälle ist Raspbian inkl. Kernel derzeit noch immer 32bit. Daher läuft dann da auch kein 64Bit Programm drauf.
CPU ist ab 3+ 64bit.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 21 November 2019, 06:51:28
ok das erklärt einiges. Danke.
Dann vermute ich die ARMv7 32bit Version ist die richtige für den Pi3.

wget https://dl.grafana.com/oss/release/grafana_6.4.4_armhf.deb
sudo dpkg -i grafana_6.4.4_armhf.deb


Ich hoffe ich komme in den nächsten Tagen dazu es zu testen.
Wie kann ich am besten das alte Grafana löschen? oder einfach das neue Installieren?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 21 November 2019, 07:58:52
Drüber bügeln.

Der Grund warum im ersten Post (und wohl auch im Wiki) zusätzlich zum Link zur Downloadseite für den Pi noch das mit Github aufgeführt war,
ist einzig aus dem Grund, dass es damals nur dort ARM Builds gab.

Das hat sich ja geändert und aktuelle Versionen finden sich scheinbar ja auch nur noch auf der offiziellen Downloadseite.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: persching am 23 November 2019, 10:13:55
Ich weiß jetzt nicht so recht, ob das hier her passt, aber meiner Meinung nach schon:

ich verwende fhem, mysql und grafana in einer Dockerumgebung auf einem Intel NUC. Das läuft alles soweit, aber ich bekomme bei den Abfragen die hier im Thread auf den ersten Seiten vorgestellt sind, immer eine Fehlermeldung, die ich nicht dauerhaft weg bekomme.

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'fhem.history.TIMESTAMP' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Ich weiß woher der Fehler kommt und ich kann ihn temporär abstellen in dem ich mich im Docker mysql Container einlogge und diesen sql_mode update. Das Problem ist, dass ich es nicht schaffe die Variable dauerhaft zu ändern (was wohl an Docker liegt). Aber es gibt wohl auch einen Weg das SQL Statement so zu manipulieren, dass man den sql_mode nicht manipulieren muss.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 23 November 2019, 16:01:51
Zitat von: persching am 23 November 2019, 10:13:55
Ich weiß woher der Fehler kommt und ich kann ihn temporär abstellen in dem ich mich im Docker mysql Container einlogge und diesen sql_mode update. Das Problem ist, dass ich es nicht schaffe die Variable dauerhaft zu ändern (was wohl an Docker liegt). Aber es gibt wohl auch einen Weg das SQL Statement so zu manipulieren, dass man den sql_mode nicht manipulieren muss.

Möglichkeit 1:
Docker im Docker-Compose file ergänzen

command: mysqld --sql_mode=""

.... wenn du Docker mit anders startest den Container entsprechend mit command starten

Möglichkeit 2:

ONLY_FULL_GROUP_BY: Dieser Modus, der vor MySQL 5.7.5 deaktiviert war, gestattet eine Gruppierung nur dann, wenn alle in SELECT, HAVING oder ORDER BY aufgelisteten Spalten auch unter GROUP BY auftauchen – also explizit aggregiert werden – oder wenn sie zumindest funktional abhängig von einer in GROUP BY aufgelisteten Spalte sind. Eine solche Anhängigkeit ist gegeben, wenn beide zum Beispiel zur selben Tabelle gehören und die unter GROUP BY gelistete Spalte der Primärschlüssel dieser Tabelle ist.


Deine Meldung sagt, dass "fhem.history.TIMESTAMP" scheinbar nicht in der GROUP BY clause ... Select anpassen indem du machst was die Fehlermeldung aussagt.

Dockerfile und fehlerhafter Select wäre hilfreich wenn schon nach Hilfe gefragt wird.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: persching am 23 November 2019, 16:31:31
Ich hab meinen Fehler gefunden:

Ich hatte ebenfalls schon die Ergänzung der docker-compose mit dem command-Befehl gefunden. Leider hatte ich das '=' vergessen und mysql ist gar nicht mehr gestartet. Ein typischer Fall von PICNIC (Problem in chair, not in computer).

Trotzdem danke für die Hilfe!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 18 Dezember 2019, 12:40:14
Hihohoho,

Hallo zusammen.

Ich steige gerade auf den rpi4 4G mit Buster und Docker um, was soweit ganz gut geklappt hat.
fhem/fhem und portainer/portainer laufen bereits.

Könnt Ihr mir bitte mit einem Tipp / Link weiterhelfen, um Grafana und DBLog (MySQL) ebenfalls in einem Container zu betreiben?
Macht es Sinn das jeweils auch separat zu containern oder besser zusammen?

Ich würde liebend gerne von Euren Docker Containern partizipieren, da ich mit Docker noch ganz am Anfang stehe.

Bisher habe ich noch kein DBLog im Einsatz, jedoch MySQL für eine andere Datenbank bei einem Freund verwendet.

Viele Grüße
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 18 Dezember 2019, 14:20:04
Zitat von: ch.eick am 18 Dezember 2019, 12:40:14
Hihohoho,

Hallo zusammen.

Ich steige gerade auf den rpi4 4G mit Buster und Docker um, was soweit ganz gut geklappt hat.
fhem/fhem und portainer/portainer laufen bereits.

Könnt Ihr mir bitte mit einem Tipp / Link weiterhelfen, um Grafana und DBLog (MySQL) ebenfalls in einem Container zu betreiben?
Macht es Sinn das jeweils auch separat zu containern oder besser zusammen?

Ich würde liebend gerne von Euren Docker Containern partizipieren, da ich mit Docker noch ganz am Anfang stehe.

Bisher habe ich noch kein DBLog im Einsatz, jedoch MySQL für eine andere Datenbank bei einem Freund verwendet.

Viele Grüße
   Christian
ich habe container für fhem, mysql, grafana, influxdb ... separate container ist das konzept von docker. welchen link oder welche information suchst du`? wenn du schon grafana ins auge fasst kannst ggf. auch gleich alles mit influxdb loggen ... kommt auf deine anforderung an. in docker kannst du das schnell mal aufsetzen und testen ohne große neu konfigurieren zu müssen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 18 Dezember 2019, 15:02:00
Hallo kadettilac89

was wäre der Vorteil von influxdb?

Gibt es die Definition der Docker Container bereits fertig? Ich bin mit Docker noch nicht fit.
Docker mit mysql und docker mit grafana würde ich als fertiges Image gerne haben.

Meine Anforderung ist das Loggen von Strom Daten und Aufbereiten zu Graphen.

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 18 Dezember 2019, 15:59:12
Zitat von: Steffen@Home am 21 November 2019, 06:51:28
ok das erklärt einiges. Danke.
Dann vermute ich die ARMv7 32bit Version ist die richtige für den Pi3.

wget https://dl.grafana.com/oss/release/grafana_6.4.4_armhf.deb
sudo dpkg -i grafana_6.4.4_armhf.deb


Ich hoffe ich komme in den nächsten Tagen dazu es zu testen.
Wie kann ich am besten das alte Grafana löschen? oder einfach das neue Installieren?

Rückmeldung....
Drüberbügeln hat funktioniert. :D
Dashboards waren alle noch da. Muss jetzt nur noch die SQL Query´s umstellen bezüglich
ZitatValue column must have numeric datatype
convert(value,integer) as value
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 18 Dezember 2019, 16:16:56
Zitat von: ch.eick am 18 Dezember 2019, 15:02:00
Hallo kadettilac89

was wäre der Vorteil von influxdb?

Gibt es die Definition der Docker Container bereits fertig? Ich bin mit Docker noch nicht fit.
Docker mit mysql und docker mit grafana würde ich als fertiges Image gerne haben.

Meine Anforderung ist das Loggen von Strom Daten und Aufbereiten zu Graphen.

influxdb ist schneller und grafana ist auf influxdb optimiert wenn man das so sehen will. abfragen musst du nicht mit sql-statement machen sondern kannst mehr mit klicken und auswahl machen. du kannst auch mysql und parallel influxdb füllen, mach ich auch. container kannst dann einfach wieder löschen wenn du es nicht mehr willst.

fertiges image sind alle docker container. du meinst wahrscheinlich die konfiguration, da musst du etwas hand anlegen aber auch machbar. wenn du docker-compose nutzen willst kann ich dir - falls gewollt - meine config geben. ich habe zwar alles auf vm aber sollte bis auf die docker basis-images großteils laufen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 18 Dezember 2019, 16:28:05
Hallo nochmal,

die docker-compose Vorlagen würden sicherlich schon helfen.

Das ging natürlich nicht :-)

pi@raspberrypi:~ $ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
no matching manifest for linux/arm/v7 in the manifest list entries

pi@raspberrypi:~ $ docker pull mariadb
Using default tag: latest
latest: Pulling from library/mariadb
no matching manifest for linux/arm/v7 in the manifest list entries


Ich glaube MySQL wäre mir lieber, da ich da schon mal dran war. Ansonsten nehme ich auch was da ist.

Gruß
   Christian


EDIT:

Okay, soooo einfach ist es dann doch nicht ;-)

pi@raspberrypi:~/docker-compose/mysql $ cat docker-compose.yml
version: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'db'
      # So you don't have to use root, but you can if you like
      MYSQL_USER: 'fhem'
      # You can use whatever password you like
      MYSQL_PASSWORD: 'xxxxxxxxx'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'xxxxxxxx'
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - '3306:3306'
    expose:
      # Opens port 3306 on the container
      - '3306'
      # Where our data will be persisted
    volumes:
      - my-db:/var/lib/mysql
# Names our volume
volumes:
  my-db:



pi@raspberrypi:~/docker-compose/mysql $ docker-compose up
Creating network "mysql_default" with the default driver
Creating volume "mysql_my-db" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Dezember 2019, 00:15:37
Zitat von: ch.eick am 18 Dezember 2019, 16:28:05
Hallo nochmal,

die docker-compose Vorlagen würden sicherlich schon helfen.

Das ging natürlich nicht :-)


Du brauchst einen Docker Container für deine Architektur. Mysql gibt es nicht für Raspberry. Teste mal folgendes Image

linuxserver/mariadb
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 19 Dezember 2019, 09:04:03
Danke für die Rückmeldung,
Ich habe bereite etwas mit docker-compose und fhem gefunden. Da scheint alles drin zu sein. Die Container laufen schon und schau morgen mal näher rein, weil beim fhem Container noch file Berechtigungen falsch von mir gesetzt sind.
Enthalten sind:
- Fhem
- Reverse Proxi
- Mariadb
- Adminer
- Portainer

Gibt es ein Verzeichnis für docker Images?

Gruß Christian

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Dezember 2019, 09:32:11
Zitat von: ch.eick am 19 Dezember 2019, 09:04:03

Gibt es ein Verzeichnis für docker Images?

Gruß Christian
Ja, aber es sind keine Images als große Zip-Datei oder ähnlich. Docker speichert im Ordner overlay2 und weiteren. Wenn du Images löschen willst musst du die Docker Befehle dazu ausführen, nicht einfach Ordner löschen sonst bekommst du fehler.  Wenn es dir darum geht die Verzeichnisse woanders zu speichern - kann man in der systemd-config ändern (Parameter -g).
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: volschin am 19 Dezember 2019, 12:30:57
Zitat von: kadettilac89 am 19 Dezember 2019, 00:15:37
Du brauchst einen Docker Container für deine Architektur. Mysql gibt es nicht für Raspberry. Teste mal folgendes Image

linuxserver/mariadb
Zwar nicht als offizielles, aber generell schon.

https://hub.docker.com/r/tobi312/rpi-mysql/
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 19 Dezember 2019, 20:26:53
Vielen Dank
Morgen geht's weiter

Gesendet von meinem SM-G930F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 21 Dezember 2019, 11:36:33
Zitat von: volschin am 19 Dezember 2019, 12:30:57
Zwar nicht als offizielles, aber generell schon.

https://hub.docker.com/r/tobi312/rpi-mysql/
richtig, ich bezog mich auf die compose-yml vom Fragesteller in dem das origniale mysql-image verwendet wurde. Darum mein Link zu docker image linuxserver/mariadb .... mariadb sehe ich als akzeptable alternative zu mysql (da selbst ein port).
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: persching am 03 Januar 2020, 11:27:00
Ich möchte von meiner Heizung die Brennerstarts und die Brennerstunden den letzten Tages in einem Grafana Chart als Balken darstellen. Dazu hab ich jetzt die beiden Balken um jeweils 3 Stunden versetzt dargestellt. Der Wert ist über den ganzen Tag gleich, weil es ja der Vortageswert ist. Meine Idee zur besseren Darstellung war jetzt die Brennerstunden von 0-8 Uhr und die Brennerstarts von 12-20 Uhr darzustellen. Dann ist meine Idee, dass an einem Tag zwei Balken nebeneinander ohne Überlappung dargestellt werden. Leider bekomme ich die SQL Abfrage nicht hin. :( Geht sowas überhaupt??

https://ibb.co/dknkbWb (https://ibb.co/dknkbWb)

SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d 00:00:00')) as time_sec,
  CONVERT(VALUE, SIGNED) as value,
  'Brennerstarts' as metric
FROM history
WHERE READING like 'BrennerStartsLastDay' and $__timeFilter(TIMESTAMP)


SELECT
  UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d 03:00:00')) as time_sec,
  CONVERT(VALUE, SIGNED) as value,
  'Brennerstunden' as metric
FROM history
WHERE READING like 'BrennerStundenLastDay' and $__timeFilter(TIMESTAMP)


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SirMarco am 03 Januar 2020, 18:31:58
Hallo zusammen

ich versuche mich an den Vorjahreswerten der Temperaturfühler in einem Plot. Geht dieses mit Grafana überhaupt?
Meinen Netatmo Temperaturfühler habe ich mit:

SELECT
  UNIX_TIMESTAMP(`TIMESTAMP`) as time_sec,
  convert(value,integer) as value,
  "Temperatur" as metric
FROM history
WHERE READING="temperature" AND DEVICE="netatmo_M02_00_00_06_XX_XX" AND $__timeFilter(TIMESTAMP)


eingebunden.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Januar 2020, 20:26:04
Zitat von: SirMarco am 03 Januar 2020, 18:31:58
Hallo zusammen

ich versuche mich an den Vorjahreswerten der Temperaturfühler in einem Plot. Geht dieses mit Grafana überhaupt?
Meinen Netatmo Temperaturfühler habe ich mit:


geht das: ja ... ohne deine Anforderungen näher zu kennen

Code Beispiele im Eingangspost oder meinen Posts im Zeitraum Januar 2019, da hab ich einiges unterstützt und da sind auch Beispiele mit drin. Vielleicht hilft es dir ...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SirMarco am 03 Januar 2020, 20:48:24
Hallo

Habe ich das überlesen? Dachte ich habe alles durch, ich schaue nochmal.
Möchte einen Graph mit den aktuellen Daten und einen direkt aus dem Vorjahr, um die Temperaturen aus dem Vorjahr zu vergleichen.

Liebe Grüsse

SirMarco

Gesendet von meinem SM-G973F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 03 Januar 2020, 22:08:18
Ich hab dieses Beispiel bei mir auch mit Vorjahresdaten erweitert:
https://forum.fhem.de/index.php/topic,77724.msg700195.html#msg700195

Für die Vorjahrswerte habe ich dann 3 weitere Querys (Vorjahr, Vorjahr Min/Max, Vorjahr Min/Max Baseline).
Die Zeitberechnung sieht aktuell so aus, dass ich zu den Altwerten 1 Jahr dazurechne um sie in den aktuellen Zeitraum zu holen.
UNIX_TIMESTAMP(DATE_ADD(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d 12:00:00'), INTERVAL 1 YEAR)) as time_sec,

So hat man dann farblich in blau die Durchschnittstemperatur + Temperaturspanne des aktuellen Jahres und violett die hinterlegten Kurven des Vorjahres als Vergleich.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SirMarco am 04 Januar 2020, 14:26:10
Zitat von: Thyraz am 03 Januar 2020, 22:08:18
Ich hab dieses Beispiel bei mir auch mit Vorjahresdaten erweitert:
https://forum.fhem.de/index.php/topic,77724.msg700195.html#msg700195

Für die Vorjahrswerte habe ich dann 3 weitere Querys (Vorjahr, Vorjahr Min/Max, Vorjahr Min/Max Baseline).
Die Zeitberechnung sieht aktuell so aus, dass ich zu den Altwerten 1 Jahr dazurechne um sie in den aktuellen Zeitraum zu holen.
UNIX_TIMESTAMP(DATE_ADD(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d 12:00:00'), INTERVAL 1 YEAR)) as time_sec,

So hat man dann farblich in blau die Durchschnittstemperatur + Temperaturspanne des aktuellen Jahres und violett die hinterlegten Kurven des Vorjahres als Vergleich.

Danke für deinen Support. Darf ich fragen nach welcher Tabellenstruktur du deinen Datenbank angelegt hast?

Gruss
Marco
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Lanhydrock am 15 Januar 2020, 17:54:21
@Tobias/Thyraz: 1000 Dank auch von unserer Seite für die eingängigen Beispiele und die Vorstellung von Grafana an sich hier im Forum! Sehr sehr hilfreich!

Zitat von: Thyraz am 17 November 2017, 11:15:34
Beispiel: Bar Chart mit summierten, täglichen Betriebsstunden ohne Statistics Modul.

Wer diesen sehr interessanten (und grandiosen) SELECT auch für (beispielsweise Homematic-) Thermostate nutzen möchte, die nicht nur 0/1, sondern die konkrete Öffnungsstellung (beispielsweise bei CUL_HM ja als actuator-Reading) kennen:

1. Man nehme für Query A Tobias Originalcode aus seinem Posting (https://forum.fhem.de/index.php/topic,77724.msg717020.html#msg717020).

2. Man ersetze DEVICE und READING entsprechend - sowie den Namen der Reihe:

Zitat
UNIX_TIMESTAMP(DATE_FORMAT(time_sec, '%Y-%m-%d 00:00:00')) as time_sec,
(SUM(on_time) / 86400) * 100 as value,
"Ventil geöffnet pro Tag" as metric

...

FROM history
WHERE READING="actuator" AND DEVICE="[[room]].HEI.1" AND $__timeFilter(TIMESTAMP)

UNION

# -- Jeweils aktuell gültiger Wert für alle virtuellen Zeitstempel bestimmen --
SELECT time_sec,
( SELECT convert( VALUE,integer) as value
FROM history
WHERE READING="actuator" AND DEVICE="[[room]].HEI.1" AND TIMESTAMP <= time_sec
ORDER BY TIMESTAMP DESC
LIMIT 1

...

Anm.: Die Variable [[room]] ist bei uns ein Intervall mit möglichen Zimmerbezeichnungen der Thermostate: "1OG.zi1",...,"0EG.zi4",...

3. Man ändere den WHERE-Term ganz am Ende:

Zitat
...

WHERE VALUE > "0"
GROUP by DATE(time_sec)
ORDER BY time_sec

4. Dann kopiere man diese Query einmal als Query B und stelle einen leichten Zeitversatz für die Darstellung ein - sowie einen anderen Namen der Reihe:

Zitat
SELECT
UNIX_TIMESTAMP(DATE_FORMAT(time_sec, '%Y-%m-%d 03:00:00')) as time_sec,
(SUM(on_time * VALUE) /100 / 86400) * 100 as value,
"Anteil Gesamtkapazität pro Tag" as metric

...

5. Dann - auch am Anfang von Query B - noch die Änderung für die genaue Öffnung des Ventils: Wir multiplizieren mit dem Öffnungswert (0-100) und teilen dann nach der Aufsummierung wieder durch 100:

Zitat
SELECT
UNIX_TIMESTAMP(DATE_FORMAT(time_sec, '%Y-%m-%d 03:00:00')) as time_sec,
(SUM(on_time * VALUE) /100 / 86400) * 100 as value,
"Anteil Gesamtkapazität pro Tag" as metric

...

6. Damit hat man dann die Voraussetzungen für ein schönes Panel, das einem die Anteile pro Tag angibt, an denen das Ventil geöffnet war und zweitens mit welcher resultierenden Kapazität (allerdings natürlich unabhängig von bestimmt über Tag unterschiedlichen Vorlauftemperaturen...). Trotzdem: grandios, wie einfach das geht [,wenn man auf Vorarbeiten anderer aufsetzen darf...]
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 16 Januar 2020, 14:55:00
Ich musste mein ganzes System (RPi, FHEM etc.) komplett neu aufsetzen, weil meine Karte defekt war. Backup/restore war noch das einfachste, jetzt kämpfe ich uA mit grafana (und auch mit MQTT2, vielleicht spielt das eine Rolle?). Ich habe ein neues RPi gezogen, auf die Karte gespielt, keinerlei Firewall- und ähnliche Dinge aufgesetzt und nur FHEM sowie grafana installiert. Ich sehe aber beim Aufruf von http://192.168.2.7:3000 keinen Login-Schirm. Meine ini Datei sieht so aus:
##################### Grafana Configuration Example #####################
#
# Everything has defaults so you only need to uncomment things you want to
# change

# possible values : production, development
; app_mode = production

#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
;data = /var/lib/grafana
#
# Directory where grafana can store logs
#
;logs = /var/log/grafana

#################################### Server ####################################
[server]
# Protocol (http or https)
protocol = http

# The ip address to bind to, empty will bind to all interfaces
http_addr =

# The http port  to use
http_port = 3000

# The public facing domain name used to access grafana from a browser
;domain = localhost

# Redirect to correct domain if host header does not match domain
# Prevents DNS rebinding attacks
;enforce_domain = false

# The full public facing url
;root_url = %(protocol)s://%(domain)s:%(http_port)s/

# Log web requests
;router_logging = false

# the path relative working path
;static_root_path = public

# enable gzip
;enable_gzip = false

# https certs & key file
;cert_file =
;cert_key =

#################################### Database ####################################
[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = 127.0.0.1:3306
name = grafana
user = root
password =raspberry

# For "postgres" only, either "disable", "require" or "verify-full"
;ssl_mode = disable

# For "sqlite3" only, path relative to data_path setting
;path = grafana.db

#################################### Session ####################################
[session]
# Either "memory", "file", "redis", "mysql", "postgres", default is "file"
provider = file

# Provider config options
# memory: not have any config yet
# file: session dir path, is relative to grafana data_path
# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana`
# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name`
# postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable
;provider_config = sessions

# Session cookie name
;cookie_name = grafana_sess

# If you use session in https only, default is false
;cookie_secure = false

# Session life time, default is 86400
;session_life_time = 86400

#################################### Analytics ####################################
[analytics]
# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
# No ip addresses are being tracked, only simple counters to track
# running instances, dashboard and error counts. It is very helpful to us.
# Change this option to false to disable reporting.
;reporting_enabled = true

# Google Analytics universal tracking code, only enabled if you specify an id here
;google_analytics_ua_id =

#################################### Security ####################################
[security]
# default admin user, created on startup
;admin_user = admin

# default admin password, can be changed before first start of grafana,  or in profile settings
;admin_password = admin

# used for signing
;secret_key = ******************

# Auto-login remember days
login_remember_days = 14
;cookie_username = grafana_user
;cookie_remember_name = grafana_remember

# disable gravatar profile images
;disable_gravatar = false

# data source proxy whitelist (ip_or_domain:port seperated by spaces)
;data_source_proxy_whitelist =

#################################### Users ####################################
[users]
# disable user signup / registration
allow_sign_up = true

# Allow non admin users to create organizations
;allow_org_create = true

# Set to true to automatically assign new users to the default organization (id 1)
;auto_assign_org = true

# Default role new users will be automatically assigned (if disabled above is set to true)
;auto_assign_org_role = Viewer

# Background text for the user field on the login page
;login_hint = email or username

#################################### Anonymous Auth ##########################
[auth.anonymous]
# enable anonymous access
enabled = true

# specify organization name that should be used for unauthenticated users
;org_name = Main Org.

# specify role for unauthenticated users
;org_role = Viewer

#################################### Github Auth ##########################
[auth.github]
;enabled = false
;allow_sign_up = false
;client_id = some_id
;client_secret = some_secret
;scopes = user:email,read:org
;auth_url = https://github.com/login/oauth/authorize
;token_url = https://github.com/login/oauth/access_token
;api_url = https://api.github.com/user
;team_ids =
;allowed_organizations =

#################################### Google Auth ##########################
[auth.google]
;enabled = false
;allow_sign_up = false
;client_id = some_client_id
;client_secret = some_client_secret
;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
;auth_url = https://accounts.google.com/o/oauth2/auth
;token_url = https://accounts.google.com/o/oauth2/token
;api_url = https://www.googleapis.com/oauth2/v1/userinfo
;allowed_domains =

#################################### Auth Proxy ##########################
[auth.proxy]
;enabled = false
;header_name = X-WEBAUTH-USER
;header_property = username
;auto_sign_up = true

#################################### Basic Auth ##########################
[auth.basic]
;enabled = true

#################################### Auth LDAP ##########################
[auth.ldap]
;enabled = false
;config_file = /etc/grafana/ldap.toml

#################################### SMTP / Emailing ##########################
[smtp]
;enabled = false
;host = localhost:25
;user =
;password =
;cert_file =
;key_file =
;skip_verify = false
;from_address = admin@grafana.localhost

[emails]
;welcome_email_on_sign_up = false

#################################### Logging ##########################
[log]
# Either "console", "file", default is "console"
# Use comma to separate multiple modes, e.g. "console, file"
;mode = console, file

# Buffer length of channel, keep it as it is if you don't know what it is.
;buffer_len = 10000

# Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
;level = Info

# For "console" mode only
[log.console]
;level =

# For "file" mode only
[log.file]
;level =
# This enables automated log rotate(switch of following options), default is true
;log_rotate = true

# Max line number of single file, default is 1000000
;max_lines = 1000000

# Max size shift of single file, default is 28 means 1 << 28, 256MB
;max_lines_shift = 28

# Segment log daily, default is true
;daily_rotate = true

# Expired days of log file(delete after max days), default is 7
;max_days = 7

#################################### AMPQ Event Publisher ##########################
[event_publisher]
;enabled = false
;rabbitmq_url = amqp://localhost/
;exchange = grafana_events

;#################################### Dashboard JSON files ##########################
[dashboards.json]
enabled = true
;path = /var/lib/grafana/dashboards

und die log Datei so
2020/01/16 14:26:47 [I] Starting Grafana
2020/01/16 14:26:47 [I] Version: master, Commit: NA, Build date: 1970-01-01 01:00:00 +0100 CET
2020/01/16 14:26:47 [I] Configuration Info
Config files:
  [0]: /usr/share/grafana/conf/defaults.ini
  [1]: /etc/grafana/grafana.ini
Command lines overrides:
  [0]: default.paths.data=/var/lib/grafana
  [1]: default.paths.logs=/var/log/grafana
Paths:
  home: /usr/share/grafana
  data: /var/lib/grafana
  logs: /var/log/grafana

2020/01/16 14:26:47 [I] Database: mysql
2020/01/16 14:26:47 [I] Migrator: Starting DB migration
2020/01/16 14:26:47 [I] Listen: http://0.0.0.0:3000
2020/01/16 14:42:43 [I] Received signal terminated. shutting down
2020/01/16 14:42:48 [I] Starting Grafana
2020/01/16 14:42:48 [I] Version: master, Commit: NA, Build date: 1970-01-01 01:00:00 +0100 CET
2020/01/16 14:42:48 [I] Configuration Info
Config files:
  [0]: /usr/share/grafana/conf/defaults.ini
  [1]: /etc/grafana/grafana.ini
Command lines overrides:
  [0]: default.paths.data=/var/lib/grafana
  [1]: default.paths.logs=/var/log/grafana
Paths:
  home: /usr/share/grafana
  data: /var/lib/grafana
  logs: /var/log/grafana

2020/01/16 14:42:48 [I] Database: mysql
2020/01/16 14:42:48 [I] Migrator: Starting DB migration
2020/01/16 14:42:48 [I] Listen: http://0.0.0.0:3000
2020/01/16 14:47:27 [I] Received signal terminated. shutting down
2020/01/16 14:47:31 [I] Starting Grafana
2020/01/16 14:47:31 [I] Version: master, Commit: NA, Build date: 1970-01-01 01:00:00 +0100 CET
2020/01/16 14:47:31 [I] Configuration Info
Config files:
  [0]: /usr/share/grafana/conf/defaults.ini
  [1]: /etc/grafana/grafana.ini
Command lines overrides:
  [0]: default.paths.data=/var/lib/grafana
  [1]: default.paths.logs=/var/log/grafana
Paths:
  home: /usr/share/grafana
  data: /var/lib/grafana
  logs: /var/log/grafana

2020/01/16 14:47:31 [I] Database: mysql
2020/01/16 14:47:31 [I] Migrator: Starting DB migration
2020/01/16 14:47:31 [I] Creating json dashboard index for path: /var/lib/grafana/dashboards
2020/01/16 14:47:31 [I] Listen: http://0.0.0.0:3000

Hat irgend jemand eine Idee, was hier schief läuft? Ich hatte nicht viel Chancen, überhaupt etwas zu installieren und demzufolge viele Fehler zu machen.

MYSQL bzw MariaDB läuft, Datenbank grafana ist da angelegt und Zugriff ist möglich.

Edit:
pi@rasp:/var/log/grafana $ sudo netstat -lptn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      525/mysqld         
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      486/sshd           
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:8383            0.0.0.0:*               LISTEN      4682/perl           
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN      4682/perl           
tcp6       0      0 :::80                   :::*                    LISTEN      543/apache2         
tcp6       0      0 :::22                   :::*                    LISTEN      486/sshd           
tcp6       0      0 :::3000                 :::*                    LISTEN      5816/grafana 
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 16 Januar 2020, 18:45:16
Zitat von: andies am 16 Januar 2020, 14:55:00
Ich sehe aber beim Aufruf von http://192.168.2.7:3000 keinen Login-Schirm. Meine ini Datei sieht so aus:

was meinst du damit, du siehst den Grafana-Screen aber kein Login, oder es wird überhaupt nichts angezeigt und irgendwann kommt ein Timeout?

Zweites: teste mal

# The public facing domain name used to access grafana from a browser
domain = localhost
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 16 Januar 2020, 18:53:39
Zitat von: andies am 16 Januar 2020, 14:55:00
Ich musste mein ganzes System (RPi, FHEM etc.) komplett neu aufsetzen, weil meine Karte defekt war. Backup/restore war noch das einfachste, jetzt kämpfe ich uA mit grafana (und auch mit MQTT2, vielleicht spielt das eine Rolle?)
Wenn du sowieso schon alles neu machst, hast du mal Docker überlegt? Nimmt viele Abhängigkeiten da jede Anwendung einfach ein Container ist. Nur mal am Rande, ist hier aber OT.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 16 Januar 2020, 19:33:22
Zitat von: kadettilac89 am 16 Januar 2020, 18:53:39
Wenn du sowieso schon alles neu machst, hast du mal Docker überlegt? Nimmt viele Abhängigkeiten da jede Anwendung einfach ein Container ist. Nur mal am Rande, ist hier aber OT.
Hatte ich. Mein Problem ist: Ich habe heute den ganzen Tag mit einer Installation zugebracht, die ich eigentlich kannte und die in wenigen Stunden gehen sollte. Nichts geht und ich kapiere auch nichts. In docker müsste ich mich einarbeiten und das heißt: Noch mehr Zeit aufwenden. Das kann ich gerade nicht, zumal die Familie langsam amok läuft.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 16 Januar 2020, 19:36:46
Zitat von: kadettilac89 am 16 Januar 2020, 18:45:16
was meinst du damit, du siehst den Grafana-Screen aber kein Login, oder es wird überhaupt nichts angezeigt und irgendwann kommt ein Timeout?
Sieht so aus wie im Anhang.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 17 Januar 2020, 10:29:17
Zitat von: andies am 16 Januar 2020, 19:36:46
Sieht so aus wie im Anhang.

wie hast du installiert? Ich habe schon eine Weile kein Raspberry mehr, aber früher war die Version in den normalen Debian Distri stark veraltet und hatte das Symptom (sprich Installation über apt-get install ***).  Prüfe ob du die aktuelleste Version installier hast.

Welche Version hast du, die aktuelle ist ca. 6.5* (* irgend was).
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 17 Januar 2020, 18:29:23
Zitat von: andies am 16 Januar 2020, 19:36:46
Sieht so aus wie im Anhang.

habe es mal in einem Container installiert. Läuft mit deiner Granfaa.ini (hab nur die DB auf sqlite3 genändert da ich keine MySQL laufen habe). Vermutlich liegts an der Version


root@testgrafana:/docker/docker_files# cat /usr/share/grafana/VERSION
6.5.3

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 17 Januar 2020, 20:09:19
Alles klar, danke. Ich hatte diese Version von der Grafana-Webseite geholt, aber momentan tauchen ganz grundlegende Probleme bei der Installation auf. Wenn ich die im Griff habe, kann ich mir das genauer anschauen. Danke!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 18 Januar 2020, 11:07:51
verstehe ... nun ist ein guter Zeitpunkt deine Familie davon zu überzeugen die Installation auf einen Intel Nuc zu ziehen :)

in Verbindung mit Proxmox und Container / Docker ist Backup und Recovery easy. Selbst bei Hardwaredefekt Proxmox in eine VMWare und Backup einspielen. Gebrauchte Nuc gibts für 100 in der Bucht.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Mitch am 23 Januar 2020, 20:23:32
Hab mir jetzt auch Grafana installiert. kenne das schon beruflich.

Was ich aber einfach nicht hinbekomme, ist die Einbindung in FHEM  >:(
Ich hole mir im Dashboard unter Share den Embed den iframe Link:

(https://lh3.googleusercontent.com/EJwJXVWbXLS2F7dXt0It2-fYePKCMmR5Rhsl41BiDzl_ivDUkiWY2f1D9BcZ9MAb3WXUPElHyDZFIlLUo9HLW3ZCFtUZQdreqpK5IM02ew_LNtJESX3D-lbFrAfsz0EFE3YQM_WVS7zHPLq1PflXYYqxcoACjMvTXb3syRgij6TwNroAL4lS7xg8U8gzg_EsMgaP29GWBpEl8lldCwG5DPe9Tw2_w1FuQDvTdM-9dkz6PjJNAWTj1uzArLbgkdZi8o7qTzh-m5KDRvYq80L5Drl48jJQtfGbKFxSGxqlo2VyWORMzVHG1gF7hu6RCH0Ge2djDXAK28xQW-EJLoem0dXOc4Bf9pDADmIfwrWEjwHIXqyQHNypLC9tfd6WeF0ZPn40uzouPxZmiiIfhsirBsP29hxluZavnifXF9I7Wc1BViuU1N--UFaayN_c3_6n3G2RWS_g1-3HtHPOFRSObT3qOcdcr_vhPdY_ZFRKfntM_utMUZ6nqf7b3aEmyR_CZiTmhoHDFTtkX72XUz3zSac3HS5SnQYcOQ8i_FvMguvHPFhMiVAiFsgBa31PBh33s06mu4Dovp8kGrBvshUfcpiH_q4tCuVhXCeo-Gh29op2Xm6tVOwD9x-eCuajqd55LX85ve8m1uF65gAs78l2gnWtPXS5ny04DIOykiffWWEncC7_CJDYSSE0I-ldCKU6Fs1QlO1ogoD-8TBw-nBiw49z-7L5EgU-6UMM-ZB2B24CWdk-RQ=w1494-h954-no)


und definiere win weblink device:

Internals:
   CFGFN     
   DEF        iframe http://x.x.x.x:3000/d-solo/WC01NCPZk/go-echarger?orgId=1&from=1579633450884&to=1579806250885&panelId=2
   FUUID      5e29ee67-f33f-5738-2195-b78719b1d7e3065b
   LINK       http://x.x.x.x:3000/d-solo/WC01NCPZk/go-echarger?orgId=1&from=1579633450884&to=1579806250885&panelId=2
   NAME       GrafanaTest
   NR         24456
   STATE      initialized
   TYPE       weblink
   WLTYPE     iframe
   helper:
     bm:
       weblink_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        23.01. 20:05:11
         max        9.79900360107422e-05
         tot        9.79900360107422e-05
         mAr:
           HASH(0x1a4d5de8)
           GrafanaTest weblink iframe http://x.x.x.x:3000/d-solo/WC01NCPZk/go-echarger?orgId=1&from=1579633450884&to=1579806250885&panelId=2
Attributes:
   htmlattr   width="450" height="200" frameborder="0"


Leider kommt nichts an, also einfach leer?!  :'(

(https://lh3.googleusercontent.com/ZA8kyI97XFwoLZB0cfE-7BbsgcW1zj76RztKQ3vdfCyFHZueOWqkkUn7upjG5o43mo-QqenrJXtDWrO_DpO-R1-LUPeKwEnGScIEOYrR9O6wFOJGS20vi6Je2AY9Xu62CCzE_Jc6bq7Jzrsy84suaz5QEI9cpiUdG9Vnz1c982kB1QgSenavfE5VhhWMi3PeoTt4BBe4Fias3F4Uw4BvjOZIiKE591y9Lnf6tqmuIeACer8MGw6nV39XtNFKrb45gfdDAYAmX4kapTdZzuTozNFXe4MxGe-w2d4mwa1QS_NPcbQkU93huQK4UjqL3XHVm2TV8P40nEt2zmeWD01wPo4S_BVPD4eawRGIoXKYoSlprMHOYaKeksdQQsFXbxtwbxyOz6Gy6RgrbYYj04hJvBu_VaYab6bH46OGXEXE-HUgwZ01LqjRZSip-pS09e9YeTDYnV6Z5SOvAsZczokUIEWAf774Z8tXtjrg-XZbZUxPyU3dvcmu_PMO6IgO6po8QtbB0eR92d5KUxQkUMqujwtchevNUdi0XatYNZxWZBqQPAbuFBH--tuipNmLWvNEiu9A8VIRN3Xy3oOseqGqH-DQdE7ErRP6A0iQCpb6kUG2n2RPuCP_91LKV3AoWNQzBDbF9NH5yaYsZzDoyr8bizUPkDpifN7MAZLWXlU8sisP-WDZRW_nBaAtG0RX9J4XtBenqC_9DvnoGRiZgfXnV2uIZ_w6g-QfkJB50Zvx2jACWgUmqw=w1578-h658-no)

EDIT: wieso geht der IMG Tag nicht??
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 23 Januar 2020, 21:27:28
grafana.ini

[security]
allow_embedding = true
cookie_samesite = none
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Mitch am 23 Januar 2020, 22:02:55
Danke,allow_embedding hatte ich, cookie_samesite nicht.
Leider keine Änderung  :'(

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 23 Januar 2020, 22:11:00
alles neu gestartet? Link in verschiedenen Browser geprüft? I h sehe keinen Fehler.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Mitch am 23 Januar 2020, 22:13:46
Klar, Grafana neu gestartet, verschiedene Browser, geht alles nicht.

Gebe ich den Link direkt ein, geht es. Nur eben nicht als weblink in FHEM.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 24 Januar 2020, 04:41:19
vielleicht  https://forum.fhem.de/index.php/topic,93036.0.html (https://forum.fhem.de/index.php/topic,93036.0.html)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: FHEM-User22 am 24 Januar 2020, 09:04:31
Moin,
mir geht es genau so wie Mitch, und ich finde auch keine Lösung.

Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Mitch am 24 Januar 2020, 11:48:32
Zitat von: andies am 24 Januar 2020, 04:41:19
vielleicht  https://forum.fhem.de/index.php/topic,93036.0.html (https://forum.fhem.de/index.php/topic,93036.0.html)

Tausend Dank, genau das war das Problem!
Jetzt gehts und sieht genial aus. Vor allem die Max-, Min- und Mittelwerte (siehe Anhang)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: FHEM-User22 am 24 Januar 2020, 17:35:42
Zitat von: Mitch am 24 Januar 2020, 11:48:32
Tausend Dank, genau das war das Problem!
Jetzt gehts und sieht genial aus. Vor allem die Max-, Min- und Mittelwerte (siehe Anhang)

Schön für Dich
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Mitch am 24 Januar 2020, 17:41:40
Zitat von: FHEM-User22 am 24 Januar 2020, 17:35:42
Schön für Dich

und was hast du jetzt genau für ein Problem mit mir??!!  :o
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 12 Februar 2020, 16:18:51
Hallo mal ne blöde frage zu Grafana, ich bekomme die Werte in einen Graph rein, nur kann ich irgendwie den Text für die einzelnen Serien niergends ändern.

im SQL habe ich ein READING as metric drinnen, und genau das READING Wird mir nun als Text angezeigt ... ist aber leider teils nicht wirklich aussagekräftig.

Gibt es da eine andere Möglichkeit als das ins SQL einzubauen?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 12 Februar 2020, 17:22:57
Zitat von: sn0000py am 12 Februar 2020, 16:18:51
Hallo mal ne blöde frage zu Grafana, ich bekomme die Werte in einen Graph rein, nur kann ich irgendwie den Text für die einzelnen Serien niergends ändern.

im SQL habe ich ein READING as metric drinnen, und genau das READING Wird mir nun als Text angezeigt ... ist aber leider teils nicht wirklich aussagekräftig.

Gibt es da eine andere Möglichkeit als das ins SQL einzubauen?
Was hast du aktuell und was stellst du dir vor. Bitte etwas mehr input. Vermutlich musst du im SELECT nur ein alias für die Spalte setzen.

Gesendet von meinem SM-G960F mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 12 Februar 2020, 18:25:53
ich habe das select so

SELECT
  TIMESTAMP,
  READING as metric,
CONVERT(VALUE, DOUBLE) as value
FROM history WHERE $__timeFilter( TIMESTAMP ) AND (
(DEVICE="PV_Stromzaehler" AND READING="Power_total__W")
OR (DEVICE="PV_Fronius_Basis" AND READING="Power_Site__W")
OR (DEVICE="PV_Stromzaehler" AND READING="Energy_Summe")
)


nun bekomme ich da dann 3 Serien mit eben Power_total__W, Power_Site__W und Energy_Summe

Diese möchte ich gerne im Dashboard anders betitelt haben
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 12 Februar 2020, 18:45:38
@sn0000py

Zitat von: Gunther am 17 November 2019, 19:57:31
Ich habe nun 2 Readings in einem Graphen. Einmal % und einmal °C.

Den 2. habe ich so aufgebaut:
SELECT
  UNIX_TIMESTAMP(`TIMESTAMP`) as time_sec,
  CAST(`VALUE` AS DECIMAL(10, 6)) as value,
  'Temperstur Vorlauf Kamin' as metric
FROM `history`
WHERE $__timeFilter(`TIMESTAMP`) AND `DEVICE` = 'VBUSDEV_7321' AND `READING` = 'temperature_T03'
ORDER BY `TIMESTAMP` ASC


Sieht so aus wie im Anhang

Wie bekomme ich rechts auf der y-Achse und in der Legende °C abgebildet?
Schau dir das an ... du musst dein SELECT in 3 einzelne auftrennen und hinter value den alias schreiben. Syntax siehe mein zitat

Gesendet von meinem SM-G960F mit Tapatalk
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 12 Februar 2020, 19:13:39
ja so würde es gehen, ist aber schade wenn ich nun 3 einzelne SELECTs machen muss da es auch langsamer sein wird und auf jeden Fall unübersichtlicher usw.

ist halt komisch das man das nicht einstellen kann.

Auch habe ich nix gefunden wo ich das Datumsformat für den Hint einstellen kann ist immer amerikanisch :O
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 12 Februar 2020, 20:56:35
Zitat von: sn0000py am 12 Februar 2020, 19:13:39
ja so würde es gehen, ist aber schade wenn ich nun 3 einzelne SELECTs machen muss da es auch langsamer sein wird und auf jeden Fall unübersichtlicher usw.
Geschwindigkeit: darum nutze ich für Grafana InfluxDB. MySql sehe ich als Workaround mit allen Einschränkungen. Wobei ich nicht glaube, dass ein Select mit OR verknüpft merklich schneller ist als einzelne Statement in dem über den SChlüssel gelesen wird.
Unübersichtlich: ich finde SQL-Statements mit OR verknüpft unübersichtlich. Mit 3 separaten Selects weißt du genau was du erwartest. Wenn es einmal konfiguriert ist schaust du es sowieso nicht mehr an. Geschmackssache

Zitat von: sn0000py am 12 Februar 2020, 19:13:39
ist halt komisch das man das nicht einstellen kann.
komisch ist egal solange das Ziel erfüllt wird. Du brauchst halt eine Datenreihe mit Alias. Alternativ kannst auch Userreadings erzeugen und diese so bennenen wie du diese im Plot haben willst. Name aus dem Readingsname oder Alias im SQL-Statement, mehr Möglichkeinten fallen mir nicht ein.

Zitat von: sn0000py am 12 Februar 2020, 19:13:39
Auch habe ich nix gefunden wo ich das Datumsformat für den Hint einstellen kann ist immer amerikanisch :O
Ging früher nicht, waren etliche Anfragen im Grafana Github jedoch vor einem Jahr nicht umgesetzt. Am besten googlen .. vermutlich gehts immer noch nicht.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 13 Februar 2020, 09:05:18
Okay danke für die infos :D

Dann gleich mal zwei fragen ;)

1.) Wenn ich auf diese InfluxDB umsteigen, schaffe ich es da meine alt Daten zu übernehmen?
2.) Wenn das Grafana nicht oder sehr schelcht gewartet wird, ist es dann überhaupt wert da drauf umzusteigen? -So was wie ein eintellbares Datumsformat sollte normalerweise ja kein Problem sein, und für eine ChartSoftware unterster Standard normalerweise?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 13 Februar 2020, 10:06:20
weiss jemand auch wie man mit grafana einen delta graph bekommt?

Ich habe den Verbrauch von einem Gerät, aber das ist halt einfach ein steigender Wert ... da möchte ich gerne auf einen stunden oder viertelstunde verbrauch zurückrechnen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 13 Februar 2020, 14:17:17
Zitat von: sn0000py am 13 Februar 2020, 09:05:18
Okay danke für die infos :D

Dann gleich mal zwei fragen ;)

1.) Wenn ich auf diese InfluxDB umsteigen, schaffe ich es da meine alt Daten zu übernehmen?
2.) Wenn das Grafana nicht oder sehr schelcht gewartet wird, ist es dann überhaupt wert da drauf umzusteigen? -So was wie ein eintellbares Datumsformat sollte normalerweise ja kein Problem sein, und für eine ChartSoftware unterster Standard normalerweise?
1) ich weiß nicht wie fit du bist ... "man" kann es machen ... habe dazu mal ein Script geschrieben und für andere bereiet gestellt ...
https://forum.fhem.de/index.php/topic,71551.msg838940.html#msg838940 ...

2) das ist definitiv nicht der fall .... grafana wird sehr stark und schnell gewartet. für docker gibt es sehr häufig neue releases. deutsches datumsformat hat halt geringe prio
es gibt dinge die auch mir nicht gefallen aber man kann es ja mal testen ...

Zitat von: sn0000py am 13 Februar 2020, 10:06:20
weiss jemand auch wie man mit grafana einen delta graph bekommt?

Ich habe den Verbrauch von einem Gerät, aber das ist halt einfach ein steigender Wert ... da möchte ich gerne auf einen stunden oder viertelstunde verbrauch zurückrechnen
in sql wird das komplex. versucht mal das statistic oder history modul in fhem oder per userreading und schreibe dir damit minutenwerte ....


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 13 Februar 2020, 22:55:21
Zitat von: sn0000py am 13 Februar 2020, 10:06:20
weiss jemand auch wie man mit grafana einen delta graph bekommt?

Ich habe den Verbrauch von einem Gerät, aber das ist halt einfach ein steigender Wert ... da möchte ich gerne auf einen stunden oder viertelstunde verbrauch zurückrechnen

So in etwa? Sowas ist mit SQL schon ein bissel knifflig, aber geht :-)

SELECT
  TIMESTAMP(CONCAT(YEAR(MIN(rawValues.ts)), '-', IF(MONTH(MIN(rawValues.ts)) < 10, CONCAT('0',MONTH(MIN(rawValues.ts))), MONTH(MIN(rawValues.ts))), '-01 00:00:00')) AS time,
  SUM(rawValues.valueDiff) *(0.24/1000) as value,
  "Stromverbrauch Luftentfeuchter" as metric
FROM (SELECT
       TIMESTAMP as ts,
       ROUND(if((@old > -1) AND (h1.VALUE - @old) > 0,h1.VALUE - @old, 0),2) AS valueDiff,
       @old := h1.VALUE+0 as lastValue
     FROM history h1, ( SELECT @old:=-1) AS var
     WHERE h1.READING="energy" AND h1.DEVICE = "bg.entfeuchter" AND $__timeFilter(TIMESTAMP)
     ORDER BY ts ASC)
       as rawValues
GROUP BY MONTH(rawValues.ts), YEAR(rawValues.ts)
ORDER BY 1


Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 14 Februar 2020, 09:21:50
ok super danke, scheint zu funktionieren, wobei ich auch noch stunden langen begutachten keine Ahnung habe was das tun soll :P
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 14 Februar 2020, 10:19:53
Zitat von: peterk_de am 13 Februar 2020, 22:55:21
Sowas ist mit SQL schon ein bissel knifflig, aber geht :-)
Hast Du einen Link, wo man sich so was mal selber beibringen kann?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 14 Februar 2020, 10:48:56
OK dann mal ein kurzes Tutorial, wie ich so eine Anfrage konstruiere.

Zuerst holt man sich alle Verbrauchswerte im gewünschten Zeitbereich (über die Grafana-Funktion $__timeFilter(TIMESTAMP)), sortiert nach der Zeit:

SELECT
     TIMESTAMP as ts,
     VALUE as value,
     FROM history h1
     WHERE h1.READING="energy" AND h1.DEVICE = "bg.entfeuchter" AND $__timeFilter(TIMESTAMP)
     ORDER BY ts ASC


Das wäre dann so eine Tabelle:

ts               |  VALUE
2019-02-11 11:00 |  30002
2019-02-11 11:01 |  30008
2019-02-11 11:02 |  30015
2019-02-11 11:03 |  30027


Allerdings wollen wir ja nicht die jeweiligen absoluten Verbrauchswerte, sondern den Verbrauch in einer bestimmten Zeiteinheit. Um den ausrechnen zu können, erstellen wir stattdessen eine Tabelle, die für jeden Timestamp ausrechnet, wieviel im Vergleich zum letzten Zeitpunkt hinzugekommen ist, also die Differenz zur vorherigen Zeile in der Tabelle:

SELECT
       TIMESTAMP as ts,
       ROUND(if((@old > -1) AND (h1.VALUE - @old) > 0,h1.VALUE - @old, 0),2) AS valueDiff,
       @old := h1.VALUE+0 as lastValue
     FROM history h1, ( SELECT @old:=-1) AS var
     WHERE h1.READING="energy" AND h1.DEVICE = "bg.entfeuchter" AND $__timeFilter(TIMESTAMP)
     ORDER BY ts ASC


Hier nutze ich eine SQL-Variable "@old". Diese wird mit -1 initialisiert (über SELECT @old:=-1) und enthält dann für jeden Zeile immer den vorherigen Zählerstand (also den Wert aus der Zeile darüber), so dass man über eine einfache Subtraktion h1.VALUE - @old die Differenz zur aktuellen Zeile bilden kann. Das gibt dann (zur Veranschaulichung leicht vereinfacht) so eine Tabelle:

ts               |  VALUE | @old  | valueDiff
2019-02-11 11:00 |  30002 | -1    | 0*
2019-02-11 11:01 |  30008 | 30002 | 6
2019-02-11 11:02 |  30015 | 30008 | 7
2019-02-11 11:03 |  30027 | 30015 | 12


Die 0 für die erste Zeile besorgt uns dabei das if im SELECT-TEIL: if((@old > -1) ... ,h1.VALUE - @old, 0) Hier wird über AND (h1.VALUE - @old) > 0 auch sichergestellt, dass Sprünge im Zähler (Reset des Energy-Counters auf 0) ignoriert werden.

So, was jetzt noch fehlt ist das Zeitslot-weise Aufsummieren dieser Einzeldifferenzen. Dazu packen wir unsere Abfrage als "Unterabfrage" in einen "Wrapper":

SELECT
  rawValues.ts AS time,
  SUM(rawValues.valueDiff) as value,
  "Stromverbrauch" as metric
FROM ( .... unsere Tabelle mit den Einzeldifferenzen .... )
       as rawValues
GROUP BY MONTH(rawValues.ts), YEAR(rawValues.ts)


Hierzu bitte bei Bedarf die Aggregationsfunktionen von SQL einmal nachschlagen (Group by / SUM etc).

Bleibt noch, Grafana dazu zu bringen, die Balken mittig in den jeweiligen Zeitraum zu setzen. Dazu wird rawValues.ts AS time, ersetzt durch das etwas sperrige Konstrukt:

TIMESTAMP(CONCAT(YEAR(MIN(rawValues.ts)), '-', IF(MONTH(MIN(rawValues.ts)) < 10, CONCAT('0',MONTH(MIN(rawValues.ts))), MONTH(MIN(rawValues.ts))), '-01 00:00:00')) AS time,

Und alles zusammen:

SELECT
  TIMESTAMP(CONCAT(YEAR(MIN(rawValues.ts)), '-', IF(MONTH(MIN(rawValues.ts)) < 10, CONCAT('0',MONTH(MIN(rawValues.ts))), MONTH(MIN(rawValues.ts))), '-01 00:00:00')) AS time,
  SUM(rawValues.valueDiff) *(0.24/1000) as value,
  "Stromverbrauch Luftentfeuchter" as metric
FROM (SELECT
       TIMESTAMP as ts,
       ROUND(if((@old > -1) AND (h1.VALUE - @old) > 0,h1.VALUE - @old, 0),2) AS valueDiff,
       @old := h1.VALUE+0 as lastValue
     FROM history h1, ( SELECT @old:=-1) AS var
     WHERE h1.READING="energy" AND h1.DEVICE = "bg.entfeuchter" AND $__timeFilter(TIMESTAMP)
     ORDER BY ts ASC)
       as rawValues
GROUP BY MONTH(rawValues.ts), YEAR(rawValues.ts)
ORDER BY 1


So ... als Übung kannst du das jetzt auf stundenweise abändern ;-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 14 Februar 2020, 10:53:45
Zitat von: peterk_de am 13 Februar 2020, 22:55:21
So in etwa? Sowas ist mit SQL schon ein bissel knifflig, aber geht :-)

SELECT
  TIMESTAMP(CONCAT(YEAR(MIN(rawValues.ts)), '-', IF(MONTH(MIN(rawValues.ts)) < 10, CONCAT('0',MONTH(MIN(rawValues.ts))), MONTH(MIN(rawValues.ts))), '-01 00:00:00')) AS time,
  SUM(rawValues.valueDiff) *(0.24/1000) as value,
  "Stromverbrauch Luftentfeuchter" as metric
FROM (SELECT
       TIMESTAMP as ts,
       ROUND(if((@old > -1) AND (h1.VALUE - @old) > 0,h1.VALUE - @old, 0),2) AS valueDiff,
       @old := h1.VALUE+0 as lastValue
     FROM history h1, ( SELECT @old:=-1) AS var
     WHERE h1.READING="energy" AND h1.DEVICE = "bg.entfeuchter" AND $__timeFilter(TIMESTAMP)
     ORDER BY ts ASC)
       as rawValues
GROUP BY MONTH(rawValues.ts), YEAR(rawValues.ts)
ORDER BY 1


zwei fragen hätte ich, wie kommst du beim SUM(rawValues.valueDiff) *(0.24/1000) as value, auf das *0,24*1000 ?
und zweites wäre es in dem Fall nicht noch performanter im inneren SQL noch mal zuerst nach Jahr/Monat zu gruppieren und den MAX(VALUE) verwenden.

Für den Fall das der Zähler nur aufsteigend ist?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 14 Februar 2020, 11:01:43
Oh das habe ich vergessen zu erläutern:

Das ist die Umrechnung von Wattstunden nach Strompreis ;-)

Und ja, performancemäßig ist es tatsächlich besser, erst zu Gruppieren und dann mit Max und Min zu rechnen. Dafür hätte ich aber für jedes Device, wo ich das machen will, ein zusätzliches monotonic Userreading in FHEM erstellen müssen - eben weil sonst Resets des Zählers falsch behandelt werden. Das wollte ich mir sparen bzw. war quasi unmöglich, da ich meine DB schon seit mehreren Jahren befüllt hatte, bevor ich Grafana gefunden habe :-)

Und so lahm ist das wirklich nicht, im Gegenteil, auf meiner NUC ist die Anfrage in wenigen Millisekunden durch bei > 30M Zeilen in der DB und > 100K betroffenen Zeilen pro Anfrage. Wenn das lahm sein sollte, checkt mal die Indizes.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 14 Februar 2020, 15:25:51
hhahahah okay ja im bild hätte man es erkennen können das du da euro hast.... ja dann ist logisch und habs nun verstanden :D

nein performance mässig passts im moment eh bei mir da gibts nicht zu bemängeln :D
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: tatu123 am 14 März 2020, 15:25:55
Hallo zusammen,

ich versuche mich gerade an Grafana. So weit so gut. Ich habe jetzt schon mehrere Kurven eingerichtet. Was ich nur nicht hin bekomme das die Kurven nicht 1 Stunde versetzt sind und bis zur aktuellen Zeit angezeigt werden. Ich denke das kommt von meiner localtime (CET) und der Grafanatime (UTC). Auch das Einstellen von "local brower time" ändert das nicht.

Ich benutze
Grafana (v 6.6.2) und Mysql (v. 5.7) im docker. Beide haben localtime CET. Im phpmyadmin sehe ich das die Daten mit korrektem Timestamp in der Datenbank sind. Im gplot im fhem sehe ich die Kurve korrekt dargestellt. Im Grafana +1h in der Darstellung mit z.B.


SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, DECIMAL) as value,
  'Solar-Erzeugung' as metric
FROM `history`
WHERE $__timeFilter(TIMESTAMP) and DEVICE = "shelly1pm_solar" and READING = "relay_0_power"
ORDER BY TIMESTAMP ASC


Jetzt kann ich mit


SELECT
  (CONVERT_TZ(TIMESTAMP,'+01:00', '+00:00')) as time_sec,
  CONVERT(VALUE, DECIMAL) as value,
  'Solar-Erzeugung' as metric
FROM `history`
WHERE $__timeFilter(TIMESTAMP) and DEVICE = "shelly1pm_solar" and READING = "relay_0_power"
ORDER BY TIMESTAMP ASC


die Kurve in der Zeit richtig "stellen" aber dann fehlt mir am Ende der Kurve die letzte Stunde.

Wie macht ihr das ?

Heiko
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: rcmcronny am 14 März 2020, 17:14:08
Hoi,

bei mir sehen die Abfragen so aus:


SELECT
UNIX_TIMESTAMP(DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s')) as time_sec,
    CAST(VALUE AS DECIMAL(10,2)) as value,
    'Wohnzimmer' as 'metric'
  FROM history
  WHERE READING="Wohnzimmer" AND DEVICE="ESPEasy_ESP_1WireGw1" AND $__timeFilter(TIMESTAMP)
  ORDER BY time_sec ASC
[code]

Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: tatu123 am 14 März 2020, 19:12:57
Ja hatte ich auch schon probiert. Hat bei mir auch eine Stunde Zeitverschiebung. Bei Dir nicht ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: rcmcronny am 14 März 2020, 19:35:07
Hi,

nö, ist bei mir aktuell, wie es sein soll.

Ronny
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: volschin am 14 März 2020, 20:54:34
Es bringt überhaupt nichts, wenn Du am Select schraubst, Du musst am timestamp der Where Clause anpassen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: tatu123 am 15 März 2020, 17:35:52
Na klar manchmal sieht man den Wald vor lauter Bäumen nicht. Danke für den Hinweis.
Jetzt habe ich eine Lösung.


SELECT
  (CONVERT_TZ(TIMESTAMP,'+01:00', '+00:00'))  as time_sec,
  CONVERT(VALUE, DECIMAL) as value,
  'Solar-Erzeugung' as metric
FROM `history`
WHERE $__timeTo(timestamp + 1h) and DEVICE = "shelly1pm_solar" and READING = "relay_0_power"
ORDER BY TIMESTAMP ASC


So gehts. Nicht schön aber tut.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 23 März 2020, 14:57:29
Hallo Zusammen, kann es sein dass die Render Funktion in Grafana der Dashboards für die iframes nicht mehr existiert?

http://192.168.1.124:3000/render/dashboard-solo/db/garage-ost?orgId=1&from=now-7d&to=now&panelId=1&width=750&height=300&tz=UTC%2B02%3A00

Rendering failed - PhantomJS isn't included in arm build per default

Grafana v6.4.4

Danke.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Gunther am 02 April 2020, 00:22:15
Ich habe auch das Zeitzonenproblem und suche Hilfe.

Installation:
Intel Nuc mit Proxmox: Zeiteinstellung:
Zeitzone Europe/Berlin (CEST +2) - passt mit der aktuellen Zeit

Ubuntu Container mit Grafana:
Zeitzone Europe/Berlin (CEST +2) - passt mit der aktuellen Zeit

Ubuntu Container mit MySQL:
Zeitzone Europe/Berlin (CEST +2) - passt mit der aktuellen Zeit

Client:
Macbook: Mitteleuropäische Sommerzeit - passt mit der aktuellen Zeit

Chrome-Browser auf meinem Client - passt mit der aktuellen Zeit
Suchergebnisse
Ortszeit
23:55
Mittwoch, 1. April 2020
Central European Summer Time (CEST)


in Grafana:
a) wenn ich Browsertinme einstelle:
Grafana zeigt aktuell Werte an, die in der DB vor zwei Stunden aufgezeichnet wurden

b) wenn ich UTC anstelle, zeigt mir Grafana die Werte von vor 2 Stunden an (hier passt der Zeitstempel dann mit meiner DB)

Wie bekomme ich die aktuellen Werte angezeigt?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Gunther am 02 April 2020, 14:10:01
Ich denke, ich habe eine Lösung gefunden:

Grafana auf "Local Browser Time" und in der Abfrage folgendes:
SELECT
  CONVERT_TZ(`TIMESTAMP`, '+02:00','+00:00') as time_sec,
  CAST(`VALUE` AS DECIMAL(10, 6)) as value,
  'Temperatur' as metric
FROM `history`
WHERE `DEVICE` = 'kg_sk_Stromzaehler_IEC_01' AND `READING` = 'power' AND
  CONVERT_TZ(`TIMESTAMP`, '+02:00','+00:00') > $__timeFrom() AND
  CONVERT_TZ(`TIMESTAMP`, '+02:00','+00:00') <= $__timeTo()
ORDER BY `TIMESTAMP` ASC


Nicht schön, aber geht...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 03 April 2020, 12:06:58
Hallo,
ich habe den Versuch zum ausdünnen aus Seite 1 versucht aber es kommt immer die Fehlermeldung:
Error 1054: Unknown column '1m' in 'group statement'
Ich komme einfach nicht dahinter. Ausserdem müsste im Group Statement nicht das 2. 'h' durch 't' ersetzt werden ???

Mein Code (von Seite 1 kopiert und nur Reading und Device geändert:
SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  AVG(CONVERT(VALUE, DOUBLE)) as value,
  "Geglättet" as metric
FROM history
WHERE READING="temperature" AND DEVICE="d_GarageWestDHT22" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV CASE RIGHT($__interval, 1) 
                                          WHEN 's' THEN $__interval
                                          WHEN 'm' THEN $__interval * 60
                                          WHEN 'h' THEN $__interval * 3600
                                          WHEN 'h' THEN $__interval * 86400
                                          ELSE $__interval
                                        END




Danke!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: SirMarco am 19 April 2020, 14:03:39
Zitat von: Steffen@Home am 18 November 2019, 07:24:03
Hallo,
habe 2 Fragen an Euch...

  • das letzte passende Release für Grafana ist das 5.1.4 aus dem fg2it End of Life Repository ?
  • Kann man die X-Achse irgendwie formatieren (dd mm yyyy) auf z.B. 18. Nov statt 11/18 usw?

Danke und Gruß

Hi Steffen

Konntest du das Problem mit dem Datumsformat lösen?
Danke

Grüsse

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: peterk_de am 19 April 2020, 17:44:44
Zitat von: SirMarco am 19 April 2020, 14:03:39
Hi Steffen

Konntest du das Problem mit dem Datumsformat lösen?
Danke

Grüsse

Das ist momentan nicht lösbar - siehe https://github.com/grafana/grafana/issues/1459 - und das bleibt es wohl auch, bis es irgendjemand mal eingebaut hat ;)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Aim23 am 22 April 2020, 20:27:09
Seit über 5 Jahren ein Ding der Unmöglichkeit. Die Amis können einfach nicht über den Tellerrand schauen!

Gesendet von meinem STF-L09 mit Tapatalk

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 05 Juli 2020, 21:06:00
Zitat von: Steffen@Home am 23 März 2020, 14:57:29
Hallo Zusammen, kann es sein dass die Render Funktion in Grafana der Dashboards für die iframes nicht mehr existiert?
Angeblich gibt es bei Version 7 ein neues Plugin, mit dem anders gerendert wird, siehe https://grafana.com/blog/2020/05/07/grafana-7.0-preview-new-image-renderer-plugin-to-replace-phantomjs/ (https://grafana.com/blog/2020/05/07/grafana-7.0-preview-new-image-renderer-plugin-to-replace-phantomjs/). Das bisherige Rendern war nervig, weil es wegen Blockierung außerhalb von FHEM erfolgen musste. Leider verstehe ich nicht, wie die neue Fassung funktioniert. Hat das jemand hinbekommen?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 07 August 2020, 15:54:03
Hallo zusammen,

ich würde gerne eine Wetterprognose mittels Grafana abbilden. Es ist auch schon mehr oder weniger so wie ich es gern hätte.
Screenshot habe ich angehangen.

Ein paar Dinge bekomme ich leider noch nicht hin. Ich hoffe Ihr habt ein paar Tips für mich.

Ich stelle den Temperaturverlauf (min/max) mittels "Line" dar. (Y-Achse links)
Die Niederschlagsmenge dann als Balken für jeden Tag. (Y-Achse rechts)
Die Sonnenstunden würde ich gerne ebenfalls als Balken mit in das Diagramm packen. Damit das ganze übersichtlich bleibt, habe ich folgende Ideen, welche ich bisher jedoch leider nicht vollständig umsetzen konnte:

Vielen Dank schon mal & viele Grüße

Guido
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 07 August 2020, 18:24:49
Zitat von: GU!DO am 07 August 2020, 15:54:03

  • Die erste Idee war die Sonnenstunden (organge), genau wie auch den Niederschlag (Blau) als Balken von der X Achse aufsteigen zu lassen. Soweit ich bisher gelesen habe, gibt es keine Funktion, die den jeweils "kleinern" Balken nach vorn stellt, damit er nicht verdeckt wird - richtig?!? 
  • Als Workarround habe ich die Werte der Sonnenstunden umgekehrt. Nun laufen die Werte von oben in den Graph und sind so auf jeden Fall sichtbar.
  • Es wäre jedoch schön, wenn die Summe der Sonnenstunden eingeblendet werden könnten. Da beide Y Achsen belegt und Werte innerhalb der Balken anscheinend nicht vorgesehen sind, habe ich versucht die Werte auf die "obere X Achse" zu bekommen, so wie bei der Bar-Gauge Ansicht. Das hat jedoch nicht geklappt. Es wäre klasse wenn jemand dazu eine Lösung weiß.
  • Nett wäre es auch wenn man die Linie glätten könnte. Dazu hab ich hier zwar was gefunden, das bekomme ich aber leider für meine wenigen Werte so nicht umgesetzt.

Vielen Dank schon mal & viele Grüße

Guido

1) richtig, nicht möglich.
Tipp: Du kannst die Balken transparenter machen, dann scheint der hintere Balken immer durch.
Tipp2: Du kannst mit Versatz etwas spielen, so dass der vordere und hintere Balken zeitlich etwas versetzt sind. Dann sieht man auch, dass "hinten" noch was ist. Musst suchen, entweder der Zeitreihe eine oder 2 Stunden addieren, oder mit Grafana Funktionen.
2) OK, war keine Frage
3) verstehe ich nicht, wenn du über dem Balken den Zahlenwert anzeigen willst - nein. Dafür ist die Y-Achse ... aber du sagst, die ist schon belegt?
4) nein, ... siehe Link ... nur durch zustätzliche Werte in der DB abbildbar

https://github.com/grafana/grafana/issues/15022 (https://github.com/grafana/grafana/issues/15022)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 08 August 2020, 04:36:52
Danke schön.
Ich hab einiges gelesen und muss sagen, dass es reichlich Anfragen zu Kleinigkeiten gibt die anscheinend stumpf ignoriert werden - schade!  Knowi scheint mehr zu können, scheidet als Cloudlösung für mich jedoch direkt aus...
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 08 August 2020, 10:10:16
Zitat von: GU!DO am 08 August 2020, 04:36:52
Ich hab einiges gelesen und muss sagen, dass es reichlich Anfragen zu Kleinigkeiten gibt die anscheinend stumpf ignoriert werden - schade!  Knowi scheint mehr zu können, scheidet als Cloudlösung für mich jedoch direkt aus...

man muss fair sein, es ist open source und hat dafür eine menge funktionen. beruflich nutze ich tableau, das ist eine andere liga, die eierlegende wollmilchsau aber kostet dafür und bedarf auch einiges an einarbeitung.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 09 August 2020, 14:57:21
Um Himmels Willen. Alles Gut. Ich wollte auch nicht meckern.

Es ist in jedem Fall ein tolles Projekt. Ich frage mich nur, warum bei der Vielfalt der teils komplexen Funktionen und Erweiterungen solche Kleinigkeiten auf der Strecke bleiben... Die fände ich z.B. wichtiger als einen Farbverlauf in der Kurve zu haben. Aber das ist ja, wie fast alles, Ansichtsache.

Wochentage unterhalb oder anstelle des Datums gehen anscheinend ebenfalls nicht - oder?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 10 August 2020, 09:53:42
Zitat von: GU!DO am 09 August 2020, 14:57:21
Wochentage unterhalb oder anstelle des Datums gehen anscheinend ebenfalls nicht - oder?

ich wüsste nicht wie das geht. Solange man nichtmal local date format unterstützt ... das wäre custom formatting. Ich bezweifle dass du das irgendwie hinkriegst. Vielleicht in späteren Versionen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 12 August 2020, 09:31:40
Sorry, ich muss leider nochmal etwas fragen:

Da ich die Werte oberhalb der Tabelle ja nicht anzeigen kann, würde ich gerne die tooltip Funktion nutzen. Jedoch werden die Werte dort nicht richtig angezeigt:

Einstellung:
Mode: All series
Sort order: decreasing (bei increasing ist es genau so)

Problem (wie auf den Bildern zu sehen):
Wenn ich die Maus von links nach rechts ziehe,  bekomme ich bis ca. 17.08. 12:00 Uhr die im 1. Screenshot angezeigten Werte, egal auf welchen Tag ich die Maus ziehe.
Wenn ich diesen Punkt überschreite bekomme ich die Werte aus dem 2. Screenshot und zwar gleichbleibend bis zum Ende des Graphen.

Habt Ihr dazu vielleicht eine Idee?

Ich hatte schon gegoogelt. Es gab wohl Probleme beim Gruppieren von Daten, das mache ich jedoch nicht.
Anbei mal eine meiner 4 Queries:

SELECT datum as time, niederschlag FROM WetterCom16 ORDER BY id DESC LIMIT 16;

Die anderen 3 sind bis auf das value feld identisch.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 12 August 2020, 11:04:28
Zitat von: GU!DO am 12 August 2020, 09:31:40

Habt Ihr dazu vielleicht eine Idee?

in den tooltip zeigt er entweder den Beginn oder das Ende des Plots an.

1) welche Version hast du, bei mir mit 7.2 funktioniert es in einem ähnlichen Dashboard
2) hast du "Transform" irgendwas eingestellt?
3) was hast du bei den Query Optionen eingestellt?

kannst du ggf. das Panel mal in ein eigenes Dashboard kopieren und den Sourcecode als json hier einstellen? Ich nutze zwar InfluxDB als Source aber vielleicht fällt was auf.

Nutzt du Grafana in Docker? Dann kannst dir auch mal zum Testen einen zusätzlichen Container mit einer älteren / neueren Version bauen ... könnte auch ein Bug in deiner aktuellen Version sein.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: antonwinden am 13 August 2020, 16:34:14
Hallo,
Ich weiß nicht ob sonst noch jemand das Problem hat aber bei mir werden bei manchen Geräten in Value wo eigentlich nur numerische Werte gespeichert sein sollten auch jeweils die Einheit dazu in der Datenbank gespeichert.
z.B.
Wetterstation
VANTAGEPRO2
Wind: 8.04 km/h
Wind
8.04 km/h
oder:
MQTT_DEVICE
KWH: 23117.40 kw/h
KWH
23117.40 kw/h

wie kann ich das vermeiden oder in Grafana so umwandeln damit das auch funktioniert?
gruß Anton
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 13 August 2020, 17:32:45
Hallo zusammen,
gibt es mittlerweile einen Docker Container mit einer fertigen Grafana Konfiguration?
Ich nutze DBLog mit einer MySQL Datenbank, die auch bereits in einem Container läuft.

Gruß
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 13 August 2020, 18:14:26
Zitat von: ch.eick am 13 August 2020, 17:32:45
Hallo zusammen,
gibt es mittlerweile einen Docker Container mit einer fertigen Grafana Konfiguration?
Ich nutze DBLog mit einer MySQL Datenbank, die auch bereits in einem Container läuft.

Gruß
    Christian
was meinst du mit fertigen Grafana Konfiguration? Docker gibt's s. u. ... Config musst du selber machen, ist ja bei jedem anders


https://hub.docker.com/r/grafana/grafana/
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 13 August 2020, 18:32:01
Zitat von: antonwinden am 13 August 2020, 16:34:14

Wetterstation
VANTAGEPRO2
Wind: 8.04 km/h
Wind
8.04 km/h
oder:
MQTT_DEVICE
KWH: 23117.40 kw/h
KWH
23117.40 kw/h

wie kann ich das vermeiden oder in Grafana so umwandeln damit das auch funktioniert?
gruß Anton


Was du machen könntest:
- Update machen wenn dein Fhem schon älter ist
- schreibe mal einen Post in "Automatisierung" und frag DS_Starter ob das ein Problem in DBLog sein könnte. Wenn nicht mal den Modulautor anschreiben. Du hast unterschiedliche Readings, es scheint als wäre das nicht auf ein einzelnes Modul beschränkt.

Als Workaround kannst du in den betroffenen Definitionen das Attribut "DbLogValueFn" setzen. Damit kannst du das Reading modifizieren bevor es in die DB geht. Würde die Datenbank bereinigen und nicht mit den Plots rummachen.

So könnte es funktionieren, habe es nicht getestet. Damit sollte nur der erste Teil vor dem Leerzeichen geloggt werden.

{
  if ($READING eq "Wind"){
    $VALUE = split(/ /,$VALUE))[0];
  }
}

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 13 August 2020, 20:01:27
Zitat von: kadettilac89 am 13 August 2020, 18:14:26
was meinst du mit fertigen Grafana Konfiguration? Docker gibt's s. u. ... Config musst du selber machen, ist ja bei jedem anders

https://hub.docker.com/r/grafana/grafana/

Ich hatte schon länger nicht mehr nach Grafana geschaut und da lief es noch nicht auf einem RPI im Docker Container.
Hab's gerade nach Deinem Link nochmal probiert und es läuft auf Anhieb. Ich konnte mich direkt anmelden.
Jetzt kann ich los lesen...
Vielen Dank
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 16 August 2020, 15:33:44
Hallo kadettilac89,

Danke für Deine schnelle Antwort und Sorry für meine Verspätung.

Was mir noch aufgefallen ist:
Da es sich ja immer um Tageswerte handelt, besteht mein Timestamp nur aus einem Datum. Aber das sollte, vermute ich mal, nicht dieses Phenomen auslösen - oder?

1) welche Version hast du, bei mir mit 7.2 funktioniert es in einem ähnlichen Dashboard
Ich habe aus dem Ubuntu Repo installiert: aktuell 7.1.1

2) hast du "Transform" irgendwas eingestellt?
Nee, da ist nix eingestellt.

3) was hast du bei den Query Optionen eingestellt?
Ich würde sagen, bis auf das Intervall sind es alles die Defaults:
Max data points: 2635
Min interval: 1m
Interval: 10m
Relative time: 1h
Time shift: 1h

- kannst du ggf. das Panel mal in ein eigenes Dashboard kopieren
Ich habe bisher nur das eine Panel.

- und den Sourcecode als json hier einstellen?

{
  "aliasColors": {
    "niederschlag": "blue",
    "temp_max": "dark-orange",
    "temp_min": "super-light-orange"
  },
  "dashLength": 10,
  "datasource": "MySQL",
  "fieldConfig": {
    "defaults": {
      "custom": {},
      "mappings": [],
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "color": "green",
            "value": null
          },
          {
            "color": "red",
            "value": 80
          }
        ]
      }
    },
    "overrides": []
  },
  "fill": 1,
  "gridPos": {
    "h": 17,
    "w": 17,
    "x": 0,
    "y": 0
  },
  "id": 2,
  "legend": {
    "alignAsTable": false,
    "avg": false,
    "current": false,
    "max": false,
    "min": false,
    "rightSide": false,
    "show": true,
    "total": false,
    "values": false
  },
  "lines": true,
  "linewidth": 1,
  "nullPointMode": "null",
  "pluginVersion": "7.1.1",
  "pointradius": 2,
  "renderer": "flot",
  "seriesOverrides": [
    {
      "$$hashKey": "object:1190",
      "alias": "niederschlag",
      "bars": true,
      "lines": false,
      "transform": "negative-Y",
      "yaxis": 2
    },
    {
      "$$hashKey": "object:475",
      "alias": "temp_max",
      "bars": false,
      "lines": true
    },
    {
      "$$hashKey": "object:486",
      "alias": "temp_min",
      "bars": false,
      "lines": true
    },
    {
      "$$hashKey": "object:522",
      "alias": "sonnenstunden",
      "bars": true,
      "lines": false
    }
  ],
  "spaceLength": 10,
  "targets": [
    {
      "format": "time_series",
      "group": [],
      "hide": false,
      "metricColumn": "none",
      "rawQuery": true,
      "rawSql": "SELECT datum as time, niederschlag FROM WetterCom16 ORDER BY id DESC LIMIT 16;\n",
      "refId": "A",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "column"
          }
        ]
      ],
      "timeColumn": "time",
      "where": [
        {
          "name": "$__timeFilter",
          "params": [],
          "type": "macro"
        }
      ]
    },
    {
      "format": "time_series",
      "group": [],
      "metricColumn": "none",
      "rawQuery": true,
      "rawSql": "SELECT datum as time, temp_max FROM WetterCom16 ORDER BY id DESC LIMIT 16;\n",
      "refId": "B",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "column"
          }
        ]
      ],
      "timeColumn": "time",
      "where": [
        {
          "name": "$__timeFilter",
          "params": [],
          "type": "macro"
        }
      ]
    },
    {
      "format": "time_series",
      "group": [],
      "metricColumn": "none",
      "rawQuery": true,
      "rawSql": "SELECT datum as time, temp_min FROM WetterCom16 ORDER BY id DESC LIMIT 16;\n",
      "refId": "C",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "column"
          }
        ]
      ],
      "timeColumn": "time",
      "where": [
        {
          "name": "$__timeFilter",
          "params": [],
          "type": "macro"
        }
      ]
    },
    {
      "format": "time_series",
      "group": [],
      "metricColumn": "none",
      "rawQuery": true,
      "rawSql": "SELECT datum as time, sonnenstunden FROM WetterCom16 ORDER BY id DESC LIMIT 16;\n",
      "refId": "D",
      "select": [
        [
          {
            "params": [
              "value"
            ],
            "type": "column"
          }
        ]
      ],
      "timeColumn": "time",
      "where": [
        {
          "name": "$__timeFilter",
          "params": [],
          "type": "macro"
        }
      ]
    }
  ],
  "thresholds": [],
  "timeRegions": [
    {
      "$$hashKey": "object:897",
      "colorMode": "background6",
      "fill": true,
      "fillColor": "rgba(234, 112, 112, 0.12)",
      "line": false,
      "lineColor": "rgba(237, 46, 24, 0.60)",
      "op": "time"
    }
  ],
  "title": "Wetter 16 Tage Vorschau",
  "tooltip": {
    "shared": true,
    "sort": 1,
    "value_type": "individual"
  },
  "type": "graph",
  "xaxis": {
    "buckets": null,
    "mode": "time",
    "name": null,
    "show": true,
    "values": []
  },
  "yaxes": [
    {
      "$$hashKey": "object:503",
      "format": "short",
      "label": "°C",
      "logBase": 1,
      "max": null,
      "min": null,
      "show": true
    },
    {
      "$$hashKey": "object:504",
      "decimals": null,
      "format": "short",
      "label": "l/m²",
      "logBase": 1,
      "max": null,
      "min": null,
      "show": true
    }
  ],
  "yaxis": {
    "align": false,
    "alignLevel": null
  },
  "bars": false,
  "dashes": false,
  "description": "",
  "fillGradient": 0,
  "hiddenSeries": false,
  "percentage": false,
  "points": false,
  "stack": false,
  "steppedLine": false,
  "timeFrom": null,
  "timeShift": null
}


- Nutzt du Grafana in Docker?
Nein, ist direkt in einer Ubuntu 20.04 VM installiert.

Vielen Dank schon mal...

Guido

P.S.: Es ergab sich bei mir noch eine weitere Frage:
Kann ich Grafana dazu veranlassen die X Achse des Graphen jeden Tag automatisch zu aktualisieren?
Ich habe gewählt: "now - 1d" bis "now + 16d" Grafana rechnet das aber nicht vom jeweils aktuellen Tag, sondern immer vom Datum des Tages an dem ich den Zeitraum ausgewählt habe.
Ich muß also den Zeitraum jeden Tag wieder neu auswählen.

Vielen Dank nochmal!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 19 August 2020, 11:44:59
Ich habe eine Frage, die eigentlich nicht mehr FHEM betrifft (im Zweifel lagere ich das bei Offtopic aus, nur wollte ich mal schauen, ob jemand helfen kann). Wer grafana auf dem RPi installiert hat, kann dort nicht mehr ohne Weiteres rendern; es gibt da richtige Probleme und mal geht es, mal nicht (Details zum Beispiel hier: https://community.grafana.com/t/grafana-rendering-for-raspbian-jessie-on-raspberry-pi-3-b-in-end-of-year-2019-still-possible/23134 (https://community.grafana.com/t/grafana-rendering-for-raspbian-jessie-on-raspberry-pi-3-b-in-end-of-year-2019-still-possible/23134)). Also habe ich das hier installiert, um das rendern auf dem RPi durchzuführen:
https://developer.mozilla.org/de/docs/Mozilla/Firefox/Headless-Mode (https://developer.mozilla.org/de/docs/Mozilla/Firefox/Headless-Mode)

Damit kann man headless Screenshots machen. Nur klappt das nicht, weil anscheinend grafana länger lädt als der Browser den Screenshot abliefert. Hat jemand eine Idee, wie man das hinbekommt? 
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 20 August 2020, 10:59:02
Zitat von: GU!DO am 16 August 2020, 15:33:44


P.S.: Es ergab sich bei mir noch eine weitere Frage:
Kann ich Grafana dazu veranlassen die X Achse des Graphen jeden Tag automatisch zu aktualisieren?
Ich habe gewählt: "now - 1d" bis "now + 16d" Grafana rechnet das aber nicht vom jeweils aktuellen Tag, sondern immer vom Datum des Tages an dem ich den Zeitraum ausgewählt habe.
Ich muß also den Zeitraum jeden Tag wieder neu auswählen.

Vielen Dank nochmal!

Ich habe mal deine Json importiert, in 7.2 ging es nicht wegen neuen Featues, habe mir einen Docker mit 7.1.1 gemacht ... aber nichts auffälliges gesehen.

Was du testen kannst, kopiere das Panel mal in ein neues damit du dir nichts überschreibst, und teste ob es funktioniert wenn du nur eine Datenreihe hast. Ich nutze für Grafana InfluxDB, habe also keine MySQL konfiguriert, sonst hätte ich selber mal nen kleinen Test gemacht.

Zu deiner anderen Frage ... was genau meinst du? Du lässt den Monitor offen, z. B. 23 Uhr und erwartest dass um 01:00 durch den automatischen Refresh der Tag um eins verschoben wird? Oder was genau ist die Frage bzw. Anforderung. Mit den dynamischen now -1d / + 16d wird das beim Aufrufen automatisch gemacht ... hier die Frage, was erhoffst du dir mit +16d, hast du Werte aus der (vermeintlichen) Zukunft in der Datenbank?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 20 August 2020, 11:04:20
Zitat von: andies am 19 August 2020, 11:44:59
Ich habe eine Frage, die eigentlich nicht mehr FHEM betrifft (im Zweifel lagere ich das bei Offtopic aus, nur wollte ich mal schauen, ob jemand helfen kann). Wer grafana auf dem RPi installiert hat, kann dort nicht mehr ohne Weiteres rendern; es gibt da richtige Probleme und mal geht es, mal nicht (Details zum Beispiel hier: https://community.grafana.com/t/grafana-rendering-for-raspbian-jessie-on-raspberry-pi-3-b-in-end-of-year-2019-still-possible/23134 (https://community.grafana.com/t/grafana-rendering-for-raspbian-jessie-on-raspberry-pi-3-b-in-end-of-year-2019-still-possible/23134)). Also habe ich das hier installiert, um das rendern auf dem RPi durchzuführen:
https://developer.mozilla.org/de/docs/Mozilla/Firefox/Headless-Mode (https://developer.mozilla.org/de/docs/Mozilla/Firefox/Headless-Mode)

Damit kann man headless Screenshots machen. Nur klappt das nicht, weil anscheinend grafana länger lädt als der Browser den Screenshot abliefert. Hat jemand eine Idee, wie man das hinbekommt?

Ich kann dir jetzt nicht direkt helfen, aber ist es das neuere Grafana Plugin zum Rendern, oder hast du was anderes vor? Das Plugin kam im Herbst 2019, von daher sind die Links evtl. outdated. Ob es das Render-Plugin für Raspberry gibt weiß ich nicht. Wollte es auf Docker mal testen, da hab ich es aber nicht zum Laufen gekriegt. Ohne Docker ist es nur als Plugin zu installieren.

https://grafana.com/grafana/plugins/grafana-image-renderer/installation
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 20 August 2020, 11:08:03
Zitat von: kadettilac89 am 20 August 2020, 11:04:20
Ohne Docker ist es nur als Plugin zu installieren.
Und genau das Plugin funktioniert nicht bei mir bzw lässt sich nicht mal richtig installieren. Es gibt dazu mehrere Infos in diversen Foren, ohne das eine Lösung ersichtlich scheint. Die meisten haben aufgegeben und sagen, das wäre ein ARM-Problem.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 21 August 2020, 15:08:36
Zitat von: kadettilac89 am 20 August 2020, 10:59:02
Ich habe mal deine Json importiert, in 7.2 ging es nicht wegen neuen Featues, habe mir einen Docker mit 7.1.1 gemacht ... aber nichts auffälliges gesehen.
Sorry, ich wollte Dir nicht soviel Arbeit aufhalsen... viiielen Dank!

Zitat von: kadettilac89 am 20 August 2020, 10:59:02
Was du testen kannst, kopiere das Panel mal in ein neues damit du dir nichts überschreibst, und teste ob es funktioniert wenn du nur eine Datenreihe hast. Ich nutze für Grafana InfluxDB, habe also keine MySQL konfiguriert, sonst hätte ich selber mal nen kleinen Test gemacht.
Ich habe zum einen ein neues Panel angelegt und als zweites ein neues Dashboard mit Panel und jeweils die Abfrage der max. Temp. eingebunden.
Ergebnis: Gleicher Effekt. Linke Hälfte 18°, rechte Hälfte 21°.
Ich teste das nochmal wenn ich bei "time" eine Uhrzeit anhänge. Denke, dass ich das am Wochenende schaffe.

Zitat von: kadettilac89 am 20 August 2020, 10:59:02
Du lässt den Monitor offen, z. B. 23 Uhr und erwartest dass um 01:00 durch den automatischen Refresh der Tag um eins verschoben wird?
Ja genau.

Zitat von: kadettilac89 am 20 August 2020, 10:59:02
Mit den dynamischen now -1d / + 16d wird das beim Aufrufen automatisch gemacht
Klappt bei mir nicht. Muß da noch was konifguriert werden?
Ich mußte +1d ja bei absoluten Zeitwerten eingeben der Wert im Feld wurde dann direkt in das jeweilige Datum gewandelt.
Die realtiven Zeiten erlauben ja nur einen Rückblick in festen Zeiträumen und die scheinen auch hardcoded zu sein.

Zitat von: kadettilac89 am 20 August 2020, 10:59:02
hier die Frage, was erhoffst du dir mit +16d, hast du Werte aus der (vermeintlichen) Zukunft in der Datenbank?
Ja genau. Es ist eine Wetterprognose, also die Werte für die nächsten 16 Tage also der vermeintlichen Zukunft.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: GU!DO am 23 August 2020, 18:13:51
So, ich habe das Problem gefunden:
Meine SQL Syntax lautete wie folgt:

SELECT datum as time, niederschlag FROM WetterCom16 ORDER BY id DESC LIMIT 16;


Da ich die Werte fortlaufend in die Tabelle schreibe, aber für diese Ansicht nur die letzten 16 benötige, werden die Zeilen der Tabelle mit DESC umgekehrt und dann nur die ersten 16 für die Auswertung genommen.

Mit der zeitlichen Umkehrung der Werte hatte Grafana jedoch Probleme. Die Tabelle wurde korrekt aufgebaut, jedoch die Werte im tooltip nicht korrekt angezeigt.

Zur Abhilfe habe ich die Werte nun in in der SQL Abfrage wieder in die richtige zeitliche Reihenfolge gebracht:

SELECT datum as time, niederschlag FROM (SELECT * FROM WetterCom16 ORDER BY id DESC LIMIT 16) sub ORDER BY id ASC;


Vielen Dank nochmals an "kadettilac89" für die Hilfe!!!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 24 September 2020, 20:55:45
Zitat von: Steffen@Home am 18 November 2019, 07:24:03
Kann man die X-Achse irgendwie formatieren (dd mm yyyy) auf z.B. 18. Nov statt 11/18 usw?
Seit wenigen Tagen ist grafana 7.2 verfügbar, da geht das. Details:  https://grafana.com/blog/2020/09/23/grafana-v7.2-released-with-custom-date-formats-new-transforms-and-overrides/ (https://grafana.com/blog/2020/09/23/grafana-v7.2-released-with-custom-date-formats-new-transforms-and-overrides/)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: speedAmaster am 09 Oktober 2020, 12:06:34
Hallo,
ich habe schon ein paar schöne Grafana Charts erstellt - hat ja wesentlich bessere Möglichkeiten im Vergleich zum FHEM-plot.... daher werde ich in Zukunft alles in Grafana machen.

Ich habe 2 Herausforderungen:
1) sofern im ausgewählten Zeitfenster links/rechts Werte in der DB fehlen (da sich die Werte evtl nicht verändert haben), habe ich nur einen kleine Teil oder gar nichts im Diagram - gibt es hierzu einen Lösungsansatz?
2) ich würde gerne (wie bei FHEM-plot) das Zeitfenster wählen wollen (hinein-, heraus-zoomen, links-rechts)
    a) dies geht zwar statt mit iframe mit der normalen URL, dann habe ich aber alle Interaktionsmöglichkeiten - nicht gewünscht - wie kann ich auch nur den TimeRange anzeigen/auswählen?
    b) die Skalierung gilt (bei der normalen URL) logischerweise nur für das aktuelle Diagram, wie kann der TimeRange für alle Diagramme einer Gruppe/Seite angepasst werden?

Dies sind vmtl Anfängerfragen, aber ich konnte nichts dazu bei FHEM oder Grafana finden (evtl die falschen Suchbegriffe??)  :-\
Gruß Bernd
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 09 Oktober 2020, 12:57:05
1) sofern im ausgewählten Zeitfenster links/rechts Werte in der DB fehlen (da sich die Werte evtl nicht verändert haben), habe ich nur einen kleine Teil oder gar nichts im Diagram - gibt es hierzu einen Lösungsansatz?
--> schau dir mal addLog von DBLog an, damit kannst du per at oder anders gescheduled einen Wert in die DB schreiben.
https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden

2) was genau möchtest du sehen ... immer die letzten 24h, oder soll das dynamisch sein?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 09 Oktober 2020, 14:25:39
Zitat von: kadettilac89 am 09 Oktober 2020, 12:57:05
1) sofern im ausgewählten Zeitfenster links/rechts Werte in der DB fehlen (da sich die Werte evtl nicht verändert haben), habe ich nur einen kleine Teil oder gar nichts im Diagram - gibt es hierzu einen Lösungsansatz?
--> schau dir mal addLog von DBLog an, damit kannst du per at oder anders gescheduled einen Wert in die DB schreiben.
https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden
/quote]
Hier mal ein Beispiel aus einem anderen Bereich

defmod DF_addLog DOIF ## Stündliche Einträge\
([:59])(\
   {addLog("LogDB", "AR_O_Rollo_FSB61", "position")}\
   {addLog("LogDB", "KU_S_Fenster"    , "state")}\
   {addLog("LogDB", "Heizung"         , "averageAmbientTemperature")}\
  )\
## Tägliche Einträge\
DOELSEIF\
([00:01])(\
   {addLog("LogDB", "AR_O_Rollo_FSB61", "position")}\
   {addLog("LogDB", "WO_W_Fenster"    , "state")}\
   {addLog("LogDB", "Heizung"         , "hotWaterCircPumpExtern")}\
   {addLog("LogDB", "Heizung"         , "averageAmbientTemperature")}\
  )\
DOELSEIF\
([+:20]) (\
   {if (ReadingsVal("PV_Anlage_1","Home_own_consumption_from_battery","na") <    2) {addLog("LogDB", "PV_Anlage_1", "Home_own_consumption_from_battery")}}\
   {if (ReadingsVal("PV_Anlage_1","Home_own_consumption_from_battery","na") == 100) {addLog("LogDB", "PV_Anlage_1", "Home_own_consumption_from_battery")}}\
   {if (ReadingsVal("PV_Anlage_1","Home_own_consumption_from_PV"     ,"na") <    2) {addLog("LogDB", "PV_Anlage_1", "Home_own_consumption_from_PV")}}\
   {if (ReadingsVal("PV_Anlage_1","Act_state_of_charge"              ,"na") == 100) {addLog("LogDB", "PV_Anlage_1", "Act_state_of_charge");;;;addLog("LogDB", "PV_Anlage_1", "Actual_battery_charge_usable_Power")}}\
   {if (ReadingsVal("PV_Anlage_1","Total_DC_Power"                   ,"na") <   30) {addLog("LogDB", "PV_Anlage_1", "Total_DC_Power")}}\
  )
attr DF_addLog DbLogExclude .*
attr DF_addLog do always
attr DF_addLog room System
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 02 November 2020, 15:51:56
Hallo zusammen,

bevor ich nun das Rad neu erfinde suche ich einen Grafana json Definition für die Visualisierung einer PV Anlage.
Im Netz habe ich bereits etwas in Richtung Solaranzeige gefunden, jedoch hoffe ich, dass das bereits jemand auf FHEM angepasst hat.

- Grafana läuft bereits
- Ein user ist angelegt
- Die Datenbank ist verbunden

- Muster von SVGs im FhemWeb habe ich auch schon

Dann zeigt mal was Ihr schon habt, denn ich bin noch total neu bei Grafana.

Viele Grüße
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 04 November 2020, 11:28:39
Moin zusammen,

gibt es eine Möglichkeit im Bereich "Visualization/Legend/Current" nicht nur den allerletzten current Wert anzeigen zu lassen, sondern den letzten current alle values?
Durch update-on-change sind die Einträge in der Datenbank ja nicht alle Zeitsynchron :-(

Gruß
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 05 November 2020, 18:58:55
Zitat von: andies am 24 September 2020, 20:55:45
Seit wenigen Tagen ist grafana 7.2 verfügbar, da geht das. Details:  https://grafana.com/blog/2020/09/23/grafana-v7.2-released-with-custom-date-formats-new-transforms-and-overrides/ (https://grafana.com/blog/2020/09/23/grafana-v7.2-released-with-custom-date-formats-new-transforms-and-overrides/)

ich habe das mal ausprobiert und es klappt zumindest innerhalb des charts super.
habe als docker environment variablen in der docker-compose.yml folgendes gesetzt:

        environment:
          - GF_DATE_FORMATS_FULL_DATE=dd DD.MM HH:mm
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_HOUR=DD.MM HH:mm
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_DAY=DD.MM
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_MONTH=MM.YYYY
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 05 November 2020, 19:36:25
Hi, ich bin noch ganz frisch mit grafana unterwegs.
Gibt es bereits einen Docker Container mit einer aktuelleren Version als v6.5.2 für den RPI ?

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 05 November 2020, 23:48:13
Zitat von: ch.eick am 05 November 2020, 19:36:25
Hi, ich bin noch ganz frisch mit grafana unterwegs.
Gibt es bereits einen Docker Container mit einer aktuelleren Version als v6.5.2 für den RPI ?

Gruß
   Christian

Hallo Christian, ja ich habe die 7.2.1 über docker laufen
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 07:37:56
Zitat von: MCh76 am 05 November 2020, 23:48:13
Hallo Christian, ja ich habe die 7.2.1 über docker laufen
Moin, und kann man das Container Image irgendwo laden?
Hast Du eine Anleitung, wenn es kein Image gibt?

Gruß
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 06 November 2020, 08:47:12
Zitat von: ch.eick am 06 November 2020, 07:37:56
Moin, und kann man das Container Image irgendwo laden?
Hast Du eine Anleitung, wenn es kein Image gibt?

Gruß
    Christian

ich habe einfach folgendes in meine docker-compose.yml datei aufgenommen

    grafana:
        image: grafana/grafana:latest
        user: "1000"
        restart: always
        networks:
          - fhem-network
        expose:
          - "3000"
        ports:
          - "3000:3000"
        volumes:
           - ./grafana/data:/var/lib/grafana
           - ./grafana/provisioning:/etc/grafana/provisioning
        environment:
          - GF_AUTH_ANONYMOUS_ENABLED=true
          - GF_AUTH_ANONYMOUS_ORG_NAME=meineORGNAME
          - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
          - GF_SECURITY_ALLOW_EMBEDDING=true
          - GF_SECURITY_COOKIE_SAMESITE=none
          - GF_LOG_MODE=console file
          - GF_LOG_LEVEL=debug
          - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
          - GF_DATE_FORMATS_FULL_DATE=dd DD.MM HH:mm
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_HOUR=DD.MM HH:mm
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_DAY=DD.MM
          - GF_DATE_FORMATS_INTERVALS_INTERVAL_MONTH=MM.YYYY
        depends_on:
            - "mariadb"
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 08:51:54
Zitat von: MCh76 am 06 November 2020, 08:47:12
ich habe einfach folgendes in meine docker-compose.yml datei aufgenommen
Okay, das ist passend zu meiner Definition, nur habe ich "latest" schon vor geraumer Zeit abgerufen.
Kann ich jetzt einfach Grafana stoppen, das alte Image löschen und dann wieder neu erstellen lassen?
Oder gibt es ein Docker Kommando, was alle Images neu abruft und überschreibt?

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 06 November 2020, 09:13:05
Zitat von: ch.eick am 06 November 2020, 08:51:54
Okay, das ist passend zu meiner Definition, nur habe ich "latest" schon vor geraumer Zeit abgerufen.
Kann ich jetzt einfach Grafana stoppen, das alte Image löschen und dann wieder neu erstellen lassen?
Oder gibt es ein Docker Kommando, was alle Images neu abruft und überschreibt?

Gruß
   Christian

probier mal:
docker stop "containername"
docker kill "containername"
docker rm "containername"
ggf. noch docker image rm IMAGE

oder du installierst portainer, finde ich ein super angenehmes tool mit netter oberfläche

https://hub.docker.com/r/portainer/portainer-ce

docker volume create portainer_data

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 09:46:08
Zitat von: MCh76 am 06 November 2020, 09:13:05
probier mal:
$ docker container ls -f name="fhem_2020"
$ docker image ls        <<<<<<<<<< hier scheinen die Filter nicht zu klappen

$ docker stop <container name>
$ docker rm <container name>
$ docker image rm <image name>

$ docker-compose up      <<<<< prüft alle Images und erstellt dann Grafana neu
strg C                               <<<<< stoppt den aktuellen Konsol output wieder

$ docker start <portainer name>
$ ...

Oder dann in Portainer die restlichen Container starten.
Vielen Dank für den quick Start, ich hatte einfach noch nicht den Mut es zu tun. Nun bin ich ein Jahr weiter :-)

Leider sind die Feineinstellungen im Grafana verloren gegangen :-(
Die Namen in der Legende und auch die Farbzuordnung sind wohl auf default.
Gibt es da noch einen Trick?

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 06 November 2020, 09:57:09
da muss ich leider passen...sind im series override vllt. irgendwelche werte gefüllt die die einzel queries übersteuern?
hatte gestern auch in einem chart auf einmal einen timeshift drin und hatte keine ahnung woher der kommt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 10:18:07
Zitat von: MCh76 am 06 November 2020, 09:57:09
da muss ich leider passen...sind im series override vllt. irgendwelche werte gefüllt die die einzel queries übersteuern?
hatte gestern auch in einem chart auf einmal einen timeshift drin und hatte keine ahnung woher der kommt.
Die Definition des Namens in der Legende wird in der neueren Version anders generiert.
Vorher war es immer der Queryname mit dem Spaltenname also "Heizung value" was mich eh gestört hatte :-)
Nun ist es der Spaltenname. Ich habe jetzt "value AS Temperatur" im SQL eingetragen und schon sieht es wieder schön aus.

Die Farben rekonstruiere ich dann aus einem Screenshot.

Hast Du eventuell eine Button Lösung bereits implementiert?

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: MCh76 am 06 November 2020, 10:33:45
Zitat von: ch.eick am 06 November 2020, 10:18:07
Die Definition des Namens in der Legende wird in der neueren Version anders generiert.
Vorher war es immer der Queryname mit dem Spaltenname also "Heizung value" was mich eh gestört hatte :-)
Nun ist es der Spaltenname. Ich habe jetzt "value AS Temperatur" im SQL eingetragen und schon sieht es wieder schön aus.

Die Farben rekonstruiere ich dann aus einem Screenshot.

Hast Du eventuell eine Button Lösung bereits implementiert?

Gruß
   Christian

nein bislang noch nicht. habe aktuell nur liniencharts für wetterverlauf und spritpreise, somit noch weit am anfang ;-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 10:37:11
Zitat von: MCh76 am 06 November 2020, 10:33:45
nein bislang noch nicht. habe aktuell nur liniencharts für wetterverlauf und spritpreise, somit noch weit am anfang ;-)
Na dann stehen wir an der selben Stelle. Auf eine gute Partnerschaft ;-)

Ich habe gestern mit dem Text Plugin einen html button definiert, der öffnet allerdings die Seite in einem neuen tab, was ich nicht möchte.

Aber eventuell kann ich ja mit der aktuellen Version jetzt die Plugins verwenden, die es auf der offiziellen Seite gibt, da lief Version 6... immer in einen Error.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 06 November 2020, 15:07:01
Hallo zusammen,
hier nun der Aufruf. Ich benötige einen einfachen Button, um z.B. einen http Aufruf zum Fhem zu senden.
Dabei soll die Fhem Seite nicht angezeigt werden.

Folgende Plugins habe ich bereits nachinstalliert, bekomme sie aber nicht konfiguriert :-(

Button
Button Panel
Ajax

Text  <<< lässt sich anklicken, jedoch wird dann in einem neuen Tab die fhem Seite aufgerufen


z.B. dieser funktionierende Aufruf

http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off


Sollte es eine bessere Idee geben, dann bitte scheut Euch nicht sie zu Posten :-)

Gruß
     Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 November 2020, 18:25:23
Zitat von: ch.eick am 06 November 2020, 15:07:01
Hallo zusammen,
hier nun der Aufruf. Ich benötige einen einfachen Button, um z.B. einen http Aufruf zum Fhem zu senden.
Dabei soll die Fhem Seite nicht angezeigt werden.

Folgende Plugins habe ich bereits nachinstalliert, bekomme sie aber nicht konfiguriert :-(

Button
Button Panel
Ajax

Text  <<< lässt sich anklicken, jedoch wird dann in einem neuen Tab die fhem Seite aufgerufen


z.B. dieser funktionierende Aufruf

http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off


Sollte es eine bessere Idee geben, dann bitte scheut Euch nicht sie zu Posten :-)

Gruß
     Christian
Ich habe in Grafana keine Buttons definiert. Wenn du einen Befehlt per HTTP-Call machst geht Fhem auf. Wenn du das still machen willst dann geht das vielleicht wenn du "&XHR=1" am ende des Links anhängst. Könnte aber sein, dass du dann einen weißen Tab bekommst.

In deinem Beispiel "http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off&XHR=1"
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 02 Dezember 2020, 17:08:12
Hallo zusammen,
manchmal stockt der Aufbau der Diagramme. Wie kann ich dem auf die Schliche kommen?
Ich vermute es ist Grafana, 22 Abfragen in vier Diagrammen auf einem Dashboard. Ist das viel?

HW RPI4 mit 4G RAM , Fhem, MySQL, Grafana,... in Docker auf einer SSD
DbLog asyncron mit Indix, ohne Event Spalte und aufgeräumt. Ich habe von >4GB auf 1,4 GB reduziert und die Tabelle nach dem Löschen von Einträgen auch wieder optimiert.

Nun kommt es immer wieder zu Hängern, bei denen das Grafana, keine Daten mehr bekommt.
Auch Fhem gibt nur zögerlich Rückmeldung, wohingegen das Debian immer noch flüssig läuft.
Mit attr global 3 und Verbose 5 habe ich schon diverse Devices überprüft. Wenn die Datenbank Abfrage hängt sehe ich nichts verdächtiges im Log oder bei den Events.

Mit apptime max sehe ich, dass DbLog immer on the Top ist.

Durch die Fhem Events habe ich mich ebenfalls optimiert und es wird auch nur mit event-on-change-reading gearbeitet.

Wie könnte ich nun dem Datenbankproblem auf die schliche kommen?
Wenn das Problem auftritt ist die SSD LED munter am blinken...

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 10:10:10
es kann verschiedene Ursachen haben. Sachen die nicht reproduzierbar sind zu analysieren... schwierig

Wenn die SSD-Leuchte dann auch aktiv ist, hast du in der Zeit viel IO-Aktivität. Kann sein, dass die DB beim Select das verursacht, oder nur Opfer ist, weil ein anderer Process die Resourcen "block" (RAM blockiert und swapped) und die DB dann warten muss.

Ich gehe mal davon aus, dass du die DB im Docker hast da du auch im Fhem-Docker-Thread Fragen zu Docker hattest.

Es könnte helfen, den buffer_pool der Datenbank, zumindest zum Test mal zu erhöhen. Aber dazu muss RAM verfügbar sein.

Wenn es das nächste mal ist, führe die beiden Befehle unten mal aus und poste was rauskommt. Auf dem Raspberry, nicht im Docker. Möchte sehen wieviel Speicher frei ist, und ob man "komische" Prozesse sieht.

free
top


top kannst du mit der Taste "q" beenden. Wenn das Problem länger ist, mache am besten 2 mal top und exportiere.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 12:29:58
Okay, ich versuche es zu fangen :-)

Die kurze up time der Container kommt von der gestrigen phpMyAdmin installation.
Normal ohne Probleme:

pi@raspberrypi:/mnt/ssd/home/pi/docker-compose/fhem_2021 $ docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS                  PORTS                                              NAMES
0ad33c6f0656        adejong/grafana-image-renderer-pi:1.0.8-beta2   "dumb-init -- node b..."   24 hours ago        Up 24 hours             0.0.0.0:8081->8081/tcp                             fhem_2021_renderer_1
73af8f40a202        koenkk/zigbee2mqtt:latest                       "docker-entrypoint.s..."   24 hours ago        Up 24 hours                                                                fhem_2021_zigbee2mqtt_1
399323d61f0d        fhem/fhem:latest                                "/entry.sh start"        24 hours ago        Up 24 hours (healthy)                                                      fhem_2021_fhem_1
04e1f3d965c9        jackgruber/phpmyadmin                           "/run.sh phpmyadmin"     24 hours ago        Up 24 hours             0.0.0.0:8082->80/tcp                               fhem_2021_phpMyAdmin_1
c8b6593c2cd6        grafana/grafana:latest                          "/run.sh"                24 hours ago        Up 24 hours             0.0.0.0:4000->3000/tcp                             fhem_2021_grafana_1
c83892cb41a9        hypriot/rpi-mysql                               "/entrypoint.sh mysq..."   24 hours ago        Up 24 hours             0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp   fhem_2021_mysql_1
01f5b15f0973        portainer/portainer:latest                      "/portainer -H unix:..."   3 weeks ago         Up 24 hours             0.0.0.0:9000->9000/tcp                             fhem_2021_portainer_1


free
              total        used        free      shared  buff/cache   available
Mem:        3919812     1289164     1923080      280200      707568     2208632
Swap:        102396       84876       17520


Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,6 us,  3,9 sy,  0,0 ni, 94,2 id,  0,3 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   3827,9 total,   1883,2 free,   1270,5 used,    674,2 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2151,1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                           
21612 fhem      20   0  242640 172888   8216 S   2,3   4,4  99:46.47 perl                                                             
11921 root      20   0    7624   2656   2316 S   1,6   0,1  20:13.40 entry.sh                                                         
9555 pi        20   0   10320   3208   2588 R   1,3   0,1   0:00.64 top                                                               
23196 fhem      20   0  108468  63708   6108 S   1,0   1,6  19:05.52 perl                                                             
  569 root      20   0  200552  86440  76356 S   0,7   2,2  25:46.43 Xorg                                                             
12183 mysql     20   0  342456 172432   2984 S   0,7   4,4   4:12.67 mysqld                                                           
12682 root      20   0  157424  39980   6884 S   0,7   1,0   3:12.02 node                                                             
27903 pi        20   0   89740  21576  13044 S   0,7   0,6   1:12.66 lxterminal                                                       
  470 root      20   0   32412   2588   1916 S   0,3   0,1  19:33.84 nmbd                                                             
12123 root      20   0   16380   9588    360 S   0,3   0,2   0:47.61 supervisord                                                       
12225 grafana   20   0  839424  25032  10760 S   0,3   0,6   2:21.82 grafana-server
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 13:26:40
Zitat von: ch.eick am 03 Dezember 2020, 12:29:58
Okay, ich versuche es zu fangen :-)

Die kurze up time der Container kommt von der gestrigen phpMyAdmin installation.
Normal ohne Probleme:

pi@raspberrypi:/mnt/ssd/home/pi/docker-compose/fhem_2021 $ docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS                  PORTS                                              NAMES
0ad33c6f0656        adejong/grafana-image-renderer-pi:1.0.8-beta2   "dumb-init -- node b..."   24 hours ago        Up 24 hours             0.0.0.0:8081->8081/tcp                             fhem_2021_renderer_1
73af8f40a202        koenkk/zigbee2mqtt:latest                       "docker-entrypoint.s..."   24 hours ago        Up 24 hours                                                                fhem_2021_zigbee2mqtt_1
399323d61f0d        fhem/fhem:latest                                "/entry.sh start"        24 hours ago        Up 24 hours (healthy)                                                      fhem_2021_fhem_1
04e1f3d965c9        jackgruber/phpmyadmin                           "/run.sh phpmyadmin"     24 hours ago        Up 24 hours             0.0.0.0:8082->80/tcp                               fhem_2021_phpMyAdmin_1
c8b6593c2cd6        grafana/grafana:latest                          "/run.sh"                24 hours ago        Up 24 hours             0.0.0.0:4000->3000/tcp                             fhem_2021_grafana_1
c83892cb41a9        hypriot/rpi-mysql                               "/entrypoint.sh mysq..."   24 hours ago        Up 24 hours             0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp   fhem_2021_mysql_1
01f5b15f0973        portainer/portainer:latest                      "/portainer -H unix:..."   3 weeks ago         Up 24 hours             0.0.0.0:9000->9000/tcp                             fhem_2021_portainer_1


free
              total        used        free      shared  buff/cache   available
Mem:        3919812     1289164     1923080      280200      707568     2208632
Swap:        102396       84876       17520


Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,6 us,  3,9 sy,  0,0 ni, 94,2 id,  0,3 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   3827,9 total,   1883,2 free,   1270,5 used,    674,2 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2151,1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                           
21612 fhem      20   0  242640 172888   8216 S   2,3   4,4  99:46.47 perl                                                             
11921 root      20   0    7624   2656   2316 S   1,6   0,1  20:13.40 entry.sh                                                         
9555 pi        20   0   10320   3208   2588 R   1,3   0,1   0:00.64 top                                                               
23196 fhem      20   0  108468  63708   6108 S   1,0   1,6  19:05.52 perl                                                             
  569 root      20   0  200552  86440  76356 S   0,7   2,2  25:46.43 Xorg                                                             
12183 mysql     20   0  342456 172432   2984 S   0,7   4,4   4:12.67 mysqld                                                           
12682 root      20   0  157424  39980   6884 S   0,7   1,0   3:12.02 node                                                             
27903 pi        20   0   89740  21576  13044 S   0,7   0,6   1:12.66 lxterminal                                                       
  470 root      20   0   32412   2588   1916 S   0,3   0,1  19:33.84 nmbd                                                             
12123 root      20   0   16380   9588    360 S   0,3   0,2   0:47.61 supervisord                                                       
12225 grafana   20   0  839424  25032  10760 S   0,3   0,6   2:21.82 grafana-server


System ist erstmal nicht überlastet. Warum nutzt du den über 2 Jahre alten rpi-mysql Container? Der war damals für armv6 gebaut worden, dein RPi4 müsste aber mit dem normalen Image von Mariadb laufen (ist ein Fork von Mysql). .... https://hub.docker.com/_/mariadb

Daten kannst ja vom mysql behalten.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 13:33:31
Zitat von: kadettilac89 am 03 Dezember 2020, 13:26:40
System ist erstmal nicht überlastet. Warum nutzt du den über 2 Jahre alten rpi-mysql Container? Der war damals für armv6 gebaut worden, dein RPi4 müsste aber mit dem normalen Image von Mariadb laufen (ist ein Fork von Mysql). .... https://hub.docker.com/_/mariadb

Daten kannst ja vom mysql behalten.
Damals war das der Container, den ich für MySQL und RPI gefunden hatte, bis ich dann im Log gesehen hatte, dass da auch was von MarieDB steht. Kann ich jetzt nach einer Sicherung das Image einfach löschen und mit einem neuen in Docker wieder starten? Da bin ich noch nicht so mutig:-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 13:38:24
Zitat von: ch.eick am 03 Dezember 2020, 13:33:31
Damals war das der Container, den ich für MySQL und RPI gefunden hatte, bis ich dann im Log gesehen hatte, dass da auch was von MarieDB steht. Kann ich jetzt nach einer Sicherung das Image einfach löschen und mit einem neuen in Docker wieder starten? Da bin ich noch nicht so mutig:-)

Hast du Daten drin die du brauchst, oder ist es aktuell eine Spielwiese?

Du kannst mit DBRep ein Backup der Datenbank (fhem) machen. Wenn du noch was anderes in MySQL hast musst du das natürlich separat behanden. Alternativ ein Dump der history tabelle auf OS-level, Befehl heißt mysqldump ... am besten die Befehle googlen ... da du ein Backup hast, kannst aber immer noch später was extrahieren wenn du was übersiehst.

Würde dann den MySQL-Teil aus Docker-Compse rauslöschen und das Image / Container löschen. Wie geasgt, ich gehe davon aus, empfehle, ein Backup zu machen. Dann kommst auch später an deine Daten wenn alles läuft.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 15:18:27
Zitat von: kadettilac89 am 03 Dezember 2020, 13:38:24
Hast du Daten drin die du brauchst, oder ist es aktuell eine Spielwiese?

Du kannst mit DBRep ein Backup der Datenbank (fhem) machen. Wenn du noch was anderes in MySQL hast musst du das natürlich separat behanden. Alternativ ein Dump der history tabelle auf OS-level, Befehl heißt mysqldump ... am besten die Befehle googlen ... da du ein Backup hast, kannst aber immer noch später was extrahieren wenn du was übersiehst.

Würde dann den MySQL-Teil aus Docker-Compse rauslöschen und das Image / Container löschen. Wie geasgt, ich gehe davon aus, empfehle, ein Backup zu machen. Dann kommst auch später an deine Daten wenn alles läuft.
Einen Dump mache ich natürlich vorher.
Die Volumes sicher ich dann auch nochmal wenn MySQL runter gefahren ist und übergebe die dann einfach dem neuen Container.
Die neue Version sollte das ja lesen können :-)

    volumes:
        - ./mysql/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
        - ./mysql/data:/var/lib/mysql
        - ./mysql/log:/var/log
        - ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 15:24:18
Ich habe mal ein neues top, da es gerade stockt.

top - 15:22:16 up 3 days, 23:13,  2 users,  load average: 23,83, 12,78, 5,33
Tasks: 227 total,   1 running, 226 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8,8 us,  6,3 sy,  0,0 ni,  0,0 id, 84,7 wa,  0,0 hi,  0,2 si,  0,0 st
MiB Mem :   3827,9 total,   1485,2 free,   1271,1 used,   1071,6 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2206,0 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                   
  569 root      20   0  200548  85776  75612 S   7,6   2,2  27:35.83 Xorg                                                       
11921 root      20   0    7624   2656   2316 S   1,7   0,1  22:44.86 entry.sh                                                   
23196 fhem      20   0  108468  63704   6104 S   1,7   1,6  21:21.62 perl                                                       
  211 root      -2   0       0      0      0 S   1,0   0,0   2:50.24 v3d_render                                                 
21612 fhem      20   0  242332 172716   8224 S   1,0   4,4 109:40.64 perl                                                       
27903 pi        20   0   89292  21876  13204 S   1,0   0,6   1:40.27 lxterminal                                                 
  210 root      -2   0       0      0      0 S   0,7   0,0   2:43.44 v3d_bin                                                   
12225 grafana   20   0  839424  28632  12160 S   0,7   0,7   2:38.86 grafana-server                                             
   10 root      20   0       0      0      0 I   0,3   0,0   6:18.56 rcu_sched                                                 
  398 root      20   0   27656    884    784 S   0,3   0,0   1:22.53 rngd                                                       
1187 pi        20   0  152668  17656  12016 S   0,3   0,5   2:40.69 lxpanel                                                   
1193 pi        20   0   96012  16640  10688 S   0,3   0,4   0:10.55 pcmanfm                                                   
12183 mysql     20   0  343532 172396   2860 S   0,3   4,4   4:46.61 mysqld                                                     
19282 pi        20   0   10320   3108   2492 R   0,3   0,1   1:36.56 top                                             
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 15:46:44
Zitat von: ch.eick am 03 Dezember 2020, 15:24:18

%Cpu(s):  8,8 us,  6,3 sy,  0,0 ni,  0,0 id, 84,7 wa,  0,0 hi,  0,2 si,  0,0 st


Der Wert 84,7 wa .. da wartet das System auf I/O bzw. schreibt / liest von Festplatte.


Zitat von: ch.eick am 03 Dezember 2020, 15:18:27
Einen Dump mache ich natürlich vorher.
Die Volumes sicher ich dann auch nochmal wenn MySQL runter gefahren ist und übergebe die dann einfach dem neuen Container.
Die neue Version sollte das ja lesen können :-)
Darauf würde ich mich nicht verlassen. Mariadb ist eine neuere Version, und auch ein anderes Produkt. Mach am besten wirklich alles neu bzw. neues Verzeichnis. Wenn du schon testest, dann schließe alle möglichen Fehlerursachen aus.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 15:51:20
nachtrag ... zeige mal die Datei, was ist da drin?

- ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 16:21:46
Zitat von: kadettilac89 am 03 Dezember 2020, 15:51:20
nachtrag ... zeige mal die Datei, was ist da drin?

- ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
Das ist leer, wahrscheinlich braucht man das, wenn man etwas umkonfigurieren möchte.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 18:45:32
Zitat von: ch.eick am 03 Dezember 2020, 16:21:46
Das ist leer, wahrscheinlich braucht man das, wenn man etwas umkonfigurieren möchte.
genau, wollte sehen ob da ggf. was unnützes drin steht. Damit setzt du Parameter die vom Default abweichen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 18:48:29
Zitat von: kadettilac89 am 03 Dezember 2020, 18:45:32
genau, wollte sehen ob da ggf. was unnützes drin steht. Damit setzt du Parameter die vom Default abweichen.
Ich liebe Defaults ;-)

Aber jetzt fällt es mir wieder ein, MarieDB nach Deinem Link ist für ARM 64 und der RPI4 ist noch auf Debian 32 , wenn ich das so richtig im Kopf habe.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Dezember 2020, 19:10:02
Zitat von: ch.eick am 03 Dezember 2020, 18:48:29
Ich liebe Defaults ;-)

Aber jetzt fällt es mir wieder ein, MarieDB nach Deinem Link ist für ARM 64 und der RPI4 ist noch auf Debian 32 , wenn ich das so richtig im Kopf habe.

dann bau mal zum test einen container für mariadb in docker-compose ein. Ich dachte RPI4 ist mittlerweile ARM64. Wenn die Architektur nicht passt dann kannst den Container nicht starten, da kommt dann eine Fehlermeldung beim Pull.

Wenn der Container aber erfolgreich startet passt es.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Dezember 2020, 19:23:16
Zitat von: kadettilac89 am 03 Dezember 2020, 19:10:02
dann bau mal zum test einen container für mariadb in docker-compose ein. Ich dachte RPI4 ist mittlerweile ARM64. Wenn die Architektur nicht passt dann kannst den Container nicht starten, da kommt dann eine Fehlermeldung beim Pull.
Das Raspbian ist 32 Bit , aber es gibt ein neues Raspberry Pi OS 64 Bit.
Ich check das mal, aber das wird etwas dauern und gehört in einen anderen Thread.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: IcedEarth am 22 Januar 2021, 21:15:24
Hi zusammen,

ich kann jetzt auf meinem RPI im Docker Grafana Grafen rendern. Wenn ich die wie im Wiki per weblink in FHEM einbinde, geschieht dies ja als blockierender Aufruf. Gibt es einen Weg dies non-blocking zu machen?

Viele Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 08 Februar 2021, 22:11:11
Grafana 7.4 bringt endlich interpolierte Line Charts mir der neuen Time series Visualisierung.
Meine Augen sind entzückt. :)

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: freddykr am 13 Februar 2021, 13:45:16
Hallo zusammen,

ich stehe grad mächtig auf dem Schlauch und vielleicht hat ja jemand eine Idee.
Ausgangssituation ist Grafana 7.4.1 mit einer MariaDB im Hintergrund mit den FHEM-Daten.
Mein Regenmesser schreibt mit ein Attribut "today" in die Datenbank, welches am Tag immer aufsummiert wird und am nächsten Tag wieder "0" ist.

Auszug aus der Datenbank:

SELECT *  FROM `history` WHERE `TIMESTAMP` BETWEEN '2021-02-01 00:00:00.000000' AND '2021-02-03 23:59:59.000000' AND `DEVICE` LIKE 'Regenmesser' AND `READING` LIKE 'today'


TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT
2021-02-01 00:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.114
2021-02-01 01:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.250
2021-02-01 02:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.250
2021-02-01 03:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.250
2021-02-01 04:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.250
2021-02-01 05:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.705
2021-02-01 06:30:00 Regenmesser CUL_TCM97001 rl_av_h today 1.167
2021-02-01 07:30:00 Regenmesser CUL_TCM97001 rl_av_h today 1.979
2021-02-01 08:30:00 Regenmesser CUL_TCM97001 rl_av_h today 2.500
2021-02-01 09:30:00 Regenmesser CUL_TCM97001 rl_av_h today 2.875
2021-02-01 10:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 11:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 12:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 13:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 14:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 15:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 16:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 17:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 18:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.000
2021-02-01 19:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.167
2021-02-01 20:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.250
2021-02-01 21:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.250
2021-02-01 22:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.250
2021-02-01 23:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.250
2021-02-02 00:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 01:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 02:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 03:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 04:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 05:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 06:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 07:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 08:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 09:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.000
2021-02-02 10:30:00 Regenmesser CUL_TCM97001 rl_av_h today 0.417
2021-02-02 11:30:00 Regenmesser CUL_TCM97001 rl_av_h today 1.562
2021-02-02 12:30:00 Regenmesser CUL_TCM97001 rl_av_h today 2.417
2021-02-02 13:30:00 Regenmesser CUL_TCM97001 rl_av_h today 3.654
2021-02-02 14:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 15:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 16:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 17:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 18:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 19:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 20:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 21:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 22:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.250
2021-02-02 23:30:00 Regenmesser CUL_TCM97001 rl_av_h today 4.192
2021-02-03 00:30:00 Regenmesser CUL_TCM97001 rl_av_h today 1.385
2021-02-03 01:30:00 Regenmesser CUL_TCM97001 rl_av_h today 2.000


Mein Ziel ist jetzt mit Grafana eine Übersicht des Regens der einzelnen Tag des letzten Monats herzustellen.
Prinzipiell funktioniert es auch, aber nur mit "avg(value)".
So sind aber natürlich die Werte absolut falsch, da er einen Durchschnitt des Tages annimmt.
SELECT
  $__timeGroupAlias(TIMESTAMP,$__interval),
  avg(VALUE) AS "Regen"
FROM history
WHERE
  DEVICE = 'Regenmesser' AND
  READING = 'today'
GROUP BY $__timeGroup(TIMESTAMP,$__interval)


Nutze ich "max(value)" kommt nur "No Data", obwohl Daten von der DB kommen (überprüft mit tcpdump). Wenn ich den Befehl im phpmyadmin direkt eingebe, kommen auch Ergebnisse.

Jemand eine Idee?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 14 Februar 2021, 10:40:26
Zitat von: freddykr am 13 Februar 2021, 13:45:16

Jemand eine Idee?

Ich würde mir ein Userreading anlegen. Userreading hat das Delta und keine Summe.

Logik:
1) Wert = current Reading - OldReading
2) Wenn Wert < 0 --> Tageswechsel --> Reading = current Reading
3) Wenn Wert > 0 --> Delta berechnen --> Reading = current Reading - oldReading

oldReadings --> Commandref / Forumsuche
https://fhem.de/commandref.html#oldreadings

Das ganze in eine in 99_myUtils auslagern.

Alternativ: max-Funktion in SQL. Das funktioniert aber nur wenn du immer auf Tageswerte arbeitest.

Dann hast du ein Userreading mit der Differenz zum letzten Wert den du ganz einfach in Grafana plotten kannst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 14 Februar 2021, 11:00:01
Zitat von: freddykr am 13 Februar 2021, 13:45:16
Jemand eine Idee?
Moin,
zu Begin des Folgetages mit einem DbRep maxValue den Wert in der Datenbank erstellen lassen.
Du kannst maxValue mit writeToDB verwenden und einen neuen Wert erstellen, die anderen bleiben dann erhalten.
Oder Du verwendest deleteOther, dann hat der Maxwert den selben Namen, alle anderen werden jedoch gelöscht. Hierbei solltest Du aber vorher erst mal mit Display arbeiten und überprüfen, ob der Maxwert nicht eventuell auch mal am nächsten Tag der Erste ist ;-) Dafür hatte ich mal ein SQL geschrieben, was das vorher korrigieren kann. Das DbRep kann Dir auch die ganzen alten Einträge für einen beliebigen Zeitraum bearbeiten.

Das mit Grafana habe ich auch schon mal festgestellt, dass da nicht alles so sauber ist.
Deshalb bereite ich die Daten vorher auf, was beim Anzeigen in Grafana auch immer wiederkehrende Berechnungen erspart.
Vor dem Löschen (deleteOther) wäre natürlich ein Backup schön, bis man weiß was man tut !
Und wie bereits geschrieben zuerst mit Display arbeiten, dann sieht man ob es die richtigen Datensätze sind.

Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 14 Februar 2021, 11:12:07
Zitat von: ch.eick am 14 Februar 2021, 11:00:01
Moin,
zu Begin des Folgetages mit einem DbRep maxValue den Wert in der Datenbank erstellen lassen.
Du kannst maxValue mit writeToDB verwenden und einen neuen Wert erstellen, die anderen bleiben dann erhalten.
Oder Du verwendest deleteOther, dann hat der Maxwert den selben Namen, alle anderen werden jedoch gelöscht. Hierbei solltest Du aber vorher erst mal mit Display arbeiten und überprüfen, ob der Maxwert nicht eventuell auch mal am nächsten Tag der Erste ist ;-) Dafür hatte ich mal ein SQL geschrieben, was das vorher korrigieren kann. Das DbRep kann Dir auch die ganzen alten Einträge für einen beliebigen Zeitraum bearbeiten.

Das mit Grafana habe ich auch schon mal festgestellt, dass da nicht alles so sauber ist.
Deshalb bereite ich die Daten vorher auf, was beim Anzeigen in Grafana auch immer wiederkehrende Berechnungen erspart.
Vor dem Löschen (deleteOther) wäre natürlich ein Backup schön, bis man weiß was man tut !
Und wie bereits geschrieben zuerst mit Display arbeiten, dann sieht man ob es die richtigen Datensätze sind.

Gruß
   Christian

Workarounds ... wenn der TE damit leben kann

- Wert nur zum Tageswechsel - aktueller Tag fehlt
- Werte wieder Löschen ... späteres Reporting auf Stunden oder andere Zeiteinheiten nicht mehr möglich

Das mit Grafana habe ich auch schon mal festgestellt, dass da nicht alles so sauber ist.
- Beispiel?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 14 Februar 2021, 11:27:21
Zitat von: kadettilac89 am 14 Februar 2021, 11:12:07
- Wert nur zum Tageswechsel - aktueller Tag fehlt
- Werte wieder Löschen ... späteres Reporting auf Stunden oder andere Zeiteinheiten nicht mehr möglich
Dann wäre writeToDB die Waffe der Wahl.
Oder das funktionierende SQL als sqlCmd.

Zitat
Das mit Grafana habe ich auch schon mal festgestellt, dass da nicht alles so sauber ist.
- Beispiel?
Das selbe wie bereits genannt. avg() okay max() geht nicht.

Ich stimme natürlich zu, dass es nur ein Workaround ist.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 14 Februar 2021, 12:02:45
Es liegt nicht an Grafana sondern daran, dass die Datenbank die Werte als String speichert und diese erstmal ge-cast-et werden müssen.

Ein Beispiel aus diesem Thread etwas abgewandelt liefert bei mir jedenfalls Werte. Sinnhaftigkeit mal dahingestellt

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  MAX(CONVERT(VALUE, double)) as value,
  "Temp" as metric
FROM history
WHERE READING="temperature" AND DEVICE="HMTempSensor4" AND $__timeFilter(TIMESTAMP)
GROUP BY UNIX_TIMESTAMP(TIMESTAMP) DIV 86400


Dennoch bin ich der Verfechter davon, schon zu Beginn die Daten sauber zu loggen statt später irgendwelche Verrenkungen zu machen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: freddykr am 18 Februar 2021, 18:21:10
Sorry für meine späte Reaktion.
Im Endeffekt waren zwei Dinge das Problem:
1)  Zum Einen musste bei der Query "Format as" --> "Table" sein und nicht "Time Series". Dann nahm er auch "max(value)" an
2) Und dann natürlich noch die CONVERT-Funktion, wobei ich CAST genutzt habe: max(CAST(VALUE as DECIMAL(10,2))) AS "Niederschlag"

In allem "dämliche" Anfängerfehler... ;)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Februar 2021, 07:56:05
noch ein Tip, prüfe ob die Werte richtig agregiert werden oder um 1/2 Stunden verschoben sind. Suche in diesem Thread nach Zeitzone findet mehrere betroffene User und Lösungen ... das Problem wurde schon öfter diskutiert.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 01:20:17
Mein Ziel ist es ein Diagramm per Telegram zu versenden. Vor 2 Wochen hatte ich das eingerichtet, was auch funktioniert hat.
wget "http://192.168.178.15:3000/render/d-solo/XHwDB77Gk/test2?orgId=1&panelId=4"
--2021-04-13 12:42:10--  http://192.168.178.15:3000/render/d-solo/XHwDB77Gk/test2?orgId=1&panelId=4
Connecting to 192.168.178.15:3000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34528 (34K) [image/png]
Saving to: 'test2?orgId=1&panelId=4'

test2?orgId=1&panelId=4                    100%[=====================================================================================>]  33,72K  --.-KB/s    in 0,001s

2021-04-13 12:42:17 (30,1 MB/s) - 'test2?orgId=1&panelId=4' saved [34528/34528]

root@docker:/home/user/test-grafana# ls
'test2?orgId=1&panelId=4'


Seit ein paar Tagen wir jedoch nur noch die HTML Datei heruntergeladen und nicht mehr die Grafik.

Auch mit dem curl Befehl und angelegtem API Key funktioniert es nicht
curl -H "Authorization: Bearer eyJrIjoiSko4Qk1CT1lxNDRyUE5hTUJivdfjkDSDLJSDMsdnsjkdehsyZXIiLCJpZCI6MX0=" http://192.168.178.15:3000/render/d-solo/XHwDB77Gk/test2?orgId=1&panelId=4

Ohne Login komme ich nicht mehr auf das Bild, ich meine vor 2 Wochen hat das noch funktioniert.

Ein Update wurde ich der Zeit auch gemacht, ich meine von einer frühen 7.X nach 7.5.3.

Grafana läuft in Docker auf einem NUC, ebenso der Renderer. Daher habe ich das mit dem Firefox wie im Wiki beschrieben nicht durchgeführt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 April 2021, 08:40:07
Zitat von: TWART016 am 26 April 2021, 01:20:17

Seit ein paar Tagen wir jedoch nur noch die HTML Datei heruntergeladen und nicht mehr die Grafik.

Ohne Login komme ich nicht mehr auf das Bild, ich meine vor 2 Wochen hat das noch funktioniert.

Ein Update wurde ich der Zeit auch gemacht, ich meine von einer frühen 7.X nach 7.5.3.

Grafana läuft in Docker auf einem NUC, ebenso der Renderer. Daher habe ich das mit dem Firefox wie im Wiki beschrieben nicht durchgeführt.

HTML Datei ... was steht da drin, Fehlermeldungen? Authentication failed ...? Link auf ein PNG bzw. Bild? Kannst du diesen Link verwenden?

Update und dann benötigt es ein Login? Release notes von Grafana gelesen, wird das als Änderung gelistet?

Edit, ich nutze 7.5.4 in Docker und kann mir das gerenderte Bild als Link ohne Logon ansehen. Muss aber nichts heißen, kommt halt auf dein Setup und deine Anforderung an. Getestet in einen private Tab in Chrome ...

Link sieht so aus ... also auch ein gerenderter Plot

http://xxxxxxx:3000/grafana/render/d-solo/kxQQuHRZk/proxmox?orgId=1&refresh=1m&from=1619332828069&to=1619419228069&panelId=2&width=1000&height=500&tz=Europe%2FBerlin
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 09:54:18
Zitat von: kadettilac89 am 26 April 2021, 08:40:07
HTML Datei ... was steht da drin, Fehlermeldungen? Authentication failed ...? Link auf ein PNG bzw. Bild? Kannst du diesen Link verwenden?
If you're seeing this Grafana has failed to load its application files

Die komplette html:
<!DOCTYPE html>
<html lang="en">
  <head>
    <script nonce="">
     
      !(function () {
        if ('PerformanceLongTaskTiming' in window) {
          var g = (window.__tti = { e: [] });
          g.o = new PerformanceObserver(function (l) {
            g.e = g.e.concat(l.getEntries());
          });
          g.o.observe({ entryTypes: ['longtask'] });
        }
      })();
    </script>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width" />
    <meta name="theme-color" content="#000" />

    <title>Grafana</title>

    <base href="/" />

    <link
      rel="preload"
      href="public/fonts/roboto/RxZJdnzeo3R5zSexge8UUVtXRa8TVwTICgirnJhmVJw.woff2"
      as="font"
      crossorigin
    />

    <link rel="icon" type="image/png" href="public/img/fav32.png" />
    <link rel="apple-touch-icon" sizes="180x180" href="public/img/apple-touch-icon.png" />
    <link rel="mask-icon" href="public/img/grafana_mask_icon.svg" color="#F05A28" />
    <link rel="stylesheet" href="public/build/grafana.dark.88f3571bf814cd85c9d4.css" />

    <script nonce="">
      performance.mark('css done blocking');
    </script>
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <meta name="msapplication-TileColor" content="#2b5797" />
    <meta name="msapplication-config" content="public/img/browserconfig.xml" />
  </head>

  <body class="theme-dark app-grafana">
    <style>
      .preloader {
        height: 100%;
        flex-direction: column;
        display: flex;
        justify-content: center;
        align-items: center;
      }

      .preloader__enter {
        opacity: 0;
        animation-name: preloader-fade-in;
        animation-iteration-count: 1;
        animation-duration: 0.9s;
        animation-delay: 1.35s;
        animation-fill-mode: forwards;
      }

      .preloader__bounce {
        text-align: center;
        animation-name: preloader-bounce;
        animation-duration: 0.9s;
        animation-iteration-count: infinite;
      }

      .preloader__logo {
        display: inline-block;
        animation-name: preloader-squash;
        animation-duration: 0.9s;
        animation-iteration-count: infinite;
        width: 60px;
        height: 60px;
        background-repeat: no-repeat;
        background-size: contain;
        background-image: url("data:image/svg+xml,%3csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='351px' height='365px' viewBox='0 0 351 365' style='enable-background:new 0 0 351 365%3b' xml:space='preserve'%3e %3cstyle type='text/css'%3e .st0%7bfill:url(%23SVGID_1_)%3b%7d %3c/style%3e %3cg id='Layer_1_1_'%3e %3c/g%3e %3clinearGradient id='SVGID_1_' gradientUnits='userSpaceOnUse' x1='175.5' y1='445.4948' x2='175.5' y2='114.0346'%3e %3cstop offset='0' style='stop-color:%23FFF100'/%3e %3cstop offset='1' style='stop-color:%23F05A28'/%3e %3c/linearGradient%3e %3cpath class='st0' d='M342%2c161.2c-0.6-6.1-1.6-13.1-3.6-20.9c-2-7.7-5-16.2-9.4-25c-4.4-8.8-10.1-17.9-17.5-26.8 c-2.9-3.5-6.1-6.9-9.5-10.2c5.1-20.3-6.2-37.9-6.2-37.9c-19.5-1.2-31.9%2c6.1-36.5%2c9.4c-0.8-0.3-1.5-0.7-2.3-1 c-3.3-1.3-6.7-2.6-10.3-3.7c-3.5-1.1-7.1-2.1-10.8-3c-3.7-0.9-7.4-1.6-11.2-2.2c-0.7-0.1-1.3-0.2-2-0.3 c-8.5-27.2-32.9-38.6-32.9-38.6c-27.3%2c17.3-32.4%2c41.5-32.4%2c41.5s-0.1%2c0.5-0.3%2c1.4c-1.5%2c0.4-3%2c0.9-4.5%2c1.3c-2.1%2c0.6-4.2%2c1.4-6.2%2c2.2 c-2.1%2c0.8-4.1%2c1.6-6.2%2c2.5c-4.1%2c1.8-8.2%2c3.8-12.2%2c6c-3.9%2c2.2-7.7%2c4.6-11.4%2c7.1c-0.5-0.2-1-0.4-1-0.4c-37.8-14.4-71.3%2c2.9-71.3%2c2.9 c-3.1%2c40.2%2c15.1%2c65.5%2c18.7%2c70.1c-0.9%2c2.5-1.7%2c5-2.5%2c7.5c-2.8%2c9.1-4.9%2c18.4-6.2%2c28.1c-0.2%2c1.4-0.4%2c2.8-0.5%2c4.2 C18.8%2c192.7%2c8.5%2c228%2c8.5%2c228c29.1%2c33.5%2c63.1%2c35.6%2c63.1%2c35.6c0%2c0%2c0.1-0.1%2c0.1-0.1c4.3%2c7.7%2c9.3%2c15%2c14.9%2c21.9c2.4%2c2.9%2c4.8%2c5.6%2c7.4%2c8.3 c-10.6%2c30.4%2c1.5%2c55.6%2c1.5%2c55.6c32.4%2c1.2%2c53.7-14.2%2c58.2-17.7c3.2%2c1.1%2c6.5%2c2.1%2c9.8%2c2.9c10%2c2.6%2c20.2%2c4.1%2c30.4%2c4.5 c2.5%2c0.1%2c5.1%2c0.2%2c7.6%2c0.1l1.2%2c0l0.8%2c0l1.6%2c0l1.6-0.1l0%2c0.1c15.3%2c21.8%2c42.1%2c24.9%2c42.1%2c24.9c19.1-20.1%2c20.2-40.1%2c20.2-44.4l0%2c0 c0%2c0%2c0-0.1%2c0-0.3c0-0.4%2c0-0.6%2c0-0.6l0%2c0c0-0.3%2c0-0.6%2c0-0.9c4-2.8%2c7.8-5.8%2c11.4-9.1c7.6-6.9%2c14.3-14.8%2c19.9-23.3 c0.5-0.8%2c1-1.6%2c1.5-2.4c21.6%2c1.2%2c36.9-13.4%2c36.9-13.4c-3.6-22.5-16.4-33.5-19.1-35.6l0%2c0c0%2c0-0.1-0.1-0.3-0.2 c-0.2-0.1-0.2-0.2-0.2-0.2c0%2c0%2c0%2c0%2c0%2c0c-0.1-0.1-0.3-0.2-0.5-0.3c0.1-1.4%2c0.2-2.7%2c0.3-4.1c0.2-2.4%2c0.2-4.9%2c0.2-7.3l0-1.8l0-0.9 l0-0.5c0-0.6%2c0-0.4%2c0-0.6l-0.1-1.5l-0.1-2c0-0.7-0.1-1.3-0.2-1.9c-0.1-0.6-0.1-1.3-0.2-1.9l-0.2-1.9l-0.3-1.9 c-0.4-2.5-0.8-4.9-1.4-7.4c-2.3-9.7-6.1-18.9-11-27.2c-5-8.3-11.2-15.6-18.3-21.8c-7-6.2-14.9-11.2-23.1-14.9 c-8.3-3.7-16.9-6.1-25.5-7.2c-4.3-0.6-8.6-0.8-12.9-0.7l-1.6%2c0l-0.4%2c0c-0.1%2c0-0.6%2c0-0.5%2c0l-0.7%2c0l-1.6%2c0.1c-0.6%2c0-1.2%2c0.1-1.7%2c0.1 c-2.2%2c0.2-4.4%2c0.5-6.5%2c0.9c-8.6%2c1.6-16.7%2c4.7-23.8%2c9c-7.1%2c4.3-13.3%2c9.6-18.3%2c15.6c-5%2c6-8.9%2c12.7-11.6%2c19.6c-2.7%2c6.9-4.2%2c14.1-4.6%2c21 c-0.1%2c1.7-0.1%2c3.5-0.1%2c5.2c0%2c0.4%2c0%2c0.9%2c0%2c1.3l0.1%2c1.4c0.1%2c0.8%2c0.1%2c1.7%2c0.2%2c2.5c0.3%2c3.5%2c1%2c6.9%2c1.9%2c10.1c1.9%2c6.5%2c4.9%2c12.4%2c8.6%2c17.4 c3.7%2c5%2c8.2%2c9.1%2c12.9%2c12.4c4.7%2c3.2%2c9.8%2c5.5%2c14.8%2c7c5%2c1.5%2c10%2c2.1%2c14.7%2c2.1c0.6%2c0%2c1.2%2c0%2c1.7%2c0c0.3%2c0%2c0.6%2c0%2c0.9%2c0c0.3%2c0%2c0.6%2c0%2c0.9-0.1 c0.5%2c0%2c1-0.1%2c1.5-0.1c0.1%2c0%2c0.3%2c0%2c0.4-0.1l0.5-0.1c0.3%2c0%2c0.6-0.1%2c0.9-0.1c0.6-0.1%2c1.1-0.2%2c1.7-0.3c0.6-0.1%2c1.1-0.2%2c1.6-0.4 c1.1-0.2%2c2.1-0.6%2c3.1-0.9c2-0.7%2c4-1.5%2c5.7-2.4c1.8-0.9%2c3.4-2%2c5-3c0.4-0.3%2c0.9-0.6%2c1.3-1c1.6-1.3%2c1.9-3.7%2c0.6-5.3 c-1.1-1.4-3.1-1.8-4.7-0.9c-0.4%2c0.2-0.8%2c0.4-1.2%2c0.6c-1.4%2c0.7-2.8%2c1.3-4.3%2c1.8c-1.5%2c0.5-3.1%2c0.9-4.7%2c1.2c-0.8%2c0.1-1.6%2c0.2-2.5%2c0.3 c-0.4%2c0-0.8%2c0.1-1.3%2c0.1c-0.4%2c0-0.9%2c0-1.2%2c0c-0.4%2c0-0.8%2c0-1.2%2c0c-0.5%2c0-1%2c0-1.5-0.1c0%2c0-0.3%2c0-0.1%2c0l-0.2%2c0l-0.3%2c0 c-0.2%2c0-0.5%2c0-0.7-0.1c-0.5-0.1-0.9-0.1-1.4-0.2c-3.7-0.5-7.4-1.6-10.9-3.2c-3.6-1.6-7-3.8-10.1-6.6c-3.1-2.8-5.8-6.1-7.9-9.9 c-2.1-3.8-3.6-8-4.3-12.4c-0.3-2.2-0.5-4.5-0.4-6.7c0-0.6%2c0.1-1.2%2c0.1-1.8c0%2c0.2%2c0-0.1%2c0-0.1l0-0.2l0-0.5c0-0.3%2c0.1-0.6%2c0.1-0.9 c0.1-1.2%2c0.3-2.4%2c0.5-3.6c1.7-9.6%2c6.5-19%2c13.9-26.1c1.9-1.8%2c3.9-3.4%2c6-4.9c2.1-1.5%2c4.4-2.8%2c6.8-3.9c2.4-1.1%2c4.8-2%2c7.4-2.7 c2.5-0.7%2c5.1-1.1%2c7.8-1.4c1.3-0.1%2c2.6-0.2%2c4-0.2c0.4%2c0%2c0.6%2c0%2c0.9%2c0l1.1%2c0l0.7%2c0c0.3%2c0%2c0%2c0%2c0.1%2c0l0.3%2c0l1.1%2c0.1 c2.9%2c0.2%2c5.7%2c0.6%2c8.5%2c1.3c5.6%2c1.2%2c11.1%2c3.3%2c16.2%2c6.1c10.2%2c5.7%2c18.9%2c14.5%2c24.2%2c25.1c2.7%2c5.3%2c4.6%2c11%2c5.5%2c16.9c0.2%2c1.5%2c0.4%2c3%2c0.5%2c4.5 l0.1%2c1.1l0.1%2c1.1c0%2c0.4%2c0%2c0.8%2c0%2c1.1c0%2c0.4%2c0%2c0.8%2c0%2c1.1l0%2c1l0%2c1.1c0%2c0.7-0.1%2c1.9-0.1%2c2.6c-0.1%2c1.6-0.3%2c3.3-0.5%2c4.9 c-0.2%2c1.6-0.5%2c3.2-0.8%2c4.8c-0.3%2c1.6-0.7%2c3.2-1.1%2c4.7c-0.8%2c3.1-1.8%2c6.2-3%2c9.3c-2.4%2c6-5.6%2c11.8-9.4%2c17.1 c-7.7%2c10.6-18.2%2c19.2-30.2%2c24.7c-6%2c2.7-12.3%2c4.7-18.8%2c5.7c-3.2%2c0.6-6.5%2c0.9-9.8%2c1l-0.6%2c0l-0.5%2c0l-1.1%2c0l-1.6%2c0l-0.8%2c0 c0.4%2c0-0.1%2c0-0.1%2c0l-0.3%2c0c-1.8%2c0-3.5-0.1-5.3-0.3c-7-0.5-13.9-1.8-20.7-3.7c-6.7-1.9-13.2-4.6-19.4-7.8 c-12.3-6.6-23.4-15.6-32-26.5c-4.3-5.4-8.1-11.3-11.2-17.4c-3.1-6.1-5.6-12.6-7.4-19.1c-1.8-6.6-2.9-13.3-3.4-20.1l-0.1-1.3l0-0.3 l0-0.3l0-0.6l0-1.1l0-0.3l0-0.4l0-0.8l0-1.6l0-0.3c0%2c0%2c0%2c0.1%2c0-0.1l0-0.6c0-0.8%2c0-1.7%2c0-2.5c0.1-3.3%2c0.4-6.8%2c0.8-10.2 c0.4-3.4%2c1-6.9%2c1.7-10.3c0.7-3.4%2c1.5-6.8%2c2.5-10.2c1.9-6.7%2c4.3-13.2%2c7.1-19.3c5.7-12.2%2c13.1-23.1%2c22-31.8c2.2-2.2%2c4.5-4.2%2c6.9-6.2 c2.4-1.9%2c4.9-3.7%2c7.5-5.4c2.5-1.7%2c5.2-3.2%2c7.9-4.6c1.3-0.7%2c2.7-1.4%2c4.1-2c0.7-0.3%2c1.4-0.6%2c2.1-0.9c0.7-0.3%2c1.4-0.6%2c2.1-0.9 c2.8-1.2%2c5.7-2.2%2c8.7-3.1c0.7-0.2%2c1.5-0.4%2c2.2-0.7c0.7-0.2%2c1.5-0.4%2c2.2-0.6c1.5-0.4%2c3-0.8%2c4.5-1.1c0.7-0.2%2c1.5-0.3%2c2.3-0.5 c0.8-0.2%2c1.5-0.3%2c2.3-0.5c0.8-0.1%2c1.5-0.3%2c2.3-0.4l1.1-0.2l1.2-0.2c0.8-0.1%2c1.5-0.2%2c2.3-0.3c0.9-0.1%2c1.7-0.2%2c2.6-0.3 c0.7-0.1%2c1.9-0.2%2c2.6-0.3c0.5-0.1%2c1.1-0.1%2c1.6-0.2l1.1-0.1l0.5-0.1l0.6%2c0c0.9-0.1%2c1.7-0.1%2c2.6-0.2l1.3-0.1c0%2c0%2c0.5%2c0%2c0.1%2c0l0.3%2c0 l0.6%2c0c0.7%2c0%2c1.5-0.1%2c2.2-0.1c2.9-0.1%2c5.9-0.1%2c8.8%2c0c5.8%2c0.2%2c11.5%2c0.9%2c17%2c1.9c11.1%2c2.1%2c21.5%2c5.6%2c31%2c10.3 c9.5%2c4.6%2c17.9%2c10.3%2c25.3%2c16.5c0.5%2c0.4%2c0.9%2c0.8%2c1.4%2c1.2c0.4%2c0.4%2c0.9%2c0.8%2c1.3%2c1.2c0.9%2c0.8%2c1.7%2c1.6%2c2.6%2c2.4c0.9%2c0.8%2c1.7%2c1.6%2c2.5%2c2.4 c0.8%2c0.8%2c1.6%2c1.6%2c2.4%2c2.5c3.1%2c3.3%2c6%2c6.6%2c8.6%2c10c5.2%2c6.7%2c9.4%2c13.5%2c12.7%2c19.9c0.2%2c0.4%2c0.4%2c0.8%2c0.6%2c1.2c0.2%2c0.4%2c0.4%2c0.8%2c0.6%2c1.2 c0.4%2c0.8%2c0.8%2c1.6%2c1.1%2c2.4c0.4%2c0.8%2c0.7%2c1.5%2c1.1%2c2.3c0.3%2c0.8%2c0.7%2c1.5%2c1%2c2.3c1.2%2c3%2c2.4%2c5.9%2c3.3%2c8.6c1.5%2c4.4%2c2.6%2c8.3%2c3.5%2c11.7 c0.3%2c1.4%2c1.6%2c2.3%2c3%2c2.1c1.5-0.1%2c2.6-1.3%2c2.6-2.8C342.6%2c170.4%2c342.5%2c166.1%2c342%2c161.2z'/%3e %3c/svg%3e");
      }

      .preloader__text {
        margin-top: 16px;
        font-weight: 500;
        font-size: 14px;
        font-family: Sans-serif;
        opacity: 0;
        animation-name: preloader-fade-in;
        animation-duration: 0.9s;
        animation-delay: 1.8s;
        animation-fill-mode: forwards;
      }

      .theme-light .preloader__text {
        color: #52545c;
      }

      .theme-dark .preloader__text {
        color: #d8d9da;
      }

      @keyframes preloader-fade-in {
        0% {
          opacity: 0;
           
          animation-timing-function: cubic-bezier(0, 0, 0.5, 1);
        }
        100% {
          opacity: 1;
        }
      }

      @keyframes preloader-bounce {
        from,
        to {
          transform: translateY(0px);
          animation-timing-function: cubic-bezier(0.3, 0, 0.1, 1);
        }
        50% {
          transform: translateY(-50px);
          animation-timing-function: cubic-bezier(0.9, 0, 0.7, 1);
        }
      }

      @keyframes preloader-squash {
        0% {
          transform: scaleX(1.3) scaleY(0.8);
          animation-timing-function: cubic-bezier(0.3, 0, 0.1, 1);
          transform-origin: bottom center;
        }
        15% {
          transform: scaleX(0.75) scaleY(1.25);
          animation-timing-function: cubic-bezier(0, 0, 0.7, 0.75);
          transform-origin: bottom center;
        }
        55% {
          transform: scaleX(1.05) scaleY(0.95);
          animation-timing-function: cubic-bezier(0.9, 0, 1, 1);
          transform-origin: top center;
        }
        95% {
          transform: scaleX(0.75) scaleY(1.25);
          animation-timing-function: cubic-bezier(0, 0, 0, 1);
          transform-origin: bottom center;
        }
        100% {
          transform: scaleX(1.3) scaleY(0.8);
          transform-origin: bottom center;
          animation-timing-function: cubic-bezier(0, 0, 0.7, 1);
        }
      }

       
      .preloader__text--fail {
        display: none;
      }

       
      .preloader--done .preloader__bounce,
      .preloader--done .preloader__logo {
        animation-name: none;
        display: none;
      }

      .preloader--done .preloader__logo,
      .preloader--done .preloader__text {
        display: none;
        color: #ff5705 !important;
        font-size: 15px;
      }

      .preloader--done .preloader__text--fail {
        display: block;
      }

      [ng\:cloak],
      [ng-cloak],
      .ng-cloak {
        display: none !important;
      }
    </style>

    <div class="preloader">
      <div class="preloader__enter">
        <div class="preloader__bounce">
          <div class="preloader__logo"></div>
        </div>
      </div>
      <div class="preloader__text">Loading Grafana</div>
      <div class="preloader__text preloader__text--fail">
        <p>
          <strong>If you're seeing this Grafana has failed to load its application files</strong>
          <br />
          <br />
        </p>
        <p>
          1. This could be caused by your reverse proxy settings.<br /><br />
          2. If you host grafana under subpath make sure your grafana.ini root_url setting includes subpath. If not
          using a reverse proxy make sure to set serve_from_sub_path to true.<br />
          <br />
          3. If you have a local dev build make sure you build frontend using: yarn start, yarn start:hot, or yarn
          build<br />
          <br />
          4. Sometimes restarting grafana-server can help<br />
          <br />
          5. Check if you are using a non-supported browser. For more information, refer to the list of <a
            href="https://grafana.com/docs/grafana/latest/installation/requirements/#supported-web-browsers">
            supported browsers</a>.
        </p>
      </div>
    </div>

    <grafana-app class="grafana-app" ng-cloak>
      <sidemenu class="sidemenu"></sidemenu>
      <app-notifications-list class="page-alert-list"></app-notifications-list>
      <search-wrapper></search-wrapper>

      <div class="main-view">
        <div ng-view class="scroll-canvas"></div>
      </div>
    </grafana-app>

    <script nonce="">
        window.grafanaBootData = {
          user: {"isSignedIn":false,"id":0,"login":"","email":"","name":"","lightTheme":false,"orgCount":0,"orgId":0,"orgName":"","orgRole":"","isGrafanaAdmin":false,"gravatarUrl":"","timezone":"browser","locale":"en-US","helpFlags1":0,"hasEditPermissionInFolders":false},
          settings: {"alertingEnabled":true,"alertingErrorOrTimeout":"alerting","alertingMinInterval":1,"alertingNoDataOrNullValues":"no_data","allowOrgCreate":false,"appSubUrl":"","appUrl":"http://localhost:3000/","authProxyEnabled":false,"autoAssignOrg":true,"awsAllowedAuthProviders":["default","keys","credentials"],"awsAssumeRoleEnabled":true,"buildInfo":{"buildstamp":1617791761,"commit":"3e3cf4dc60","edition":"Open Source","env":"production","hasUpdate":true,"hideVersion":false,"isEnterprise":false,"latestVersion":"7.5.4","version":"7.5.3"},"datasources":{"-- Dashboard --":{"meta":{"type":"datasource","name":"-- Dashboard --","id":"dashboard","info":{"author":{"name":"","url":""},"description":"","links":null,"logos":{"small":"public/img/icn-datasource.svg","large":"public/img/icn-datasource.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaVersion":"*","plugins":[]},"includes":null,"module":"app/plugins/datasource/dashboard/module","baseUrl":"public/app/plugins/datasource/dashboard","category":"","preload":false,"signature":"internal","Root":null,"annotations":false,"metrics":true,"alerting":false,"explore":false,"tables":false,"logs":false,"tracing":false,"builtIn":true,"routes":null,"streaming":false},"name":"-- Dashboard --","type":"datasource"},"-- Grafana --":{"meta":{"type":"datasource","name":"-- Grafana --","id":"grafana","info":{"author":{"name":"","url":""},"description":"","links":null,"logos":{"small":"public/img/icn-datasource.svg","large":"public/img/icn-datasource.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaVersion":"*","plugins":[]},"includes":null,"module":"app/plugins/datasource/grafana/module","baseUrl":"public/app/plugins/datasource/grafana","category":"","preload":false,"signature":"internal","Root":null,"annotations":true,"metrics":true,"alerting":false,"explore":false,"tables":false,"logs":false,"tracing":false,"builtIn":true,"routes":null,"streaming":false},"name":"-- Grafana --","type":"datasource"},"-- Mixed --":{"meta":{"type":"datasource","name":"-- Mixed --","id":"mixed","info":{"author":{"name":"","url":""},"description":"","links":null,"logos":{"small":"public/img/icn-datasource.svg","large":"public/img/icn-datasource.svg"},"build":{},"screenshots":null,"version":"","updated":""},"dependencies":{"grafanaVersion":"*","plugins":[]},"includes":null,"module":"app/plugins/datasource/mixed/module","baseUrl":"public/app/plugins/datasource/mixed","category":"","preload":false,"signature":"internal","Root":null,"annotations":false,"metrics":true,"alerting":false,"explore":false,"tables":false,"logs":false,"tracing":false,"queryOptions":{"minInterval":true},"builtIn":true,"mixed":true,"routes":null,"streaming":false},"name":"-- Mixed --","type":"datasource"}},"dateFormats":{"fullDate":"YYYY-MM-DD HH:mm:ss","useBrowserLocale":false,"interval":{"second":"HH:mm:ss","minute":"HH:mm","hour":"DD.MM HH:mm","day":"MMM DD","month":"YYYY/MM","year":"YYYY"},"defaultTimezone":"browser"},"defaultDatasource":"-- Grafana --","disableLoginForm":false,"disableSanitizeHtml":false,"disableUserSignUp":true,"editorsCanAdmin":false,"exploreEnabled":true,"expressionsEnabled":true,"externalUserMngInfo":"","externalUserMngLinkName":"","externalUserMngLinkUrl":"","featureToggles":{},"googleAnalyticsId":"","http2Enabled":false,"ldapEnabled":false,"licenseInfo":{"edition":"Open Source","expiry":0,"hasLicense":false,"hasValidLicense":false,"licenseUrl":"https://grafana.com/products/enterprise/?utm_source=grafana_footer","stateInfo":""},"loginHint":"email or username","marketplaceUrl":"https://grafana.com/grafana/plugins/","minRefreshInterval":"5s","oauth":{},"panels":{"alertlist":{"baseUrl":"public/app/plugins/panel/alertlist","hideFromList":false,"id":"alertlist","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Shows list of alerts and their current status","links":null,"logos":{"small":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/alertlist/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/alertlist/module","name":"Alert list","signature":"internal","skipDataQuery":true,"sort":10,"state":""},"bargauge":{"baseUrl":"public/app/plugins/panel/bargauge","hideFromList":false,"id":"bargauge","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg","large":"public/app/plugins/panel/bargauge/img/icon_bar_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/bargauge/module","name":"Bar gauge","signature":"internal","skipDataQuery":false,"sort":5,"state":""},"dashlist":{"baseUrl":"public/app/plugins/panel/dashlist","hideFromList":false,"id":"dashlist","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"List of dynamic links to other dashboards","links":null,"logos":{"small":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/dashlist/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/dashlist/module","name":"Dashboard list","signature":"internal","skipDataQuery":true,"sort":11,"state":""},"gauge":{"baseUrl":"public/app/plugins/panel/gauge","hideFromList":false,"id":"gauge","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/gauge/img/icon_gauge.svg","large":"public/app/plugins/panel/gauge/img/icon_gauge.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/gauge/module","name":"Gauge","signature":"internal","skipDataQuery":false,"sort":4,"state":""},"gettingstarted":{"baseUrl":"public/app/plugins/panel/gettingstarted","hideFromList":true,"id":"gettingstarted","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/gettingstarted/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/gettingstarted/module","name":"Getting Started","signature":"internal","skipDataQuery":true,"sort":100,"state":""},"graph":{"baseUrl":"public/app/plugins/panel/graph","hideFromList":false,"id":"graph","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Graph Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/graph/img/icn-graph-panel.svg","large":"public/app/plugins/panel/graph/img/icn-graph-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/graph/module","name":"Graph","signature":"internal","skipDataQuery":false,"sort":1,"state":""},"heatmap":{"baseUrl":"public/app/plugins/panel/heatmap","hideFromList":false,"id":"heatmap","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Heatmap Panel for Grafana","links":[{"name":"Brendan Gregg - Heatmaps","url":"http://www.brendangregg.com/heatmaps.html"},{"name":"Brendan Gregg - Latency Heatmaps","url":" http://www.brendangregg.com/HeatMaps/latency.html"}],"logos":{"small":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg","large":"public/app/plugins/panel/heatmap/img/icn-heatmap-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/heatmap/module","name":"Heatmap","signature":"internal","skipDataQuery":false,"sort":9,"state":""},"logs":{"baseUrl":"public/app/plugins/panel/logs","hideFromList":false,"id":"logs","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/logs/img/icn-logs-panel.svg","large":"public/app/plugins/panel/logs/img/icn-logs-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/logs/module","name":"Logs","signature":"internal","skipDataQuery":false,"sort":100,"state":""},"news":{"baseUrl":"public/app/plugins/panel/news","hideFromList":false,"id":"news","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/news/img/news.svg","large":"public/app/plugins/panel/news/img/news.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/news/module","name":"News","signature":"internal","skipDataQuery":true,"sort":12,"state":"beta"},"nodeGraph":{"baseUrl":"public/app/plugins/panel/nodeGraph","hideFromList":false,"id":"nodeGraph","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg","large":"public/app/plugins/panel/nodeGraph/img/icn-node-graph.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/nodeGraph/module","name":"Node Graph","signature":"internal","skipDataQuery":false,"sort":100,"state":"beta"},"piechart":{"baseUrl":"public/app/plugins/panel/piechart","hideFromList":false,"id":"piechart","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/piechart/img/icon_piechart.svg","large":"public/app/plugins/panel/piechart/img/icon_piechart.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/piechart/module","name":"Pie chart v2","signature":"internal","skipDataQuery":false,"sort":100,"state":"beta"},"pluginlist":{"baseUrl":"public/app/plugins/panel/pluginlist","hideFromList":false,"id":"pluginlist","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Plugin List for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/pluginlist/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/pluginlist/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/pluginlist/module","name":"Plugin list","signature":"internal","skipDataQuery":true,"sort":100,"state":""},"singlestat":{"baseUrl":"public/app/plugins/panel/singlestat","hideFromList":false,"id":"singlestat","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Singlestat Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/singlestat/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/singlestat/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/singlestat/module","name":"Singlestat","signature":"internal","skipDataQuery":false,"sort":7,"state":"deprecated"},"stat":{"baseUrl":"public/app/plugins/panel/stat","hideFromList":false,"id":"stat","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Singlestat Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg","large":"public/app/plugins/panel/stat/img/icn-singlestat-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/stat/module","name":"Stat","signature":"internal","skipDataQuery":false,"sort":3,"state":""},"table":{"baseUrl":"public/app/plugins/panel/table","hideFromList":false,"id":"table","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Table Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/table/img/icn-table-panel.svg","large":"public/app/plugins/panel/table/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/table/module","name":"Table","signature":"internal","skipDataQuery":false,"sort":6,"state":""},"table-old":{"baseUrl":"public/app/plugins/panel/table-old","hideFromList":false,"id":"table-old","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"Table Panel for Grafana","links":null,"logos":{"small":"public/app/plugins/panel/table-old/img/icn-table-panel.svg","large":"public/app/plugins/panel/table-old/img/icn-table-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/table-old/module","name":"Table (old)","signature":"internal","skipDataQuery":false,"sort":100,"state":"deprecated"},"text":{"baseUrl":"public/app/plugins/panel/text","hideFromList":false,"id":"text","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/text/img/icn-text-panel.svg","large":"public/app/plugins/panel/text/img/icn-text-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/text/module","name":"Text","signature":"internal","skipDataQuery":true,"sort":8,"state":""},"timeseries":{"baseUrl":"public/app/plugins/panel/timeseries","hideFromList":false,"id":"timeseries","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg","large":"public/app/plugins/panel/timeseries/img/icn-timeseries-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/timeseries/module","name":"Time series","signature":"internal","skipDataQuery":false,"sort":2,"state":"beta"},"welcome":{"baseUrl":"public/app/plugins/panel/welcome","hideFromList":true,"id":"welcome","info":{"author":{"name":"Grafana Labs","url":"https://grafana.com"},"description":"","links":null,"logos":{"small":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg","large":"public/app/plugins/panel/welcome/img/icn-dashlist-panel.svg"},"build":{},"screenshots":null,"version":"","updated":""},"module":"app/plugins/panel/welcome/module","name":"Welcome","signature":"internal","skipDataQuery":true,"sort":100,"state":""}},"passwordHint":"password","pluginsToPreload":[],"rendererAvailable":true,"samlEnabled":false,"sentry":{"enabled":false,"dsn":"","customEndpoint":"/log","sampleRate":1},"sigV4AuthEnabled":false,"verifyEmailEnabled":false,"viewersCanEdit":false},
          navTree: [{"id":"dashboards","text":"Dashboards","subTitle":"Manage dashboards \u0026 folders","icon":"apps","url":"/","sortWeight":-1900,"children":[{"id":"home","text":"Home","icon":"home-alt","url":"/","hideFromTabs":true},{"id":"divider","text":"Divider","divider":true,"hideFromTabs":true},{"id":"manage-dashboards","text":"Manage","icon":"sitemap","url":"/dashboards"},{"id":"playlists","text":"Playlists","icon":"presentation-play","url":"/playlists"}]},{"id":"help","text":"Help","subTitle":"Grafana v7.5.3 (3e3cf4dc60)","icon":"question-circle","url":"#","sortWeight":-1200,"hideFromMenu":true}]
        };

     
        window.onload = function() {
          var preloader = document.getElementsByClassName("preloader");
          if (preloader.length) {
            preloader[0].className = "preloader preloader--done";
          }
        };
       
    </script>

     

   
     
        <script
          nonce=""
          src="public/build/runtime.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
     
        <script
          nonce=""
          src="public/build/angular~app.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
     
        <script
          nonce=""
          src="public/build/app.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
     
        <script
          nonce=""
          src="public/build/moment~app.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
     
        <script
          nonce=""
          src="public/build/unicons~app.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
     
        <script
          nonce=""
          src="public/build/vendors~app.88f3571bf814cd85c9d4.js"
          type="text/javascript">
        </script>
     
   
    <script nonce="">
      performance.mark('js done blocking');
    </script>
  </body>
</html>




Zitat von: kadettilac89 am 26 April 2021, 08:40:07
Update und dann benötigt es ein Login? Release notes von Grafana gelesen, wird das als Änderung gelistet?
In den Release Notes finde ich nichts dazu. Ich weiß nicht ob es an dem Update liegt. Die 7.5.4 gibt es seit 14.4. Ich meine die Version habe ich noch ein paar Tage verwendet, und es hat damit auch funktioniert


Zitat von: kadettilac89 am 26 April 2021, 08:40:07
Edit, ich nutze 7.5.4 in Docker und kann mir das gerenderte Bild als Link ohne Logon ansehen. Muss aber nichts heißen, kommt halt auf dein Setup und deine Anforderung an. Getestet in einen private Tab in Chrome ...
Nutzt du eine Einstellung in grafani.ini für Anonymous Auth?


Link sieht so aus ... also auch ein gerenderter Plot

http://xxxxxxx:3000/grafana/render/d-solo/kxQQuHRZk/proxmox?orgId=1&refresh=1m&from=1619332828069&to=1619419228069&panelId=2&width=1000&height=500&tz=Europe%2FBerlin

[/quote]
Das ist meine gekürzte URL
http://192.168.178.15:3000/render/d-solo/XHwDB77Gk/test2?orgId=1&panelId=4
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 April 2021, 11:22:22
Zitat von: TWART016 am 26 April 2021, 09:54:18
If you're seeing this Grafana has failed to load its application files


          <strong>If you're seeing this Grafana has failed to load its application files</strong>
          <br />
          <br />
        </p>
        <p>
          1. This could be caused by your reverse proxy settings.<br /><br />
          2. If you host grafana under subpath make sure your grafana.ini root_url setting includes subpath. If not
          using a reverse proxy make sure to set serve_from_sub_path to true.<br />
          <br />
          3. If you have a local dev build make sure you build frontend using: yarn start, yarn start:hot, or yarn
          build<br />
          <br />
          4. Sometimes restarting grafana-server can help<br />
          <br />
          5. Check if you are using a non-supported browser. For more information, refer to the list of <a
            href="https://grafana.com/docs/grafana/latest/installation/requirements/#supported-web-browsers">
            supported browsers</a>.


Steht ja klar drin was los ist. Du hast vermutlich in der Config die Url + Subpath konfiguriert und jetzt rufst du von Localhost (irgend einer lokalen Url) auf. Oder umgekehrt ... Zeig mal die komplette Config zu Grafana ...

Solche Parameter hast du entweder drin, und die passen nicht zum Aufruf. Oder du hast die nicht drin und werden erwartet. Hast du was am reverse Proxy gemacht, Update, Config ...?

            GF_SERVER_ROOT_URL: ${GF_SERVER_ROOT_URL}
            GF_SERVER_SERVE_FROM_SUB_PATH: "true"



Zitat von: TWART016 am 26 April 2021, 09:54:18
Nutzt du eine Einstellung in grafani.ini für Anonymous Auth?

Ja

        environment:
            GF_AUTH_ANONYMOUS_ENABLED: "true"
            GF_AUTH_ANONYMOUS_ORG_ROLE: "Viewer"
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 18:17:27
Zitat von: kadettilac89 am 26 April 2021, 11:22:22
Steht ja klar drin was los ist. Du hast vermutlich in der Config die Url + Subpath konfiguriert und jetzt rufst du von Localhost (irgend einer lokalen Url) auf. Oder umgekehrt ... Zeig mal die komplette Config zu Grafana ...
Das ist meine docker-compose. GF_AUTH_ANONYMOUS_ENABLED war bereits gesetzt, die anderen habe ich hinzugefügt. Gleiche Resultat, es erscheint nur die Loginseite.

grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    ports:
     - "3000:3000"
    environment:
      - GF_SERVER_ROOT_URL=http://192.168.178.15:3000
      - GF_RENDERING_SERVER_URL=http://renderer:8081/render
      - GF_RENDERING_CALLBACK_URL=http://grafana:3000/
      - GF_LOG_FILTERS=rendering:debug
      - GF_DATE_FORMATS_INTERVAL_HOUR=DD.MM HH:mm
      - GF_DATE_FORMATS_INTERVAL_DAY=MMM DD
      - GF_DATE_FORMATS_INTERVAL_MONTH=YYYY/MM
      - GF_SECURITY_ALLOW_EMBEDDING=true
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
      - TZ=Europe/Berlin
      - GF_SERVER_SERVE_FROM_SUB_PATH=true
    depends_on:
      - "database"
    volumes:
     - grafana-storage:/var/lib/grafana
  renderer:
    image: grafana/grafana-image-renderer:latest
    container_name: grafana_renderer
    restart: always
    ports:
      - 8081
    depends_on:
      - "grafana"



/etc/grafana/grafana.ini sieht so aus. Anscheinend wurde das nicht übernommen. Oder greift da jetzt eine andere Datei?
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
;enabled = false

# specify organization name that should be used for unauthenticated users
;org_name = Main Org.

# specify role for unauthenticated users
;org_role = Viewer

# mask the Grafana version number for unauthenticated users
;hide_version = false



Zitat von: kadettilac89 am 26 April 2021, 11:22:22
Solche Parameter hast du entweder drin, und die passen nicht zum Aufruf. Oder du hast die nicht drin und werden erwartet. Hast du was am reverse Proxy gemacht, Update, Config ...?

            GF_SERVER_ROOT_URL: ${GF_SERVER_ROOT_URL}
            GF_SERVER_SERVE_FROM_SUB_PATH: "true"

Ich nutze keinen Reverse Proxy.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 April 2021, 18:58:11
GF_SERVER_SERVE_FROM_SUB_PATH=true --> Ohne einen konfigurierten Sub-Path widerspricht sich das. Lösche mal den Parameter.

/etc/grafana/grafana.ini sieht so aus. Anscheinend wurde das nicht übernommen. Oder greift da jetzt eine andere Datei?
--> In Docker musst du die Parameter die dem Default abweichen als Environment-Variable mitgeben.

Paramter in Docker-Compose GF_AUTH_ANONYMOUS_ENABLED

setzt das hier zur Laufzeit. Einfach GF_<name in eckigen Klammern>_<Paramenername> ... alles Groß, Punkte durch Underscore (Unterstrich) ersetzt ...

[auth.anonymous]
# enable anonymous access
;enabled


Ohne Reverse Proxy solltest du keinerlei Subpath haben.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 19:17:58
Zitat von: kadettilac89 am 26 April 2021, 18:58:11
GF_SERVER_SERVE_FROM_SUB_PATH=true --> Ohne einen konfigurierten Sub-Path widerspricht sich das. Lösche mal den Parameter.
Habe ich wieder herausgenommen

Zitat von: kadettilac89 am 26 April 2021, 18:58:11
/etc/grafana/grafana.ini sieht so aus. Anscheinend wurde das nicht übernommen. Oder greift da jetzt eine andere Datei?
--> In Docker musst du die Parameter die dem Default abweichen als Environment-Variable mitgeben.

Paramter in Docker-Compose GF_AUTH_ANONYMOUS_ENABLED

setzt das hier zur Laufzeit. Einfach GF_<name in eckigen Klammern>_<Paramenername> ... alles Groß, Punkte durch Underscore (Unterstrich) ersetzt ...

[auth.anonymous]
# enable anonymous access
;enabled
Das hatte ich schon immer gesetzt
GF_AUTH_ANONYMOUS_ENABLED=true

Jedoch werden die Werte nicht in die grafana.ini geschrieben.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 April 2021, 19:42:41
Zitat von: TWART016 am 26 April 2021, 19:17:58
Habe ich wieder herausgenommen
Das hatte ich schon immer gesetzt
GF_AUTH_ANONYMOUS_ENABLED=true

Jedoch werden die Werte nicht in die grafana.ini geschrieben.
die grafana.ini wird nicht verwendet bzw. nicht geändert. Die Parameter werden zur Laufzeit nur im Arbeitsspeicher gehalten.

Ändert sich was, oder ist das Verhalten immer noch so?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 20:42:10
Zitat von: kadettilac89 am 26 April 2021, 19:42:41
die grafana.ini wird nicht verwendet bzw. nicht geändert. Die Parameter werden zur Laufzeit nur im Arbeitsspeicher gehalten.

Ändert sich was, oder ist das Verhalten immer noch so?
Ist leider immer noch so, es wird nur die Anmeldeseite angezeigt
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 April 2021, 21:17:34
was passiert wenn du Grafana über IP + Port aufrufst? müsste dieser Link sein, aus deinem Post entnommen. http://192.168.178.15:3000

Hast du Grafana komplett neu gestartet nachdem du die Änderung gemacht hast?

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 26 April 2021, 23:55:57
Zitat von: kadettilac89 am 26 April 2021, 21:17:34
was passiert wenn du Grafana über IP + Port aufrufst? müsste dieser Link sein, aus deinem Post entnommen. http://192.168.178.15:3000
Das leitet automatisch weiter zu http://192.168.178.15:3000/login

Zitat von: kadettilac89 am 26 April 2021, 21:17:34
Hast du Grafana komplett neu gestartet nachdem du die Änderung gemacht hast?
Ja, ich habe den Container neu erstellt.
Kann überprüft werden, was tatsächlich für Einstellungen derzeit gelten?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 27 April 2021, 08:06:42
Zitat von: TWART016 am 26 April 2021, 23:55:57
Das leitet automatisch weiter zu http://192.168.178.15:3000/login
Du hast anonymen Login aktiviert, da sollte kein Login erscheinen


Zitat von: TWART016 am 26 April 2021, 23:55:57
Kann überprüft werden, was tatsächlich für Einstellungen derzeit gelten?
Als Admin einloggen und links im Menü auf Settings ... habe dir einen Screenshot anghängt.

Ich habe mit genau deinen Settings einen Container gestartet, ich bekomme damit kein Login-Screen.

Unterschied ist die Version ... teste mal mit diesen Container          image: grafana/grafana
Das sollte die **7.5.4 Version ziehen, vielleicht war das ein Bug der korrigiert wurde. Du hast eine Version davor.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 28 April 2021, 01:55:50
Zitat von: kadettilac89 am 27 April 2021, 08:06:42
Als Admin einloggen und links im Menü auf Settings ... habe dir einen Screenshot anghängt.

Ich habe mit genau deinen Settings einen Container gestartet, ich bekomme damit kein Login-Screen.

Unterschied ist die Version ... teste mal mit diesen Container          image: grafana/grafana
Das sollte die **7.5.4 Version ziehen, vielleicht war das ein Bug der korrigiert wurde. Du hast eine Version davor.
Ich habe jetzt auf v7.5.4 (615c153b3a) aktualisiert, jedoch gleiches Verhalten. Kann in dem Container noch was umgestellt werden?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 28 April 2021, 08:54:58
du könntest mal zum testen den Parameter raus nehmen      - GF_SERVER_ROOT_URL=http://192.168.178.15:3000

Die Meldung im HTML-Code dass hier was mit der Url / Subpath nicht passt. Auch ein Redirekt auf die Login-Page sollte nicht gemacht werden da du den anonymen Zugriff erlaubst.

Du könntest mal einen komplett neuen Conainer erstellen in einem anderen lokalen Verzeichnis. Erstmal ohne irgend welche Parameter, dann die Parameter nach und nach. Nur zum Test des Login redirects. Ich kann nur bedingt nachtesten da ich selber einen Proxy nutze und dein Setup nur bedingt nachbauen kann.

Verwende aber ein anderes Volume ... damit du dir nichts überschreibst ... test, 2 ... oder irgend einen Suffix.


    volumes:
     - grafana-storage_test:/var/lib/grafana

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 29 April 2021, 01:46:34
Zitat von: kadettilac89 am 28 April 2021, 08:54:58
du könntest mal zum testen den Parameter raus nehmen      - GF_SERVER_ROOT_URL=http://192.168.178.15:3000
Auch damit funktioniert es nicht.

Zitat von: kadettilac89 am 28 April 2021, 08:54:58
Verwende aber ein anderes Volume ... damit du dir nichts überschreibst ... test, 2 ... oder irgend einen Suffix.


    volumes:
     - grafana-storage_test:/var/lib/grafana

Sobald ich nur das Volume in der gleichen Konfiguration ändere, kommt kein Login mehr. Jedoch sind natürlich die ganzen Daten auch weg. Können zumindest die Dashboards & Queries umgezogen werden?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 April 2021, 09:17:06
Zitat von: TWART016 am 29 April 2021, 01:46:34
Sobald ich nur das Volume in der gleichen Konfiguration ändere, kommt kein Login mehr. Jedoch sind natürlich die ganzen Daten auch weg. Können zumindest die Dashboards & Queries umgezogen werden?
Umziehen - ja.

1) Dashboard settings --> JSON-Model --> Text kopieren
2) Neues Grafana: auf das Plus in der linken Spalte --> Import --> Import via panel json

Man könnte auch die Grafana.db kopieren, aber da sind dann wieder alle Grafana-Settings, nicht nur die Dashboards.

Test mal ein Dashboard ob damit alles funktionieren würde, auch das Downlaod der PNG per wget.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: TWART016 am 02 Mai 2021, 14:54:24
Zitat von: kadettilac89 am 29 April 2021, 09:17:06
Umziehen - ja.

1) Dashboard settings --> JSON-Model --> Text kopieren
2) Neues Grafana: auf das Plus in der linken Spalte --> Import --> Import via panel json

Man könnte auch die Grafana.db kopieren, aber da sind dann wieder alle Grafana-Settings, nicht nur die Dashboards.

Test mal ein Dashboard ob damit alles funktionieren würde, auch das Downlaod der PNG per wget.

Danke funktioniert wieder alles nach dem Umzug. In den Einstellungen sieht man die ganzen Einstellungen. Die waren allerdings gleich, daher sehr komisch, warum das Problem vorhanden war.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 02 Mai 2021, 17:24:37
Zitat von: TWART016 am 02 Mai 2021, 14:54:24
Danke funktioniert wieder alles nach dem Umzug. In den Einstellungen sieht man die ganzen Einstellungen. Die waren allerdings gleich, daher sehr komisch, warum das Problem vorhanden war.

Spekulation ... ich denke durch ein Update und ggf. einen Bug wurde etwas verstellt, vielleicht auch eine Berechtigungssache. Das zu finden würde Tests und Zeit kosten.

Das ist der Vorteil von Docker. Man erhält mit überschaubarem Aufwand ein neues System.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 10 Mai 2021, 14:20:29
EDIT: Es hat sich erledigt. Nachdem ich alle SELECT auf einen einheitlichen Typus gebracht hatte, lief es wieder wie gewohnt.
   Danke für's zuhören :-)


Hallo zusammen,
ich habe gerade auf meinem RPI4 in docker das Grafana Image auf 7.5.5 aktualisiert.

Gibt es da ein Problem mit dem Stack von Werten? Auf den Bildern sieht man zwei Werte, die mit Stack = true bisher um diese Uhrzeit komplett rot waren.
Nun scheinen sie sich im Stacking mit oben und unten abzuwechseln :-)
Bild 1 und 2 sind die Einzelwerte und Bild 3 das Ergebnis.

EDIT: irgendwo konnte man "null" = 0 einstellen, aber ich finde es nicht mehr und vermute, dass es dort beim upgrade einen Wechsel gegeben haben könnte.
EDIT: Ich habe noch ein Bild angehängt. Dort sollte es ganz unten rot sein, darüber grün und maximal eine Linie in grau. Jetzt ist aller verwaschen und das grüne ist vom grau überlagert.
EDIT: In einem anderen Diagramm ist das Stacking jedoch weiterhin okay.
VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 12 Mai 2021, 11:12:22
Moin,
ich habe wieder einiges im Wiki aktualisiert.

- WR_1_Speicher_1_ExternControl da waren noch Fehler drin
- Diagramme wurde zu "Diagramme für SVG"
- Es gibt nun auch "Diagramme für Grafana" mit einem JSON File für den Import.

VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 19 Juni 2021, 09:35:27
Eine Frage seit dem Update von Grafana auf v 8.0.2 funktioniert bei mir die zweite Y Achse nicht mehr?

Hat die wer funktional am laufen?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Juni 2021, 11:56:45
Zitat von: sn0000py am 19 Juni 2021, 09:35:27
Eine Frage seit dem Update von Grafana auf v 8.0.2 funktioniert bei mir die zweite Y Achse nicht mehr?

Hat die wer funktional am laufen?

habe 8.0.3 in docker und da gehts

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 19 Juni 2021, 15:18:18
hmmm, hab wieder auf GRaph (old) zurückgestellt und da gehts wieder stimmt, beim TimeSeries da kommt die zweite Achse nicht
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Juni 2021, 16:57:21
Zitat von: sn0000py am 19 Juni 2021, 15:18:18
beim TimeSeries da kommt die zweite Achse nicht
auch das geht
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 24 Juni 2021, 16:02:22
Hallo zusammen,
ich habe da ein kleines Problem mit dem Stacking von Graphen.

Ich habe eine Stack Gruppe "A" und innerhalb dieser Gruppe möchte ich gerne die Reihenfolge festlegen, was in Versionen vor 7.5.5 wohl auch bereits mal ein Thema war.

Ich habe bereis folgendes bereits ausprobiert:

- alphabetische Benennung
- Reihenfolge der Querries
- Reihenfolge der Series overrides , in denen ja der Stack A angegeben ist
- Reihenfolge bei dem Anlegen der Series overrides

Im Bild habe ich es mal stark vergößert. Das dunkel rote soll auf das grüne :-) , damit das Grüne als Basissockel durch läuft und das Rote als Spitzen oben drauf ist.

VG Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 24 Juni 2021, 19:38:40
Zitat von: ch.eick am 24 Juni 2021, 16:02:22

Im Bild habe ich es mal stark vergößert. Das dunkel rote soll auf das grüne :-) , damit das Grüne als Basissockel durch läuft und das Rote als Spitzen oben drauf ist.

bei mir geht das

Query das unten dargestellt werden soll als erstes definieren
Query das oben dargestellt werden soll weiter unten

Beide Query mit "series override" Stack  yes zuweisen. Getestet mit "Graph (old)"
Version docker 8.0.3
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 24 Juni 2021, 20:56:07
Zitat von: kadettilac89 am 24 Juni 2021, 19:38:40
Query das unten dargestellt werden soll als erstes definieren
Query das oben dargestellt werden soll weiter unten

Beide Query mit "series override" Stack  yes zuweisen. Getestet mit "Graph (old)"
Version docker 8.0.3
Dann habe ich mich wohl beim Testen verzettelt. Ich versuche die Variante nochmal.

EDIT: Leider geht es nicht, zumindest mit 7.5.5 und dem Graph (core)
      Ich versuche dann mal den upgrade des Docker Containers auf die latest Version
EDIT: Mir ist noch eingefallen, dass ich die Queries eventuell bei der ersten Definition in anderer Reihenfolge
      hatte und erst im Nachhinein dann mit drag and drop in die gewünschte Reihenfolge.

Danke Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 25 Juni 2021, 14:55:24
Zitat von: ch.eick am 24 Juni 2021, 20:56:07
Dann habe ich mich wohl beim Testen verzettelt. Ich versuche die Variante nochmal.

EDIT: Leider geht es nicht, zumindest mit 7.5.5 und dem Graph (core)
      Ich versuche dann mal den upgrade des Docker Containers auf die latest Version
EDIT: Mir ist noch eingefallen, dass ich die Queries eventuell bei der ersten Definition in anderer Reihenfolge
      hatte und erst im Nachhinein dann mit drag and drop in die gewünschte Reihenfolge.

Danke Christian
mit Version 8 wurde auch an den Plots geschraubt, Upgrade schadet sicher nicht. Ich kann mit Drag and Drop auch die Query hoch oder runter verschieben und im Plot wird das auch berücksichtigt.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 25 Juni 2021, 15:06:43
Zitat von: kadettilac89 am 25 Juni 2021, 14:55:24
mit Version 8 wurde auch an den Plots geschraubt, Upgrade schadet sicher nicht. Ich kann mit Drag and Drop auch die Query hoch oder runter verschieben und im Plot wird das auch berücksichtigt.
Irgendwo hatte ich für den Umstieg noch eine Info zu den unsigned plugins gesehen, aber ich finde es nicht mehr.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 26 Juni 2021, 18:11:56
Zitat von: ch.eick am 25 Juni 2021, 15:06:43
Irgendwo hatte ich für den Umstieg noch eine Info zu den unsigned plugins gesehen, aber ich finde es nicht mehr.
hab ich nicht. ... das hier? https://grafana.com/docs/grafana/latest/plugins/plugin-signatures/

mach einfach eine kopie des aktuellen Ordners. Wenn etwas nicht mehr geht den Ordner mit dem alten Image wieder hochfahren.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 09 Januar 2022, 22:02:47
Hallo zusammen.

Habe grafana mit influxdb an laufen. Habe es auch geschafft, das die ersten devices in die DB schreiben.

Besteht auch die Möglichkeit alte FileLog Dateien im txt Format in die influxdb zu importieren?

Wenn ja, wie?

Gruß und danke
Sascha
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: rob am 09 Januar 2022, 22:39:25
Hallo Sascha.

Schau Dir mal Post #49 aus diesem Fred an: https://forum.fhem.de/index.php/topic,71551.msg732935.html#msg732935
Das Script von fervor scheint genau das zu können.

VG
rob
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 10 Januar 2022, 06:29:53
Ok. Werde dies mal testen.

Danke.

Gruß Sascha
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 10 Januar 2022, 10:45:33
Zitat von: sash.sc am 09 Januar 2022, 22:02:47
Hallo zusammen.

Habe grafana mit influxdb an laufen. Habe es auch geschafft, das die ersten devices in die DB schreiben.

Besteht auch die Möglichkeit alte FileLog Dateien im txt Format in die influxdb zu importieren?

Wenn ja, wie?

Gruß und danke
Sascha

Ja, Daten lesen, aufbereiten und in Influx schreiben. Ich habe damals ein Modul für mich geschrieben und auch geteilt. Das liest von MySQL und schreibt in influx. Das kannst für dich erweitern. Oder du migrierst erst nach MySQL und dann sollte es auch mit meinem Modul gehen.

Hat bei mir funktioniert, vorher Backup und so weiter ... könnte ja was schief gehen.

https://forum.fhem.de/index.php/topic,71551.msg838940.html#msg838940

Was anderes ist mir nicht bekannt.

Nachtrag, es gibt ein Wiki zu InfluxDB. Da sind auch ein paar Links zum Thema Altdatenmigration. Vielleicht hift das auch weiter.

https://wiki.fhem.de/wiki/InfluxDBLogger#Migration_von_Altdaten
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 10 Januar 2022, 11:30:02
Ok. Werde dies mal testen.

Danke.

Gruß Sascha
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 30 Januar 2022, 12:43:09
Hallo zusammen.

Jetzt woch ich die normalen Diagramme am laufen habe, wollte ich den Zustand von mehreren Aktoren, die nur 1 oder 0 haben, in einem Diagramm übereinandern darstellen.

Mit SVG hat es geklappt. Siehe Beispielbild.

Wie bekommen ich das in Grafana hin ? Die Daten liegen entsprechen din der influxDB.
Also die Werte 0 und 1. Und je Aktor soll quasi ein offset dazu addiert werden, um das Diagramm "anzuheben".

Gruß und Danke
Sascha
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Februar 2022, 09:25:44
Hallo zusammen,
ich möchte gerne in Grafana die klassische Darstellung einer Heizungskurve abbilden.
Die Abfrage der Kennzahlung aus der MySQL Datenbank wäre dabei für mich eher kein Problem.

Gibt es dazu eventuell eine Grafana Funktion oder ein Plugin?

VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 03 Februar 2022, 09:32:45
Wo ist da jetzt das Problem? Oder was genau meinst du mit Heizungskurve?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Februar 2022, 12:09:28
Zitat von: andies am 03 Februar 2022, 09:32:45
Wo ist da jetzt das Problem? Oder was genau meinst du mit Heizungskurve?
Sorry, das ist missverständlich gewesen. Es geht nicht um die Raum Temperatur über die Zeit :-)

Es geht um die Darstellung mit Steigung und Parrallelverschiebung der Heizungskurve in der Heizungsanlage.
Hierbei werden glaube ich drei Werte angegeben und man kann z.B. ablesen bei welcher Außentemperatur
dann welche Vorlauf Temperatur durch die Heizung gewählt wird.

Es entsteht also eine kurve nach einer mathematischen Formel

Korrekturkurve:
tempk         = -0.39    <<< Steilheit
temp_base = 25       <<< Parallelverschiebung


1 + ($temp - $temp_base) * $tempk / 100
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 03 Februar 2022, 12:55:07
OK, du meinst die Heizkurve. Alles klar.

Ich habe keine Ahnung, ob man mathematische Funktionen einfach so plotten kann, mE nicht. Die x-Achse scheint immer zeitbezogen zu sein und bei Dir muss sie ja Außentemperaturbezogen sein, richtig? Eventuell hilft dieser Tip hier, du müsstest das händisch anlegen: https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3 (https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Februar 2022, 13:51:59
Zitat von: andies am 03 Februar 2022, 12:55:07
OK, du meinst die Heizkurve. Alles klar.

Ich habe keine Ahnung, ob man mathematische Funktionen einfach so plotten kann, mE nicht. Die x-Achse scheint immer zeitbezogen zu sein und bei Dir muss sie ja Außentemperaturbezogen sein, richtig? Eventuell hilft dieser Tip hier, du müsstest das händisch anlegen: https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3 (https://medium.com/grafana-tutorials/graphing-non-time-series-sql-data-in-grafana-8a0ea8c55ee3)
Okay, das sieht schonmal gut aus und müsste übertragen werden.
Als Grundlage müsste ich dann mehrere Werte der Kurve berechnen und in die Datenbank schreiben, wodurch die "Linie" beschrieben würde
und im Anschluss, wie im Grafana Beispiel wieder auslesen und plotten lassen, nur hat nicht nach Zeit, sondern nach Temperatur.

Hat sowas schon jemand anderes mal gemacht?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sn0000py am 03 Februar 2022, 16:27:58
Frage - wer verwendet grafana im docker, und hat kürzlichst aktualisiert?

bekomme nun einen fehler beim starten

logger=settings t=2022-02-03T15:55:26.05+0100 lvl=info msg="App mode production"
Failed to start grafana. error: section "tracing.opentelemetry.jaeger" does not exist

section "tracing.opentelemetry.jaeger" does not exist


Ok war einfach - hab in die config.ini einfach
[tracing.opentelemetry.jaeger] dazu gebaut
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 03 Februar 2022, 16:34:51
Zitat von: sn0000py am 03 Februar 2022, 16:27:58
Frage - wer verwendet grafana im docker, und hat kürzlichst aktualisiert?

bekomme nun einen fehler beim starten
Ich würde ja auch gerne mal aktualisieren, aber in meinem Test Container zerschießt es mir die Farben der Diagramme und noch schlimmer auch die Stapelung von den Kurven.
Gibt es da eventuell auch einen Tipp zu?

VG
    Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 03 Februar 2022, 20:17:44
Zitat von: sash.sc am 30 Januar 2022, 12:43:09
Hallo zusammen.

Jetzt woch ich die normalen Diagramme am laufen habe, wollte ich den Zustand von mehreren Aktoren, die nur 1 oder 0 haben, in einem Diagramm übereinandern darstellen.

Mit SVG hat es geklappt. Siehe Beispielbild.

Wie bekommen ich das in Grafana hin ? Die Daten liegen entsprechen din der influxDB.
Also die Werte 0 und 1. Und je Aktor soll quasi ein offset dazu addiert werden, um das Diagramm "anzuheben".

Der Thread geht mehr um Grafana mit MySQL. Du hast InfluxDB. Ich antworte hier mal zu beidem

- MySQL, da gibts die Berechnung einfach in Klammern und dem Spalennamen ... Beispiele hier: https://swcarpentry.github.io/sql-novice-survey/04-calc/index.html
- InfluxDB: da gibts in Grafana die Funktion "math(+ 5)" im Select. Damit hebst du die Linie um 5 an.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Arek am 10 Februar 2022, 10:03:32
Hallo,

wie kann ich zwei Balken übereinander stapeln? Ich möchte gerne die Kosten des Gas- und Stromverbrauchs (Hybridheizung) gestapelt im Diagramm darstellen. Kann jemand helfen?

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  cast(VALUE *0.3321 as float) as value,  "Stromverbrauch" as metric
FROM history
WHERE
  $__timeFilter(TIMESTAMP) AND DEVICE = 'Stromverbrauch' AND ((READING="statEnergie_HeizungDayLast"))

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  cast(VALUE *0.0702 as float) as value,  "Gasverbrauch" as metric
FROM history
WHERE
  $__timeFilter(TIMESTAMP) AND DEVICE = 'Gaszaehler' AND ((READING="statGasverbrauchDayLast"))


Schöne Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 10 Februar 2022, 12:02:10
Zitat von: Arek am 10 Februar 2022, 10:03:32
wie kann ich zwei Balken übereinander stapeln? Ich möchte gerne die Kosten des Gas- und Stromverbrauchs (Hybridheizung) gestapelt im Diagramm darstellen. Kann jemand helfen?
Hallo

Im Diagramm in den EDIT Modus gehen
rechts den Panel Tab auswählen
dort auf Series Overrights gehen
Bei den entsprechenden Aliasen das "Stack:true" aktivieren

Ich meine, die Reihenfolge der Queries entscheidet dabei, was oben und unten ist.

Man kann auch rein optisch einen Gesamt Wert mit gestapelten Einzelwerten überlagert darstellen. Dazu muss man aber die Farbgebung ordentlich auswählen.
Dadurch zeige ich mir z.B. die "Fläche" an, die als Leistung von der PV-Anlage in den Hausspeicher geht.

Gruß
  Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Arek am 12 Februar 2022, 21:34:29
Zitat von: ch.eick am 10 Februar 2022, 12:02:10
Hallo

Im Diagramm in den EDIT Modus gehen
rechts den Panel Tab auswählen
dort auf Series Overrights gehen
Bei den entsprechenden Aliasen das "Stack:true" aktivieren

Ich meine, die Reihenfolge der Queries entscheidet dabei, was oben und unten ist.

Man kann auch rein optisch einen Gesamt Wert mit gestapelten Einzelwerten überlagert darstellen. Dazu muss man aber die Farbgebung ordentlich auswählen.
Dadurch zeige ich mir z.B. die "Fläche" an, die als Leistung von der PV-Anlage in den Hausspeicher geht.

Gruß
  Christian

Hallo,

die Overrides habe ich auch schon gefunden, aber leider kriege ich es nicht hin. Nun habe ich etwas rumprobiert und festgestellt, dass es nicht funktioniert sobald ich einen dritten Query einfüge. Nur die beiden Balken, die gestapelt werden sollen, funktionieren. Ich möchte allerdings noch die Außentemperatur als Liniendiagramm einfügen.
Anbei zwei Bilder jeweils mit und ohne Außentemperatur.
Was mache ich falsch?

Schöne Grüße
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 13 Februar 2022, 09:36:54
Zitat von: Arek am 12 Februar 2022, 21:34:29
Hallo,

die Overrides habe ich auch schon gefunden, aber leider kriege ich es nicht hin. Nun habe ich etwas rumprobiert und festgestellt, dass es nicht funktioniert sobald ich einen dritten Query einfüge. Nur die beiden Balken, die gestapelt werden sollen, funktionieren. Ich möchte allerdings noch die Außentemperatur als Liniendiagramm einfügen.
Anbei zwei Bilder jeweils mit und ohne Außentemperatur.
Was mache ich falsch?
Hm, das kann ich auch nicht sagen, eventuell liegt es ja an der Mischung von Balken Diagrammen mit linien Diagrammen.
Versuche es doch mal direkt bei Grafana im Forum und berichte dann bitte hier :-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Sany am 01 März 2022, 14:41:26
Hallo zusammen,

Grafana hatte ich schon vor einer Weile installiert und kurz ausprobiert, mußte das aber wieder zurückstellen, da ich zu Beginn nicht dahinter kam, 2 Y-Achsen zu konfigurieren. Jetzt habe ich hier noch mal alles nachgelesen und probiert und nun klappt auch das. Jetzt habe ich ein paar Versuche unternommen, meine bisherigen SVGs, die ich gezielt verwenden möchte, in Grafana nachzubauen. Auch das klappt sehr gut.
Was mich stört ist die "Platzverschwendung" rund um das per iframe eingefügte Panel. Im Anhang gut zu sehen, ich habe mal frameborder="1" gesetzt: zwischen Frameborder und Text, also Skalenbeschriftung oder Title, ist ein, in meinen Augen, sehr breiter Rahmen, der natürlich das Diagramm "klein" macht, wenn der Platz auf dem Display begrenzt ist.
Ich hab zwar schon alles möglich durchsucht, vermute aber, dass steckt irgendwo tief in Grafana drin und wäre dann, wenn überhaupt, nur per css zu ändern.

Ebenso, auch im Bild zu sehen: hier habe ich den letzten Wert in den Panel-Options gestzt, das schreibt diesen aber dann bei jeder Linie dazu. Kann man das auch einzeln angeben? Im Beispiel hätte ich gerne für die Temperatur OAT den letzten sowie max und min, sonst nur noch bei Humidity den letzten Wert. Einfach gesagt: je Abfrage eine eigene Konfiguration.

Vielen Dank für sachdienliche Hinweise!


Sany
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 01 März 2022, 14:56:08
Zitat von: Sany am 01 März 2022, 14:41:26
Ebenso, auch im Bild zu sehen
Hi Sany, das Bild fehlt noch;-)
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Sany am 01 März 2022, 15:17:05
ZitatHi Sany, das Bild fehlt noch;-)

...erledigt. Sorry. (...das Bild, nicht das Problem... ;))
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: stoff am 06 März 2022, 23:58:24
Hallo zusammen,

Ich würde gerne 2 Werte aus der SQL Datenbank anzeigen und die Differenz bilden. Das klappt aber leider nur manchmal:

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, DOUBLE) as value,
  "PV-Modbus" as metric
FROM history
WHERE READING="I_DC_Power" AND DEVICE="PV" AND $__timeFilter(TIMESTAMP)

SELECT
  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
  CONVERT(VALUE, DOUBLE) as value,
  "Power Consumption" as metric
FROM history
WHERE READING="X_Meter_1_M_AC_Power" AND DEVICE="PV" AND $__timeFilter(TIMESTAMP)



Der 3. Graph ist dann $A - $B

Leider klappt das aber nur selten, da viele Werte abgefragt werden und nicht alle Werte mit dem exakt gleichem Zeitstempel in die Datenbank kommen, sondern 1 sec. später. Daher geht dann zwar die Anzeige der einzelnen Werte, diese können dann aber nicht subtrahiert werden. Gibt es hier eine Möglichkeit, dies trotzdem zu schaffen?
In der Doku bei Grafana habe ich keine Lösung gefunden.

Danke!

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 07 März 2022, 10:34:29
Zitat von: stoff am 06 März 2022, 23:58:24
Leider klappt das aber nur selten, da viele Werte abgefragt werden und nicht alle Werte mit dem exakt gleichem Zeitstempel in die Datenbank kommen, sondern 1 sec. später. Daher geht dann zwar die Anzeige der einzelnen Werte, diese können dann aber nicht subtrahiert werden. Gibt es hier eine Möglichkeit, dies trotzdem zu schaffen?
Hallo stoff,

für solche Zwecke solltest Du Dir besser ein eigenes SQL SELECT schreiben.
Dort kannst Du dann mit allen SQL Möglichkeiten Dein Ergebnis zusammen stellen und nur das Endergebnis in Grafana anzeigen.

Sollte z.B. der Zeitstempel zwar bis zur Minute passen, aber im Sekunden Bereich ein Unterschied sein, dann überschreibst Du beim SELECT die Sekunden jeweils
mit 00 und summierst die Werte mit dem Zeitstempel "2022-03-05 10:31:00" :-)

Bei mir habe ich für die Darstellung in einem Dashboard z.B. alle zusammengehörigen Werte in einem SQL SELECT zusammen abgefragt, was dann viel Schneller als über
einzel Abfragen im Grafana ging. Vorher passten die Werte nicht richtig zueinander, da es ja bereits etwas später schon wieder neuere gegeben hat.

VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: stoff am 07 März 2022, 22:48:42
Hi Christian,

vielen Dank für Deine Antwort. Bei den SQL SELECT Statements bin ich so nicht weiter gekommen, da mir nicht klar ist, wie ich diese in Grafana einbinden kann. Oder meinst Du nicht in Grafana sondern per Skript?
Was ich mir überlegt hatte ist, das Modul,, welches die Abfrage macht, so zu verändern, dass es selber schon den Wert berechnet und in der db ablegt. Für mich auch eine pragmatische Lösung.

Vielen Dank

Christoph
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 08 März 2022, 10:12:09
Zitat von: stoff am 07 März 2022, 22:48:42
Bei den SQL SELECT Statements bin ich so nicht weiter gekommen, da mir nicht klar ist, wie ich diese in Grafana einbinden kann. Oder meinst Du nicht in Grafana sondern per Skript?
Was ich mir überlegt hatte ist, das Modul,, welches die Abfrage macht, so zu verändern, dass es selber schon den Wert berechnet und in der db ablegt. Für mich auch eine pragmatische Lösung.
Hi Christoph,
im Grafana kannst Du mit dem SQL Editor direkt das SELECT einfügen. Ich verwende als erstes das Muster von Grafana, dann erkennt man, wie die Ausgabe aussehen muss, damit Grafana die Werte richtig versteht.
Am Anfang gehe ich direkt in die Datenbank und erstelle das passenede SELECT, auch mit JOIN und all den anderen Möglichkeiten. Ein einfaches Muster ohne Berechnungen sähe z.B. so aus.

SELECT
  $__timeGroupAlias(TIMESTAMP,$__interval,previous),
  avg(value) AS "SW_Home_own_consumption_from_Battery"
FROM history
WHERE
  $__timeFilter(TIMESTAMP) AND
  DEVICE = 'WR_1' AND
  READING = 'SW_Home_own_consumption_from_Battery'
GROUP BY 1
ORDER BY $__timeGroup(TIMESTAMP,$__interval,previous)


In einem Dashboard verwende ich aber dann auch so etwas

SELECT
NOW() + INTERVAL 2 HOUR AS time,
t_hotWaterTemperature.131,
t_ambientTemperature.141,
t_room_temp.144
FROM
(
  SELECT CAST(VALUE AS DECIMAL(4,2)) AS '131'
  FROM history
  WHERE
   DEVICE = 'Heizung' AND
   READING = 'hotWaterTemperature' AND
   TIMESTAMP > curdate()
  ORDER BY TIMESTAMP DESC LIMIT 1
) t_hotWaterTemperature
JOIN
(
  SELECT CAST(VALUE AS DECIMAL(4,2)) AS '141'
  FROM history
  WHERE
   DEVICE = 'Heizung' AND
   READING = 'ambientTemperature' AND
   TIMESTAMP > curdate()
  ORDER BY TIMESTAMP DESC LIMIT 1
) t_ambientTemperature
JOIN
(
  SELECT CAST(VALUE AS DECIMAL(4,2)) AS '144'
  FROM history
  WHERE
   DEVICE = 'Thermostat_WO' AND
   READING = 'room-temp' AND
   TIMESTAMP > curdate()
  ORDER BY TIMESTAMP DESC LIMIT 1
) t_room_temp


Um den TIMESTAMP ohne die Sekunden Abweichung gleich zu schalten kannst Du dann sowas machen

DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:00') AS TIMESTAMP


Gruß
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Sany am 31 März 2022, 08:52:07
Hi,
etwas weiter oben ( https://forum.fhem.de/index.php/topic,77724.msg1211188.html#msg1211188 (https://forum.fhem.de/index.php/topic,77724.msg1211188.html#msg1211188) ) suchte ich nach einer Lösung wegen:
ZitatWas mich stört ist die "Platzverschwendung" rund um das per iframe eingefügte Panel

In einem Grafana-Forum bin ich fündig geworden.
Getestet und es funktioniert. Die Lösung beim einbinden einer Grafana-Chart mittels iframe: in der definition muss es
Zitat'<iframe src="http://192.1xx.x.x:yyyy/d-solo/rKkdofHnk/mypanel?orgId=1&panelId=6" width="100%" height="350" frameborder="0"></iframe>'
heissen,
statt
Zitat'<iframe src="http://192.1xx.x.x:yyyy/d/rxxxxxxxxk/mypanel?orgId=1&viewPanel=6&kiosk" allowfullscreen frameborder="0" height="350" width="378" style="overflow:hidden;height:350;width:100%"></iframe>'

ich vermute es kam daher, dass ich beim ersten Versuch nur die eine chart im Grafana-Panel hatte und dann per share / embed einen link zum "panel" erhalten habe. Bei mehreren charts auf dem Panel wird dann der link wohl "richtig" erzeugt, wenn man ein "single Panel" freigibt.

Sieht dann so aus wie im Anhang. (oben der "breitere" Rahmen)


Gruß

Sany
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 15 Juni 2022, 15:56:51
Hallo zusammen,
in Grafana möchte ich den Monatswert vom letzten Tag des Monats anzeigen lassen.
Wie kann ich es erreichen, dass auf der x-Axis z.B. "2022/04" steht?

Momentan wird die Axe für das gesamte Jahr eingeteilt, aber der Wert steht dann am Ende des Monats.

EDIT: als work around verschiebe ich die Werte auf den ersten Tag des Monats

DATE_ADD(DATE_ADD(TIMESTAMP,INTERVAL -1 MONTH),INTERVAL 1 DAY) AS time

Merkwürdig ist auch, dass diie Zeitanga aus der Datenbank mit 23:57:xx kommt, aber im Grafana beim überfahren des Graphes mit der Maus etwas mit 01:57:01 angezeigt wird.


SELECT
  DATE_ADD(DATE_ADD(TIMESTAMP,INTERVAL -1 MONTH),INTERVAL 1 DAY) AS time,
  CAST(VALUE/1000 AS DECIMAL(4,0)) AS "SW_Statistic_Yield_Month"
FROM history
WHERE
  DEVICE = 'WR_1_API' AND
  READING = 'SW_Statistic_Yield_Month' AND
  DATE(TIMESTAMP) = LAST_DAY(TIMESTAMP) AND
  hour(TIMESTAMP) = 23


VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Geisha2021 am 22 Juni 2022, 17:20:35
Ich bin Neuling in Grafana und habe die Version 9.0 auf dem Raspi installiert wo auch FHEM läuft und alles auf einer MariaDB geloggt wird.
Die Darstellung von Kurvenverläufen vom Strom, Temperaturen und Feuchtigkeit auf Dashboards funktioniert.
Die Darstellung des täglichen Stromverbrauchs als Barchart gelingt mir jedoch nicht.
Habe schon alle möglichen Tutorials und Videos dazu angesehen jedoch sind diese Anleitungen nicht mit der Version 9.0 kompatibel.

Vielleicht kann mir jemand Unterstützung geben wie ich das direkt als SQL Query eingeben kann.

Die Energiewerte sind fortlaufend in der MariaDB gespeichert.

Gruß Uli
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 22 Juni 2022, 18:10:28
Zitat von: Geisha2021 am 22 Juni 2022, 17:20:35
Ich bin Neuling in Grafana und habe die Version 9.0 auf dem Raspi installiert wo auch FHEM läuft und alles auf einer MariaDB geloggt wird.
Die Darstellung von Kurvenverläufen vom Strom, Temperaturen und Feuchtigkeit auf Dashboards funktioniert.
Die Darstellung des täglichen Stromverbrauchs als Barchart gelingt mir jedoch nicht.
Habe schon alle möglichen Tutorials und Videos dazu angesehen jedoch sind diese Anleitungen nicht mit der Version 9.0 kompatibel.

Vielleicht kann mir jemand Unterstützung geben wie ich das direkt als SQL Query eingeben kann.
Als erstes solltest Du mal direkt in der mariaDB ein SQL SELECT erstellen, mit dem genau die gewünschten Werte zurück geliefert werden.
Das lässt sich dann im Grafana SQL Editor spezifisch auf Grafana anpassen.
Bei mir klappt das so eigentlich immer am schnellsten und man kann sehr schnell das SELECT zu testzwecken verändern.

VG Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Geisha2021 am 22 Juni 2022, 23:18:35
Danke Christian.

Da scheitere ich schon. Wie macht man ein SQL Select direkt in der MariaDB?

Gruß Uli
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 23 Juni 2022, 08:43:41
Über die Console indem du mariadb eingibst, oder du installierst ein Frontend wie phpMyAdmin.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: DerBodo am 11 Juli 2022, 11:32:40
Ich bräuchte einmal eure Hilfe bzgl der Plotterstellung.

Mein Wunsch wäre es für den Energie und Wasserverbrauch pro Stunde den Max Wert im Diagramm darzustellen als Balken.
Aktuell habe ich über die Stunde verlaufend quasi immer "Sägezähne" die dann zu beginn der neuen Stunde genullt werden und sich wieder aufbauen.

Die Readings werden mit dem Statistics Modul erstellt.

Aktuelle Abfrage:

SELECT UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
CONVERT(VALUE, decimal(3,1)) as VALUE
FROM history
where DEVICE ='Wasser' and READING = 'statEnergyHour' AND $__timeFilter(TIMESTAMP)


Nach Längerem herumsuchen habe ich folgendes Query zusammengebaut:

SELECT DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H') as dateHour,
MAX(CONVERT(VALUE, decimal(4,0))) as VALUE
FROM history where
DEVICE ='Wasser' and READING = 'statEnergyHour'
GROUP BY dateHour


Allerdings bemängelt das Grafana Frontend dann eine fehlende Time Column....
Vielleicht kann mir ja jemand einen Tipp geben und mich noch in die richtige Richtung schubsen...

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: DerBodo am 20 Juli 2022, 11:39:58
Sollte jemand etwas vergleichbares suchen anbei mein Query.


SELECT
  UNIX_TIMESTAMP(TIMESTAMP) DIV 3600 * 3600 AS "time",
  max(cast(VALUE as signed)) AS "Verbrauch"
FROM history
WHERE
  TIMESTAMP BETWEEN FROM_UNIXTIME(1658268000) AND FROM_UNIXTIME(1658309751) AND
  DEVICE = 'Wasser' AND
  READING = 'statEnergyHour'
GROUP BY 1
ORDER BY UNIX_TIMESTAMP(TIMESTAMP) DIV 3600 * 3600


Nach dem Formatieren mit Grafana habe ich nun pro Stunde einen max Wert in Bar Darstellung für den aktuellen Tag
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 21 Juli 2022, 16:00:12
Hallo Ihr Grafana Gurus :-)
Ich mache da mal wieder ein Problem...

Kann ich einen Verbraucher z.B. an die Linie einer anderen Kurve von oben nach unten hängen?
In meinem Fall ist es eine Wallbox, die nur mit PV Überschuss lädt und sich somit optisch entlang der PV-Leistung hangelt.
Das Bild zeigt einen noch nicht so sauberen Test, aber man erkennt zum Ende der Ladezeit den Kurvenverlauf, der gleich der blauen Linie ist.

Die schwarze Fläche ist in meinem Fall die Einspeisung ins Netz. Es können natürlich noch andere Starkverraucher gleichzeitig laufen, die dann
momentan mit Stack gestapelt werden.

VG
   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 26 Juli 2022, 08:03:48
Zitat von: DerBodo am 20 Juli 2022, 11:39:58
Sollte jemand etwas vergleichbares suchen anbei mein Query.
Kannst du mal einen Screenshot posten, wie das aussieht?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 26 Juli 2022, 08:35:34
Zitat von: andies am 26 Juli 2022, 08:03:48
Kannst du mal einen Screenshot posten, wie das aussieht?
Das besondere an der Art der Abfrage ist einfach, dass man im MySQL alle Anpassungen im SELECT vornimmt. Das kann auch noch komplexer sein.
Um das dann im Grafana zu verwenden muss man die erwarteten Grafana Namen wie z.B. "time" verwenden.
Bei Dashboards können die Grafana Namen dann auch z.B. nur die Objektnummern sein, damit das SELECT der Anzeigestelle zugeordnet werden kann.
Somit kann man auch in einem SELECT mit vielen Joins alle möglichen Werte zusammen abfragen, was die Performance der Abfrage imens erhöht.
Hier mal ein Beispiel aus meinem dashboard, bei dem ich alle PV Werte der einzelnen Strings in einem Rutsch abfrage.

SELECT
t1.time AS time,
t1.38,t2.39,t3.198,t4.201
FROM
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '38'
  FROM history WHERE DEVICE = 'WR_1' AND READING = 'P_DC2' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t1
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '39'
  FROM history WHERE DEVICE = 'WR_2' AND READING = 'P_DC1' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t2
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '198'
  FROM history WHERE DEVICE = 'WR_1' AND READING = 'P_DC1' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t3
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '201'
  FROM history WHERE DEVICE = 'WR_2' AND READING = 'P_DC2' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t4

Im Dashboard zeige ich immer nur die letzten Werte an, weshalb da keine Time angaben zu finden sind.
Obwohl das wäre noch eine tolle Erweiterung, wenn man da auch in der Zeit zurück gehen würde :-)

my5cent
     Christian

Im Bild sind diese Werte oben links abgebildet.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: der-Lolo am 28 August 2022, 09:45:52
Hallo Zusammen, ich logge Temperatur Daten unseres pools -
die Sensoren stecken in den Rohren der Filteranlage, hierdurch sind die Werte nur dann interessant wenn die Pumpe seit 5min läuft.
Die Pumpe selbst ist auch in LogDB vorhanden.

also Temperatur Wert nur darstellen wenn Pumpe state "on" hat.

Hat vielleicht jemand ein entsprechendes statement parat?

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 28 August 2022, 10:32:44
Zitat von: ch.eick am 26 Juli 2022, 08:35:34
Das besondere an der Art der Abfrage ist einfach, dass man im MySQL alle Anpassungen im SELECT vornimmt. Das kann auch noch komplexer sein.
Um das dann im Grafana zu verwenden muss man die erwarteten Grafana Namen wie z.B. "time" verwenden.
Bei Dashboards können die Grafana Namen dann auch z.B. nur die Objektnummern sein, damit das SELECT der Anzeigestelle zugeordnet werden kann.
Somit kann man auch in einem SELECT mit vielen Joins alle möglichen Werte zusammen abfragen, was die Performance der Abfrage imens erhöht.
Hier mal ein Beispiel aus meinem dashboard, bei dem ich alle PV Werte der einzelnen Strings in einem Rutsch abfrage.

SELECT
t1.time AS time,
t1.38,t2.39,t3.198,t4.201
FROM
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '38'
  FROM history WHERE DEVICE = 'WR_1' AND READING = 'P_DC2' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t1
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '39'
  FROM history WHERE DEVICE = 'WR_2' AND READING = 'P_DC1' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t2
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '198'
  FROM history WHERE DEVICE = 'WR_1' AND READING = 'P_DC1' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t3
JOIN
(SELECT TIMESTAMP AS time,CAST(VALUE AS DECIMAL(4,0)) AS '201'
  FROM history WHERE DEVICE = 'WR_2' AND READING = 'P_DC2' AND TIMESTAMP > curdate() ORDER BY TIMESTAMP DESC LIMIT 1) t4

Im Dashboard zeige ich immer nur die letzten Werte an, weshalb da keine Time angaben zu finden sind.
Obwohl das wäre noch eine tolle Erweiterung, wenn man da auch in der Zeit zurück gehen würde :-)

my5cent
     Christian

Im Bild sind diese Werte oben links abgebildet.

Wie bekommt man die Übersicht bzw Bild hin?

Hat jemand von euch Ahnung, wie man Werte aufaddiert ?
Es soll der Verbrauch von anderen geräte auf den Gelben Balken aufaddiert werden, also die "Nullliene" nach oben verschoben werden, auf das Ende des Gelben Balkens.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 29 August 2022, 10:00:35
Zitat von: sash.sc am 28 August 2022, 10:32:44
Wie bekommt man die Übersicht bzw Bild hin?

Hat jemand von euch Ahnung, wie man Werte aufaddiert ?
Es soll der Verbrauch von anderen geräte auf den Gelben Balken aufaddiert werden, also die "Nullliene" nach oben verschoben werden, auf das Ende des Gelben Balkens.
Du machst für jedes Gerät eine Abfrage und kannst dann im Grafana die Option Stack, bei allen Werten, die gestapelt werden soll, verwenden.
Das ist aber eine Funktionalität der Graphen und hat nichts mit meinem zitierten Beispiel zu tun. Mein Beispiel ist für zwei.B ein Dashboard gedacht gewesen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: sash.sc am 29 August 2022, 15:18:28
wie bekommt man das mit dem stack hin ?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 29 August 2022, 19:36:39
Zitat von: sash.sc am 29 August 2022, 15:18:28
wie bekommt man das mit dem stack hin ?

stack series -- normal
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: maltejahn am 01 Oktober 2022, 17:28:01
Hallo,

ich suche mir einen Hirsch - scheint wohl zu einfach zu sein oder keiner braucht es.
Ich würde gerne Daten des Statistik Moduls darstellen und zwar die "min/avg/max" Daten. Die 3 Werte werden in einem Reading zusammengefasst

z.B. 2021-09-16 23:59:55 mit dem Value "Min: 15.9 Avg: 18.7 Max: 28.5"

Ich wollte z.B. die Minimale und die Maximale Tagestemperatur übers Jahr hinaus darstellen und am besten per SQL gefiltert ohne extra dafür z.B. ein extra Userreading zu erstellen.

Wie könnte das aussehen? Zwar habe ich SQL Abfragen mit Split usw. gesehen. Aber irgendwie nicht passend weil z.B. von Position x mit länge y der Wert geholt wird. Bei mit ist die Länge der gesuchten Wertes aber nicht immer gleichlang.

Grüße
Malte
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: All-Ex am 01 November 2022, 10:03:02
Hallo,
ich habe mal mit Grafana rumgespielt und festgestellt, dass schöne Charts recht einfach erstellt werden können. Allerdings vermisse ich im Vergleich zu FTUI Chart die Buttons, mit denen man den dargestellten Ausschnitt vergrößern/verkleinern und verschieben kann.

Aktuell ist Grafana für mich auf einem Mobilen Endgerät nicht bedienbar und auch auf dem Rechner ist das Navigieren in Zeitreihen schwierig (z.B. CTRL-Z für Rauszoom, eine Schaltfläche dafür gibt es nicht => nicht intuitiv). Mit dem Timepicker von Grafana schaffe ich es z.B. nicht einfach im der Zeitleiste zurückzublättern.

Wisst ihr, ob man die 4 Buttons <-  +  -  -> die es in FTUI Chart gibt, auch in Grafana aktivieren kann?
Oder mache ich irgendetwas falsch?

Im Screenshot ist oben die Grafik von FTUI Chart und unten die von Grafana. Bei Grafana gibt es nur den - Button zum rauszoomen. Einzoomen und das Chart nach links und rechts verschieben schaffe ich auf mobilen Geräten nicht.

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 02 November 2022, 12:22:00
Wenn man den Minus-Button gedrückt hat, erscheinen Buttons zum Links/Rechts verschieben.
Denke es ist eine Limitierung wie der TimePicker intern funktioniert.

Also, dass die Benannten Zeitspannen meist relativ und nicht absolut sind.
Durch das Rauszoomen wird sie absolut und die seitlichen Pfeile erscheinen.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 04 November 2022, 18:45:33
Hi,

benutzt jemand Grafana in Docker und kommt damit auf die sqlite db die auf dem host mit FHEM (nicht im docker container) läuft?
Ich habe Grafana im docker weil ich es dort zusammen mit teslamate am laufen habe.

Ich habe in den datasource Einstellungen die lokale IP des rpi genutzt und den Pfad zur fhem.db (siehe Bild)

Ich bekomme allerdings "Query data error".
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: HrzM am 05 November 2022, 00:20:50
Hallo Forum,

ich bin ein wenig am verzweifeln. :-\ Ich lese mit Tasmota und IR-Kopf meinen Stromzähler aus. Leider hab kann ich nur den Gesamtverbrauch auslesen, wüsste aber gerne den Verbrauch pro Tag. Hab schon rumgesucht, aber ohne Erfolg. Für einen Tipp wäre ich Dankbar.

Mein letzter Versuch sah wie folgt aus, aber das Ergeniss ist nicht plausibel.



SELECT
  $__timeGroupAlias(TIMESTAMP,1d),
  DEVICE AS metric,
  variance(VALUE) AS "VALUE"
FROM v_history_n
WHERE
  $__timeFilter(TIMESTAMP) AND
  DEVICE = 'MQTT2_DVES_4FB099' AND
  READING = 'SML_total_kwh'
GROUP BY 1,2
ORDER BY $__timeGroup(TIMESTAMP,1d)



Gruß HrzM
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 05 November 2022, 08:39:27
Ich kenne mich mit SQL nicht aus, aber ein paar Sachen verstehe ich nicht: wieso steht da Varianz und wieso ist das ,,nicht plausibel"?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 05 November 2022, 10:26:03
Zitat von: Phili am 04 November 2022, 18:45:33
Hi,

benutzt jemand Grafana in Docker und kommt damit auf die sqlite db die auf dem host mit FHEM (nicht im docker container) läuft?
Ich habe Grafana im docker weil ich es dort zusammen mit teslamate am laufen habe.

Ich habe in den datasource Einstellungen die lokale IP des rpi genutzt und den Pfad zur fhem.db (siehe Bild)

Ich bekomme allerdings "Query data error".
Wenn du eine SQLite Datenbank nutzen willst musst du  diese auch per SQLite-Adapter einrichten. Du nutzt den MySQL-Adapter.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 05 November 2022, 16:54:04
Zitat von: kadettilac89 am 05 November 2022, 10:26:03
Wenn du eine SQLite Datenbank nutzen willst musst du  diese auch per SQLite-Adapter einrichten. Du nutzt den MySQL-Adapter.

Danke das macht natürlich Sinn. Die Datenbank Datei wird jedoch nicht gefunden. Denke mal das hängt mit dem container zusammen?!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: rob am 05 November 2022, 18:07:39
Wenn Du wirklich direkt auf das File auf dem Host liegend zugreifen musst, dann müsste dieses oder zumindest der Pfad dahin in den Container hingereicht werden (mounten). Das Filesystem im Container ist normalerweise vom Host gekapselt.

beim Start des Containers z.B. als Parameter hinzufügen
-v /lokaler/pfad/fhem.db:/opt/fhem/fhem.db

Wie startest Du denn den Container konkret (Parameter)?

VG
rob
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 05 November 2022, 21:56:29
Hi,

danke für die Antworten. Ich starte ihn aktuell über compose docker-compose up -d weil ich in der .yml einige Dienste mit starte.
Ich lese mich gerade in named volumes ein, die in der .yml eingetragen werden. Ich denke das bewirkt das gleiche wie ein direktes mounten beim start mit -v
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 05 November 2022, 22:21:47
So ich bin einen Schritt weiter.
Der Pfad ist gemounted:

grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=
      - DATABASE_PASS=
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - GF_INSTALL_PLUGINS=frser-sqlite-datasource
    ports:
      - 3000:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana
      - /opt/fhem/fhem.db:/opt/fhem/fhem.db


Jedoch bekomme ich jetzt den Fehler:
Query error
attempt to write a readonly database (1544)


Dabei wird doch eigentlich nur gelesen?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 05 November 2022, 22:35:33
Ich denke mal das liegt daran das FHEM die sqlite db nutzt und "sperrt".
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: rob am 05 November 2022, 23:26:52
Finde den direkten Zugriff auf die DB halt ungewöhnlich. Kann aber sein, dass man so machen kann mit sqlite, bin da kein Experte. Normalerweise kennen ich das so, dass Grafana auf eine Connection zu einem Netzwerkservice zugreift.
Erst recht wenn Grafana auch noch in DB schreiben will.
Wenn ich eine sqlite Verbindung anlegen möchte (add datasource), fragt Grafana auch nach IP und Port - so würde ich das erwarten. Keine DB als file.
Vielleicht hilft dies ansonsten auch weiter https://matthewsetter.com/sqlite-attempt-to-write-to-readonly-database/ (https://matthewsetter.com/sqlite-attempt-to-write-to-readonly-database/)?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 November 2022, 10:54:22
Zitat von: rob am 05 November 2022, 23:26:52
Finde den direkten Zugriff auf die DB halt ungewöhnlich. Kann aber sein, dass man so machen kann mit sqlite, bin da kein Experte. Normalerweise kennen ich das so, dass Grafana auf eine Connection zu einem Netzwerkservice zugreift.
Erst recht wenn Grafana auch noch in DB schreiben will.
Wenn ich eine sqlite Verbindung anlegen möchte (add datasource), fragt Grafana auch nach IP und Port - so würde ich das erwarten. Keine DB als file.
Vielleicht hilft dies ansonsten auch weiter https://matthewsetter.com/sqlite-attempt-to-write-to-readonly-database/ (https://matthewsetter.com/sqlite-attempt-to-write-to-readonly-database/)?
Du musst berücksichtigen, dass SQLite nicht für Multiuser und paralleles Schreiben entwickelt wurde sondern für Einzelbenutzer und Anwendungen die exclusive auf die Daten zugreifen. Da es nur eine Datei ist kann man als Anwendnungsentwickler mit kleinem Overhead DB-Funktionen nutzen.

Wenn du mit mehreren Benutzern und Prozessen parallel arbeiten willst musst du zu MySQL oder anderen DBS wechseln. Dafür wurde SQLite nicht gebaut.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 November 2022, 11:05:44
Zitat von: Phili am 05 November 2022, 22:21:47
Jedoch bekomme ich jetzt den Fehler:
Query error
attempt to write a readonly database (1544)


Dabei wird doch eigentlich nur gelesen?
Scheinbar wird doch geschrieben. Vielleicht nur um einen Commit abzusetzen oder Cache auf die db zu schreibe damit die Auswertung konsistent ist. Da du die SQLite in Fhem hast und nun in Grafana einbindest hast du nur Leserechte.

Du hast doch in Grafana die Path Option read only. Sieht man sogar in deinem Screenshot. Warum setzt du nicht auf RO und testest nochmal?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 06 November 2022, 12:36:29
Die Path Option ist in grau und nur als "Beispiel". Wenn man in das Feld reingeht dann erlischt der Text. Das heisst ich habe da nichts angegeben.
Ich habe es auch schon mit "mode=ro" bzw. "mode=rw" getestet.

Ich bin gerade dabei die SQLite db auf MariaDB umzuziehen. Denke das wird auch mal Zeit da das .db file auch schon einige gb groß ist.

Danke für eure Antworten!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 06 November 2022, 13:12:27
Zur Doku falls das Setup auch jemand mal braucht.

SQLite nach MariaDB umgezogen.
Grafana läuft im Container (zusammen mit teslamate und einer postgredb zum loggen der Tesla Daten)

Die docker-compose.yml muss angepasst werden damit auf die lokale sql db zugegriffen werden kann. Über die Zeile network_mode: "host" in der service config des containers kann dann ganz normal in grafana über localhost:3306 auf die sqldb auf dem host zugegriffen werden.

Siehe Beitrag weiter unten. Es lag an einer falschen config des mysql servers.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 November 2022, 13:21:35
Zitat von: Phili am 06 November 2022, 13:12:27
Zur Doku falls das Setup auch jemand mal braucht.

SQLite nach MariaDB umgezogen.
Grafana läuft im Container (zusammen mit teslamate und einer postgredb zum loggen der Tesla Daten)

Die docker-compose.yml muss angepasst werden damit auf die lokale sql db zugegriffen werden kann. Über die Zeile network_mode: "host" in der service config des containers kann dann ganz normal in grafana über localhost:3306 auf die sqldb auf dem host zugegriffen werden.
Warum braucht eine Datenbank exklusiven Host Zugriff? Dafür ist ja der Port da um die Kommunikation eben nicht wild über irgend welche unbekannte Kanäle laufen zu lassen.

Hast du Port der Datenbank zum Host durchgereicht? Oder welchem Container gibst du "host"?

Edit: du darfst nicht localhost:3306 eintragen sondern die IP des HOsts, z. B. vom Raspberry. Localhost ist nur der Container, darum gehts mit Parameter Host auch wenn es nciht empfohlen ist. Oder <name des MySql-Containers>:3306, einfach genau so wie du auch in Fhem definierst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 06 November 2022, 17:52:36
Nicht die Datenbank braucht host Zugriff sondern der Container.
Der Container läuft in einem anderem Netzwerk. Mit localhost:3306 sowie 168.0.1.100:3306 (feste ip des rpi) als auch mit 127.0.0.1 kommst du mit grafana im container nicht auf die Datenbank die lokal auf dem rpi läuft.

Fragt man den container ab sieht man das auch auch gut:

pi@fhemrpi:~/teslamate $ docker inspect teslamate_grafana_1 | grep Gateway
            "Gateway": "",
            "IPv6Gateway": "",
                    "Gateway": "172.29.0.1",
                    "IPv6Gateway": "",


Damit war klar das aus dem container die Datenbank mit 168.0.1.100:3306 nicht angesprochen werden kann.

Mit der Erweiterung der compose .yml über network_mode sieht das jetzt so aus.
pi@fhemrpi:~/teslamate $ docker inspect teslamate_grafana_1 | grep Gateway
            "Gateway": "",
            "IPv6Gateway": "",
                    "Gateway": "",
                    "IPv6Gateway": "",

Und die lokale ip des rpis ist erreichbar sowohl mit localhost als auch 192.168.0.100
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 06 November 2022, 20:27:05
Zitat von: Phili am 06 November 2022, 17:52:36
Damit war klar das aus dem container die Datenbank mit 168.0.1.100:3306 nicht angesprochen werden kann.

Mit der Erweiterung der compose .yml über network_mode sieht das jetzt so aus.

Und die lokale ip des rpis ist erreichbar sowohl mit localhost als auch 192.168.0.100
OK, verstehe dein spezielles Setup nicht. Aber wenn du damit dein Problem löst. Auch dass du MySQL nicht als Docker sondern lokal installierst ist eigenartig wenn schon fhem, grafana als Docker läuft.

Zitat von: Phili am 06 November 2022, 13:12:27
Zur Doku falls das Setup auch jemand mal braucht.
Dein Setup ist sehr speziell, die Empfehlung "network_mode: host" sollte nicht als default kommuniziert werden.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 07 November 2022, 09:17:15
Sorry aber ich glaube du hast das setup nicht verstanden.

FHEM läuft lokal mit einer MariaDB (vorher sqllite).
Da ich grafana schon mit teslamate in einem docker laufen habe wollte ich nicht nochmal grafana lokal installieren.
Deswegen musste ich es ermöglichen, dass grafana aus dem docker auf meine lokale db zugreifen kann.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 07 November 2022, 09:32:11
Zitat von: Phili am 07 November 2022, 09:17:15
Sorry aber ich glaube du hast das setup nicht verstanden.

FHEM läuft lokal mit einer MariaDB (vorher sqllite).
Da ich grafana schon mit teslamate in einem docker laufen habe wollte ich nicht nochmal grafana lokal installieren.
Deswegen musste ich es ermöglichen, dass grafana aus dem docker auf meine lokale db zugreifen kann.

Das Prinzip wäre aber den FHEM Container zu verwenden und alle anderen Dienste ebenfalls in separaten Containern zu verwenden.
Bisher habe ich alle Komponenten bereits in fertigen Containern gefunden. Für MySQL auf einem RPI 4 64Bit verwende ich sogar das original MySQL vom Oracle, was bereits in der Entwicklung um einiges weiter ist als die MariaDB. Alle anderen Container greifen über TCP/IP auf den MySql standard Port zu.

VG   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 07 November 2022, 09:35:24
Zitat von: Phili am 07 November 2022, 09:17:15
Sorry aber ich glaube du hast das setup nicht verstanden.

FHEM läuft lokal mit einer MariaDB (vorher sqllite).
Da ich grafana schon mit teslamate in einem docker laufen habe wollte ich nicht nochmal grafana lokal installieren.
Deswegen musste ich es ermöglichen, dass grafana aus dem docker auf meine lokale db zugreifen kann.
Mir ging es darum, hervorzuheben dass netzwerk "host" keine Empfehlung ist, sondern vorsichtig verwendet werden soll. Wenn deine Datenbank keine Verbindung zulässt hast du vermuthlich in einer Config das unterbunden (ggf. per default).

Es gibt sowohl Fhem  als auch MySql / MariaDb als Docker. Die Aussage "speziell" bezieht sich auf die Mischung von Anwendungen lokal vs. Rest in Containern.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 07 November 2022, 09:42:51
Zitat von: kadettilac89 am 07 November 2022, 09:35:24
Mir ging es darum, hervorzuheben dass netzwerk "host" keine Empfehlung ist, sondern vorsichtig verwendet werden soll.
Leider muss ich FHEM auch mit Netzwerk Host betreiben, da ich einen SMA Energymanager habe, der leider ansonsten nicht kommunizieren kann.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 07 November 2022, 10:18:23
Zitat von: ch.eick am 07 November 2022, 09:42:51
Leider muss ich FHEM auch mit Netzwerk Host betreiben, da ich einen SMA Energymanager habe, der leider ansonsten nicht kommunizieren kann.
Du schreibst es ja "Leider". Wenn es einen Grund gibt dann kann man das natürlich machen. Mir ging es darum, dass es ein Sonderfall bleiben soll und nicht als eine Anleitung beschrieben wird. Um auf eine DB zuzugreifen braucht man kein network_mode host. Da ist entweder der User nur für localhost freigegeben oder eine andere Einstellung. Oder es wird "nur" der falsche Host angesprochen. Phili hat sowieso ein spezielles Setup, da spielt für ihn "host" keine Rolle.

Zitat von: Phili am 06 November 2022, 13:12:27
Zur Doku falls das Setup auch jemand mal braucht.
Die docker-compose.yml muss angepasst werden damit auf die lokale sql db zugegriffen werden kann. Über die Zeile network_mode: "host" in der service config des containers kann dann ganz normal in grafana über localhost:3306 auf die sqldb auf dem host zugegriffen werden.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Phili am 07 November 2022, 14:42:44
Hi,

sorry ich wollte den Thread mit meiner Anfrage nicht so zu müllen  :-[.

Danke kadettilac89 für den Hinweis auf die mysql config! Ich hatte mir das nochmal angeschaut und tatsächlich lag es an der config des sql servers. Ich habe mich hier (https://mein-edv-blog.de/2020/08/01/mariadb-extern-verfuegbar-absichern/) orientiert und die .cnf angepasst.
bind-adress stand vorher auf localhost


# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 192.168.0.100


Damit komme ich auch ohne "networkmode = host" in der container.yml auf die Datenbank. (Ich editiere mein Beitrag oben)

Vielleicht zur Erklärung warum mein setup so ist.
Der rpi läuft schon seit Jahren mit FHEM und sqllite (ohne docker). Ich hatte dann dieses Jahr angefangen meine Tesla Daten zu loggen. Ich wollte aber Teslamate und die Postgre DB nicht parallel auf den rpi installieren aus Angst irgendwas zu zerschießen oder die Performance eventuell leidet. Deshalb hatte ich teslamate, postgresql und grafana in einem docker auf dem rpi installiert, um es zur Not einfach wieder runterschmeißen zu können. Dann kam ich auf diesen Thread hier und wollte nun das grafana im "tesla docker" mit der FHEM db die lokal läuft verbinden.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Steffen@Home am 13 November 2022, 14:15:53
Hallo Zusammen,

kann man mit dem Raspi 3 ( Bullseye ) die offizielle Download-Platform benutzen?
https://grafana.com/grafana/download?edition=oss&pg=get&platform=arm&plcmt=selfmanaged-box1-cta1

->Edition OSS oder Enterprise ?

Ubuntu and Debian(ARMv7) nehme ich an?
Zitat
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_9.2.4_armhf.deb
sudo dpkg -i grafana_9.2.4_armhf.deb
Zitatsudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.2.4_armhf.deb
sudo dpkg -i grafana-enterprise_9.2.4_armhf.deb


Danke für die Info!
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 13 November 2022, 17:05:51
Zitat von: Steffen@Home am 13 November 2022, 14:15:53
->Edition OSS oder Enterprise ?

Ubuntu and Debian(ARMv7) nehme ich an?

Danke für die Info!
Enterprise

The Enterprise Edition is the default and recommended edition. It includes all the features of the OSS Edition, can be used for free and can be upgraded to the full Enterprise feature set, including support for Enterprise plugins.


Die deb müsste passen. Wenn es die falsche Version ist kannst du es wegen falscher CPU-Architektur sowieso nicht installieren.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kask am 18 Januar 2023, 18:56:50
Hallo,
ich versuche mich auch gerade an grafana. Soweit funktioniert das auch.
Ich habe allerdings Probleme mit der Legende.
Wenn ich ' "blahblub" as metric'  in den sql string mache dann steht immer noch value in der legende.
Grafana sollte das  neuste sein habe ich erst vor einer Woche installiert.
Ist doof das alles immer mit den overrides zu lösen. Wäre schöner wenn es über den sql query gehen würde.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 18 Januar 2023, 19:45:20
Zitat von: kask am 18 Januar 2023, 18:56:50
Ist doof das alles immer mit den overrides zu lösen. Wäre schöner wenn es über den sql query gehen würde.
Grafana macht ja genau was du ihm sagst. Deine Spalte hast du ja "as value" in der Query benannt. Setze hier den Namen den du willst.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kask am 19 Januar 2023, 19:57:52
ähm..."as value" ist der gesetzt weil grafana das so braucht um den Wert als Feldwert zu erkennen/ zu akzeptieren.
Oder verstehe ich da was falsch? Geb mal bitte ein Beispiel was du meinst bzw. wie es bei dir ist. bzw. wie du meinst das es gehen soll.

edit:
Zitat
Ein Beispieleintrag sieht wie folgt aus

SELECT
UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
VALUE as value,  "Kurvenbezeichnung" as metric
FROM history WHERE READING="state"  AND DEVICE="MyDummy" AND $__timeFilter( TIMESTAMP )

Solltet Ihr numerische Werte in einer Grafik ausgeben wollen, müsst Ihr das Text-Feld VALUE mittels cast(VALUE as signed) konvertieren

SELECT
UNIX_TIMESTAMP(TIMESTAMP) as time_sec,
cast(VALUE as signed) as value,  "Kurvenbezeichnung" as metric
FROM history WHERE READING="state"  AND DEVICE="MyDummy" AND $__timeFilter( TIMESTAMP )


so ist es auch im fhemwiki beschrieben...klappt auch bis auf die legende.

mariadb liefert dann folgendes, wie auch zu erwarten(limitiert anstatt dem datum!):
Zitat
MariaDB [fhem]> SELECT  UNIX_TIMESTAMP(TIMESTAMP) as time_sec,  cast(VALUE as signed) as value,  "Temp_Flur_oben" as metric   FROM history WHERE DEVICE ="DS18X20" AND READING = "Temp_Flur_oben" limit 10;
+------------+-------+----------------+
| time_sec   | value | metric         |
+------------+-------+----------------+
| 1670782925 |    17 | Temp_Flur_oben |
| 1670783225 |    18 | Temp_Flur_oben |
| 1670783525 |    18 | Temp_Flur_oben |
| 1670786670 |    18 | Temp_Flur_oben |
| 1670786730 |    18 | Temp_Flur_oben |
| 1670786910 |    18 | Temp_Flur_oben |
| 1670786970 |    18 | Temp_Flur_oben |
| 1670787030 |    18 | Temp_Flur_oben |
| 1670787150 |    18 | Temp_Flur_oben |
| 1670787210 |    18 | Temp_Flur_oben |
+------------+-------+----------------+
10 rows in set, 10 warnings (0.006 sec)


Also denke ich mir jetzt das das Feld "metric" nicht als legende übernommen wird. bzw. vieleicht nicht mehr oder ich muss irgendwo was ändern.
den time_sec ist ein feld das grafana braucht, value auch..beides muss so heissen sonst wird das nix. aber über das metric finde ich nichts.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 19 Januar 2023, 22:16:12
Zitat von: kask am 19 Januar 2023, 19:57:52
ähm..."as value" ist der gesetzt weil grafana das so braucht um den Wert als Feldwert zu erkennen/ zu akzeptieren.
Oder verstehe ich da was falsch? Geb mal bitte ein Beispiel was du meinst bzw. wie es bei dir ist. bzw. wie du meinst das es gehen soll.
Ich nutze kein MySQL, alles Gefrickel. Habe meine Daten in InfluxDB. Darum kann ich dir kein Beispiel geben

Zitat von: kask am 19 Januar 2023, 19:57:52
mariadb liefert dann folgendes, wie auch zu erwarten(limitiert anstatt dem datum!):
Was mariadb ausgibt ist irrelevent. Was zeigt dir der Query inspector an. Dessen Daten, Ausgabe und vor allem "Error" hilft weiter.

Was du testen kannst:
1) alles in separate Zeile und Tabs, unnötige Leerzeichen raus, Query mochte es zumindest früher nicht wenn man mehrere Teile in einer Zeite hat. Du machst value und metric in eine Zeile obwohl Syntax hier eigene Zeilen vorsieht
2)   
VALUE as value, 
READING as metric     
.... damit du keinen String sondern eine DB-Spalte nutzt
3)   
VALUE as value, 
READING as metric_1
mit metric_1 zwingst du eine Liste an metric feldern wobei du dann nur die erste nutzt
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kask am 20 Januar 2023, 07:53:41
Habe ich alles probiert.
-Der inspector gibt das gleiche aus. Habe es hier nur zum posten über die mysql consolen ausgabe gemacht.
-Der Inspector gibt auch keinen warnings/errors aus.

-Mit 'Reading as metric' kommt wie zu erwarten das gleiche raus (Zelleninhalt von Zelle "Reading" als Spalte).

tabs, leerzeichen etc. kann ich ausschliessen da auch probiert.
Und die Anordnung habe ich auch geändert. Dem Query ist es latte ob man mehrere Anweisungen oder Bedingungen in einer Zeile sind. Kenne ich nicht anders,
Mit dem SQL was ich bis dato gemacht habe war es nie ein Problem. Vieleicht gab es mal eine engine die es nicht konnte, ist mir persönlich aber noch nie untergekommen.
Und SQL query's bastel ich schon ungelogene 20 Jahre zusammen. Ob postgres, mysql, mariadb, notes, access. Das war noch nie ein Problem in meinem dasein bei meinen Aufgaben.
Wie dem auch sei. Das habe ich aber auch schon angepasst und bekomme die legende einfach nicht angezeigt.

Was mich irritiert ist die tatsache das wenn ich
z.b.
'34 as metric_int1'
anstatt dem '"blah" as metric' einfüge, dann habe ich einen zweiten Eintrag in der legende mit "metric_int1". Dazu dann auch eine Gerade im Trend/Plot mit Wert 34.

Zitatmit metric_1 zwingst du eine Liste an metric feldern wobei du dann nur die erste nutzt
habe ich auch gemacht.
Ich kann auch "READING as blahblubs" machen.
Dann habe ich auch eine Zeile mit namen blahblubs und inhalt der readingszelle. Macht das gleiche.
Nur blahblubs kennt grafana nicht und metric und metric_1 auch nicht.

Bin ich der einzige mit dem Problem. Kann ich nicht glauben!

Edit:
habe ein Bild angefügt mit allen Anmerkungen abgeändert. (tabs und leerzeichen muß man mir jetzt aber glauben.)

Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: kadettilac89 am 20 Januar 2023, 13:51:55
Ich verstehe das Problem immer noch nicht. Du hast eine Spalte der du im SQL-Statement den Namen "value" gibst. Dieser Name wird auch so im Plot angezeigt. Wie viele Datenreihen hast du? Eine? Warum erstetzt du dann "value" nicht mti "Temp_Flurplan_oben"? Dann wird der Name auch im Plot angezeigt. Oder willst du dynamisch mit einem Select alle möglichen Reihen einlesen und dann im Plot ausfiltern?

Wie gesagt nutze ich InfluxDB weil Grafana darauf aufgebaut, und damit harmoniert. Vielleicht verstehe ich deshalb dein Problem nicht.

Unabhängig von Problemen und Wiki. Grafana wurde um den VErsionssprung zu 9 massiv umgebaut, die ganzen Plots neu erstellt. In dem Zuge kann es auch zu Änderungen gekommen sein. Möglicherweise ist die Funktion die du suchst jetzt in Templates oder andere Notations gewandert. Aber auch hier ... nutze ich nicht, da alles was ich brauche harmonisch in Influx enthalten.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: C0mmanda am 20 Januar 2023, 17:07:07
Moin,

vielleicht wurde es bereits irgendwo gefragt, dann habe ich es leider übersehen:

Gibt es die Möglichkeit die Time-Range des Graphen so einzustellen dass ich z.B. immer "Heute von 6-23Uhr" angezeigt bekomme
statt nur die letzten x-Stunden?

Danke!
Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: C0mmanda am 22 Januar 2023, 17:39:52
Zitat von: C0mmanda am 20 Januar 2023, 17:07:07
Moin,

vielleicht wurde es bereits irgendwo gefragt, dann habe ich es leider übersehen:

Gibt es die Möglichkeit die Time-Range des Graphen so einzustellen dass ich z.B. immer "Heute von 6-23Uhr" angezeigt bekomme
statt nur die letzten x-Stunden?

Danke!
Gruß

Für alle die es interessiert, ich habe es herausgefunden :)
Man kann für einen Plot "Heute 0:00-24:00Uhr" die Timerange from "now/d" to "now/d" eingeben.
Wenn man nun nur heute 06-23Uhr haben möchte gibt man ein from "now/d+6h" to "now/d-1h" ein.
Geht auch im iFrame, da muss "/" und "+" aber codiert eingegeben werden, also "&from=now%2Fd%2B6h&to=now%2Fd-1h" dann funktioniert es.

Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 22 Januar 2023, 18:31:09
Zitat von: C0mmanda am 22 Januar 2023, 17:39:52
Für alle die es interessiert, ich habe es herausgefunden :)
Man kann für einen Plot "Heute 0:00-24:00Uhr" die Timerange from "now/d" to "now/d" eingeben.
Wenn man nun nur heute 06-23Uhr haben möchte gibt man ein from "now/d+6h" to "now/d-1h" ein.
Geht auch im iFrame, da muss "/" und "+" aber codiert eingegeben werden, also "&from=now%2Fd%2B6h&to=now%2Fd-1h" dann funktioniert es.

Gruß
Super, das klappt bei mir für den nächsten Tag mit 24h auch, da ich da heute schon die Leistungsprognose für morgen eintrage :-)

Gibt es da auch noch eine Möglichkeit das als "Relative time ranges" mit z.B. Tomorrow selber zu definieren?

VG  Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: C0mmanda am 23 Januar 2023, 07:09:15
Zitat von: ch.eick am 22 Januar 2023, 18:31:09
Gibt es da auch noch eine Möglichkeit das als "Relative time ranges" mit z.B. Tomorrow selber zu definieren?

Ich fürchte ich verstehe noch nicht ganz wie du das meinst, kannst du ein Beispiel nennen?

Gruß
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 23 Januar 2023, 08:25:00
Zitat von: C0mmanda am 23 Januar 2023, 07:09:15
Ich fürchte ich verstehe noch nicht ganz wie du das meinst, kannst du ein Beispiel nennen?
Man hat in den Pull Down Menü ja die Auswahl z.B. für Gestern, Heute und andere Zeiträume. Dort möchte ich dann gerne noch "Morgen" eintragen.
Der Hintergrund ist, das ich den Leistungsforcast fc1 bereits heute dort eintrage, damit der Graph mit dem fc0 von morgen direkt optisch im Vergleich ist.

Manchmal schaue ich mir den auch bereits heute schon an und muss dann halt immer über das Datum gehen.

VG   Christian
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 23 Januar 2023, 11:08:29
Ich habe seit einigen Wochen Probleme mit meinem FHEM und suche die Nadel im Heuhaufen (siehe https://forum.fhem.de/index.php/topic,131164.msg1253589.html#msg1253589 (https://forum.fhem.de/index.php/topic,131164.msg1253589.html#msg1253589)). Es gab ein paar Probleme mit MySQL, aber leider dauerten die Schwierigkeiten an, es lag also vermutlich doch nicht an der Engine von MySQL, wie in dem zitierte Beitrag beschrieben. Daraufhin habe ich grafana deinstalliert und seitdem habe ich Ruhe.

Gibt es jemanden, der eine ähnliche Beobachtung gemacht hat? Wichtig: Meine Installation läuft auf einem RPi.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 23 Januar 2023, 11:19:17
Zitat von: andies am 23 Januar 2023, 11:08:29
Gibt es jemanden, der eine ähnliche Beobachtung gemacht hat? Wichtig: Meine Installation läuft auf einem RPi.
Hast Du Grafana mal in einem Docker Container ausprobiert?
Ist genug RAM frei?
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 23 Januar 2023, 11:22:33
Genau RAM ist das Problem. Docker habe ich noch nicht ausprobiert, weil ich eine funktionierende FHEM-Installation habe und gerade nicht vor Ort bin, im worst case schmiert mir das System dann ab.
Titel: Antw:Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: ch.eick am 23 Januar 2023, 11:31:20
Zitat von: andies am 23 Januar 2023, 11:22:33
Genau RAM ist das Problem. Docker habe ich noch nicht ausprobiert, weil ich eine funktionierende FHEM-Installation habe und gerade nicht vor Ort bin, im worst case schmiert mir das System dann ab.
In dem anderen Thread ist es doch auch schon tief analysiert worden. Wenn Linux swapped, ist nicht genug RAM drin. Da hilft dann auch docker nicht weiter.
Kauf den aktuellsten RPI und installier gerne auch im 64 Bit Mode. Dann alles in Docker und die FHEM Komponenten stören sich etwas weniger mit MySQL oder Gradana. Ich habe im FHEM Docker nur sehr wenig, was da noch fehlt.

VG  Christian
Titel: Aw: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: Thyraz am 10 Mai 2023, 21:35:44
Ich wollte mal wieder ein neues Gimmick in die Runde werfen:

https://github.com/VolkovLabs/volkovlabs-echarts-panel

Das Plugin bringt die Apache EChart Library in Grafana.
Die ist eigentlich Javascript basierend und ist eine komplette eigene Chartinglösung zum Einbinden in eigene Webseiten.

Das Plugin bringt einen kompletten Code-Editor mit, in dem man beliebiges Javascript packen kann um die Daten vorzuverarbeiten und dann dem Chart zuzuweisen.

Davor setzt man normale Queries im Grafana Teil der Chartkonfiguration, die einem dann im Javascript zur Verfügung steht.

Mit einem einfachen console.log(data) am Anfang im Javascript kann man sich dann die eingehenden Daten in der Browser Console der Entwicklertools anschauen, damit man weiß was man zu tun hat.

Welcher Charttyp wie konfiguriert werden will, und wie man die Daten zuweisen muss findet man in den tausenden Examples hier:
https://echarts.apache.org/examples/en/index.html

Eine Einführung zu den Besonderheiten des ECharts Plugins in Verbindung mit Grafana als Starthilfe findet sich in dem etwas lustigen Video das auf der Github Seite verlinkt ist. ;)

Dinge die damit möglich sind:
- Daten weit einfacher zu "transformieren" als das alles in ein SQL Query packen zu müssen.
  Daher einfachere Querys möglich die einfach den richtigen Zeitraum liefern.
  Filtern, Sortieren, Gruppieren, Min/Max, Berechnungen etc. kann man alles bequemer im Javascript machen

- Man kann Buttons und Dropdowns einbauen und man kann auf Grafana Variablen zugreifen und sie auch beschreiben.
  Das ewig gewünschte (und immer noch nicht in Grafana umgesetzte) Feature eines Dropdowns mit vordefinierten Zeiträumen ist damit z.B. machbar.
  Und man kann auch den Zeitraum des gesamten Dashboards ändern wenn man die Grafana Variablen "to" und "from" umbelegt.
  Dann wird das Dashboard sofort angepasst.

- Etwas verrücktere Charttypen wie z.B. Sankey für Energieverbräuche lassen sich durch das Transformieren der Daten in eine beliebige Javascript-Objektstruktur viel leichter umsetzen. Siehe Screenshot

- Durch das Speichern und Abrufen von Werten in Grafana Variablen, und der Möglichkeit von Callbacks bei Clicks auf einen Grafen sollte es an sich möglich sein über CHarts hinweg zu "kommunizieren".
  Ich erhoffe mir davon z.B. bei einem Balkendiagram einen Tageswert anklicken zu können und dann im Chart darunter Details zu dem aktuell markierten Tag anzeigen zu können.
  Solche Spielchen kann Grafana ja bisher noch gar nicht von Haus aus.

Bin da selber noch ganz am Anfang, das daher nur mal als Anregung sich damit zu beschäftigen. :)
Wenn ich ein paar coole Sachen umgesetzt habe gibt es hier sicher auch ein paar Beispiele inkl. Code.

1.jpg
Titel: Aw: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: bertl am 19 Mai 2023, 09:58:46
Bezüglich der schon äteren Anfrage von 'speedAmaster' poste ich hier mal meine Lösung, da ich leider keine gefunden habe - vielleicht hilft es ja jemanden!
Zitat von: speedAmaster am 09 Oktober 2020, 12:06:342) ich würde gerne (wie bei FHEM-plot) das Zeitfenster wählen wollen (hinein-, heraus-zoomen, links-rechts)
    a) dies geht zwar statt mit iframe mit der normalen URL, dann habe ich aber alle Interaktionsmöglichkeiten - nicht gewünscht - wie kann ich auch nur den TimeRange anzeigen/auswählen?

Kurze Erklärung:
Ich zeige von meiner PV-Anlage die aktuellen Tageswerte mithilfe Grafana an.
Um mir den heutigen, gestrigen, vorgestrigen, ... Tagesverlauf anzuzeigen, verwende ich ein Dummy mit dem ich tageweise blättere (0 = heute, 1 = gestern , 2 = vorgestern, ...).

Dummy zum tageweise blättern:
define Grafana.Zeitraum dummy
attr Grafana.Zeitraum group Plot_WR
attr Grafana.Zeitraum room Buero
attr Grafana.Zeitraum setList up down
attr Grafana.Zeitraum sortby 1
attr Grafana.Zeitraum stateFormat [$name:days:r0]
attr Grafana.Zeitraum webCmd up:down

Grafane iframe-Einbindung mit der Angabe des Zeitraums:
define PV.Tageswerte.Scroll weblink htmlCode {\
  my $days = ReadingsNum( "Grafana.Zeitraum", "days", 0 );;\
  my $begin = time_str2num( strftime( "%Y-%m-%d 00:00:00", localtime( time() - ( 86400 * $days ) ) ) );;\
  my $end = time();;\
  if ( $days > 0 ) {\
    $end = time_str2num( strftime( "%Y-%m-%d 23:59:59", localtime( time() - ( 86400 * $days ) ) ) );;\
  }\
  my $timerange = "from=".($begin*1000)."&to=".($end*1000);;\
  my $url="<hier deine persönliche iframe url von grafana eingeben>&$timerange";;\
  return "<iframe src=$url width=1200 height=600 frameborder=0></iframe>"\
}
attr PV.Tageswerte.Scroll group Plot_WR
attr PV.Tageswerte.Scroll room Buero
attr PV.Tageswerte.Scroll sortby 2

Notify zum Setzen der Dummy-Werte, Abfragen der Grenzen und Aktualisierung der Grafik:
define ntf_Grafana.Zeitraum notify Grafana.Zeitraum:(up|down) {\
  my $val = ReadingsNum( "Grafana.Zeitraum","days",0 );;\
  if ( $EVENT eq "up" ) {\
    $val += 1;;\
  }\
  elsif ( $EVENT eq "down" ) {\
    $val -= 1;;\
  }\
  if ( $val >= 0 and $val <= 31 ) {\
    fhem( "setreading Grafana.Zeitraum days $val" );;\
    map {\
      FW_directNotify("FILTER=room=Buero", "#FHEMWEB:$_", "location.reload('true')", "")\
    } devspec2array("WEB.*");;\
  }\
  else {\
    FW_directNotify( "FILTER=room=Buero", "#FHEMWEB:WEB", "FW_okDialog('Grafana.Zeitraum ($val) is out of range [0 to 31]')", "" );;\
  }\
}
attr ntf_Grafana.Zeitraum group Plot_WR
attr ntf_Grafana.Zeitraum room Buero
attr ntf_Grafana.Zeitraum sortby 3
attr ntf_Grafana.Zeitraum verbose 2

Die Lösung für diesen Ansatz hat 'Otto123' in folgenden Post geliefert - danke dafür!
https://forum.fhem.de/index.php?msg=965763

Schönen Tag
Robert
Titel: Aw: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 01 Januar 2024, 23:34:58
Zitat von: Thyraz am 10 Mai 2023, 21:35:44Ich wollte mal wieder ein neues Gimmick in die Runde werfen:

https://github.com/VolkovLabs/volkovlabs-echarts-panel
Das sieht sehr interessant aus, zumal meine bisherige Grafana-Lösung einige Schwächen hat (im Raspberry kein senden der Bilder via Telegram möglich, in meiner Synologie kein docker möglich und daher Grafana dort nicht realisierbar, ich habe mich zudem nur schwer mit den queries anfreunden können, keine deutsche Timeline...).

Ich traue mich mal zu fragen, ob ,,jemand" so etwas nicht in 98_SVG.pm implementieren kann? Leider kenne ich mich in Perl nicht gut genug aus und kann überhaupt nicht abschätzen, wie dreist eine solche Frage ist und ob das überhaupt zum Konzept von FHEM passt. Kann sich jemand der Profis mal dazu äußern? Machbar? Viel Arbeit? Nur wenige Zeilen zu verändern? lohnt sich das?
Titel: Aw: Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)
Beitrag von: andies am 18 Februar 2024, 21:32:17
Ich habe versucht eine Art eCharts-Modul zu bauen, und bin bei den ersten Anfängen: https://forum.fhem.de/index.php?topic=137009.0

Allerdings scheint auch Jens (jemu75) in seiner FHEMApp eCharts zu integrieren, eventuell sollte man da auch vorbeischauen: https://forum.fhem.de/index.php?topic=137016.0