Ankündigung

Einklappen
Keine Ankündigung bisher.

Diagram - RRA direkt adressieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tger977
    antwortet
    Zitat von MicHau Beitrag anzeigen
    Das ist mir nicht ganz klar. Wenn ich deine obigen Ausführungen richtig verstehe, wäre der Timestamp doch eigentlich korrekt. Bei 15 Minuten Auflösung gibt der Wert um 9 Uhr den errechneten Wert für 8:45 bis 9:00 wieder. Das wäre doch richtig. Wenn ich diesen Wert um 8:45 anzeigen würde, wäre das meines Erachtens falsch
    Nun ja, einerseits richtig aber andererseits ist das Diagramm so wie es nun ist auch "unschön" zu lesen wenn man mehrere Werte aus einem RRD mit verschiedenen Auflösungen darstellt.

    Hier mal ein schönes, anschauliches Beispiel:

    die roten Werte haben eine Resolution von 900 (15min) die grünen eine von 3600 (1 Stunde).

    die ersten roten Werte (Wh für 15min) sind:
    48 (9:00Uhr) , 176 (9:15h), 83, 56, 59 (10:00h)
    der erste grüne Wert für 10:00 Uhr liefert als Ergebnis für die Stunde von 9 bis 10 Uhr 374Wh für eine Stunde (Achtung hier ist ein Scalefaktor von 4 mit drin um die Absolutwerte für eine Stunde zu bekommen, ohne Scalefaktor würde als Mittelwert hier 93,5Wh rauskommen). Dies bedeutet es wurden die Werte 176, 83, 56 und 59 (sprich die Werte von 9:15 bis einschliesslich 10 Uhr) aus dem roten RRD verwendet.

    Grafisch interpretiert man nun aber daß dieser Wert (da er von 10 Uhr bis 11 Uhr als konstant mit 374Wh dargestellt wird) von 10 bis 11 Uhr galt. Es wäre deshalb (optisch) schöner wenn der grüne Wert von 374h von 9 bis 10 Uhr angezeigt würde.

    Um dies zu erreichen müsste man nun die gemessenen Werte alle um ihre Resolution Zeit in die Vergangenheit setzen, sprich die Werte auf der x-Achse um die Resolution Zeit zurückrechnen.

    Damit wäre dann im Beispiel ab 9 Uhr bis 10 Uhr folgende Werte dargestellt:
    rot: 176, 83, 56 und 59
    grün: 374
    und es würden die Werte die jeweils "zusammengehören" auch im Diagramm direkt zusammenpassen.

    Hoffe so wird es klarer was ich und wahrscheinlich auch JuMi meine.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • mivola
    antwortet
    Zitat von tger977 Beitrag anzeigen
    die Ideen für die netten Spielereien darfst Du gerne hier mit uns teilen
    Mach ich. Sobald diese einigermaßen vorzeigbar in der CV eingebunden sind :-)

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Hallo Micha,

    die Ideen für die netten Spielereien darfst Du gerne hier mit uns teilen

    Gruß
    Andi

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von tger977 Beitrag anzeigen
    @MicHau: Wenn man da nun noch eine x-Offset um die Resolution [sec] einbauen könnte wäre das perfekt!
    Das ist mir nicht ganz klar. Wenn ich deine obigen Ausführungen richtig verstehe, wäre der Timestamp doch eigentlich korrekt. Bei 15 Minuten Auflösung gibt der Wert um 9 Uhr den errechneten Wert für 8:45 bis 9:00 wieder. Das wäre doch richtig. Wenn ich diesen Wert um 8:45 anzeigen würde, wäre das meines Erachtens falsch

    Einen Kommentar schreiben:


  • mivola
    antwortet
    @tger977 & MicHau: vielen Dank für die Arbeit und die Erklärungen! Funktioniert echt prima. Da fallen mir direkt noch ein paar weitere Spielerein ein ... :-)

    Danke,
    Micha

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von tger977 Beitrag anzeigen
    Problem bei mir ist daß die Editierbox für das Diagram Plugin nun leider so lange geworden ist, daß Sie unten abgeschnitten wird und die neuen Parameter nicht sichtbar waren. Da es keine Scrollfunktion in dem Attributbereich gibt (warum eigentlich?!)
    Ich bin in Sachen Editor leider überfragt. Vielleicht kann jemand anderes hier helfen.

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von mivola Beitrag anzeigen
    Zufälligerweise bin ich auf der Suche nach einer ähnlichen Funktionalität. Und zwar würde ich gern einen Graph anzeigen lassen, der mir die Durchschnittstemperatur eines Tages bzw Woche/Monat anzeigt.

    Die Datenbasis liefert ein WG-Temperatursensor, also ein Standard-WG-RRD.
    so eben mal selbst ausprobiert: Geht nun ganz einfach aus dem Standard RRD in dem man beim RRD Teil des Temperatursensors einfach in die Resolution 86400 einträgt (die ist ein Vielfaches von 300s)! Man kann dann z.B. das rrd child einfach kopieren und nochmal eine Linie in die Grafik einfügen mit Standard resolution, dann sieht man den vergleich.

    Allerdings ist zu beachten wie oben schon geschrieben daß die Werte in die Vergangheit zeigen also subjektiv "verschoben" aussehen!

    @MicHau: Wenn man da nun noch eine x-Offset um die Resolution [sec] einbauen könnte wäre das perfekt!

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von MicHau Beitrag anzeigen
    Schritt 2 ist auch erledigt: Open Automation / Code / Commit [r2312]
    [/CODE]
    Danke! hab ich doch glatt heute morgen übersehen. Problem bei mir ist daß die Editierbox für das Diagram Plugin nun leider so lange geworden ist, daß Sie unten abgeschnitten wird und die neuen Parameter nicht sichtbar waren. Da es keine Scrollfunktion in dem Attributbereich gibt (warum eigentlich?!) muß man um die neuen Attribute zu sehen leider die Bildauflösung über CRTL + Mausrad deutlich reduzieren.

    Ansonsten scheint mir das Ganze prima und wie gewünscht zu funktionieren!

    Gruß
    Andi

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von mivola Beitrag anzeigen
    Ich hätte passend zur aktuellen Diskussion doch auch noch einen Feature-Wunsch. Ich würde gern den Namen des RRA direkt angeben können.
    das geht heute schon und war auch vorher schon im Plugin möglich. Hier handelt es sich um untershciedliche Datasets (DS). Diese kann man direkt im Plugin unter dem Attribut datasourceIndex eintragen. Alledings muß man hier nicht die Namen angeben sondern den Index. In dem Fall wäre 0 = shortterm, 1=midterm, 2=longterm.

    Zusätzlich kann man nun auch über das Resolution Attribut die Auflösung der Werte beeinflussen...

    Gruß
    Andi

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Also für mich sieht es nicht so gut aus. Die Tageswerte sind um einen Tag verschoben würde ich sagen. Ist irgendwann mal geplant von der speziell gepatchten rrdtool Version weg zu gehen? Ich hatte die rrdfetch.cgi schonmal soweit verändert dass sie mit jeder rrdtool Version läuft.
    Das ist leider ein prinzipielles "Problem". Das Tool speichert immer die Werte der Vergangenheit ab, d.h. bei den 15min Werten bekommt man immer den Wert der letzten 15min, bei den Stunden immer den letzten Wert der letzten Stunde, d.h.mit Zeitstempel von z.B. 9 Uhr bekommt man im 15min RRA den Wert von 8:45 bis 9:00 und im Stunden RRA bekommt man eben den Wert von 8:00 bis 9:00. Wollte man das korrigieren müsste man die x-Achsen Wertzuweisung entsprechend verschieben.

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von mivola Beitrag anzeigen
    Und zwar würde ich gern einen Graph anzeigen lassen, der mir die Durchschnittstemperatur eines Tages bzw Woche/Monat anzeigt.

    Die Datenbasis liefert ein WG-Temperatursensor, also ein Standard-WG-RRD. Die Frage ist nun: geht das mit den standardmäßig erstellen RRDs und deren RRA-Einstellungen? Wenn nicht, wie kann ich das existierende RRD anpassen/erweitern? Oder ist es eher sinnvoll ein separates RRD zu erstellen (und periodisch mit Werten zu füllen)? Wenn ja, mit welchen Parametern?
    Hallo Micha,

    die Standardeinstellungen im WG liefern Auflösungen von 5min für Zeitbereich von 7,5Tagen, 25min für 35Tage, 75min für 150Tage und 900min für 15 Jahre. Frag mich nun bitte nicht warum die Auflösungen so gemacht wurden. Ich hätte die Auflösungen auch anders gewählt (z.B. 5min, 1h, 24h und 1 Woche). Das geht, dazu müsste man aber alle RRD neu anlegen und ggf. die Daten aufwändig in die neuen RRD übertragen. Man kann das aber individuell in den Einstellungen des WG ändern oder selbst die RRD anlegen.

    Ich habe mal ein xls gemacht (in dem sind die Standardparameter des WG als Anfangswerte enthalten) in dem man zumindest rausbekommt welche Resolution man in dem neuen Parameter eintragen muß um genau die Werte eines RRA zu bekommen. Dazu muß man mit folgendem Befehl im rrd Verzeichnis

    Code:
    rrdtool info 28.99FF5A040000_temp.rrd
    sich die Werte step, RRA Index, PDP_per_row und rows rauslesen (grün hinterlegte Eingabefelder) und dort eintragen. Man bekommt dann die Resolution und den möglichen Zeitbereich der RRA heraus.

    Dann einfach die gewünschte Resolution eines RRA in der CV eintragen und es sollte funktionieren.

    Wenn man eine andere Resolution haben möchte sollte das das rrdtool auch intern umrechnen können, man sollte nur beachten daß man ein Vielfaches einer vorhandenn Resolution verwendet. Das Ganze habe ich aber noch nicht wirklich ausprobiert.

    Gruß
    Andi
    Angehängte Dateien

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Das Backend ist eigentlich relativ simpel, nur erwartet die CV die Daten als json. Das kann bislang nur die gepatchte rrdtool Version des Wiregates. Ich hatte damals aktuelle rrdtools für x86 und arm gebaut die den Patch enthielten.
    Makkis Totschlagargument war die Geschwindigkeit und damit hat er auch recht. Die aktuellen rrdtool Versionen sind langsamer. Sein Patch/Featurerequest wurde von T.Oettinger nicht übernommen.

    Da ich darauf keinen Bock hatte hatte ich einfach die rrdfetch.cgi geändert: https://knx-user-forum.de/cometvisu/...tml#post316204

    Alles was rrdtool fetch kann, kann damit auch die CV, wenn man will. Die bash Funktionen kann ja mal jemand auf Geschwindigkeit optimieren.

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von mivola Beitrag anzeigen
    Nun würde ich dieses gern in der CV anzeigen. Dazu müsste man aber den RRA-Namen mit übergeben können. Die URL sieht dann beipsielhaft wie folgt aus:
    http://wiregateXYZ/graph.pl?--start=...:ds0=load.rrd:midterm:AVERAGE;LINE1:ds0%23FF0000:load.rrd;

    Könnte dies jemand mit genug Kenntnis einbauen? Oder ist der Aufwand größer als es mir jetzt erscheint?
    Wenn mir jemand sagt, wie ich das in den oben beschriebenen serverseitigen Aufruf als Parameter (siehe #13: https://knx-user-forum.de/449773-post13.html) übergeben muss, kann ich das gerne übernehmen. Allerdings behandele ich die Serverseite, wie im vorherigen Post beschrieben, als Blackbox, daher kann ich da selbst nicht weiterhelfen.

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Also für mich sieht es nicht so gut aus. Die Tageswerte sind um einen Tag verschoben würde ich sagen.
    Das ist durch die gestrigen Commits passiert? Wenn ja, kannst du deine XML-Config eventuell hier einstellen, damit ich das eventuell nachstellen kann?

    Zitat von JuMi2006 Beitrag anzeigen
    Ist irgendwann mal geplant von der speziell gepatchten rrdtool Version weg zu gehen? Ich hatte die rrdfetch.cgi schonmal soweit verändert dass sie mit jeder rrdtool Version läuft.
    Da bin ich leider überfragt. Zum einen, warum es eine gepatchte Version gibt, zum anderen, ob man davon wegkommen kann.
    Ich kenne mich nur mit dem CV-Javascript-Teil aus, weil ich irgendwann das bestehende Plugin um ein paar Funktionen erweitert habe. Was da auf Backend-Seite passiert, wird von mir eher als BlackBox betrachtet.

    Allerdings für mein Empfinden ist das aktuelle Setup recht speziell, ich wüsste aber momentan nicht, wie man es anpassen kann/sollte. Vorschläge sind jederzeit willkommen.

    Einen Kommentar schreiben:


  • mivola
    antwortet
    Ich hätte passend zur aktuellen Diskussion doch auch noch einen Feature-Wunsch. Ich würde gern den Namen des RRA direkt angeben können. Hintergrund: auf dem WG wird ein "load.rrd" (siehe https://knx-user-forum.de/wiregate/3...anleitung.html) geschrieben (in /var/lib/collectd/rrd/wiregate302/load/load.rrd). Mit "ln -s /var/lib/collectd/rrd/wiregate302/load/load.rrd /var/www/rrd/load.rrd" habe ich dieses in das Standard-Verzeichnis verlinkt. Das RRD beinhaltet 3 RRAs: shortterm, midterm, longterm:
    Code:
    user@wiregate302:/var/www/rrd$ rrdtool info load.rrd
    filename = "load.rrd"
    rrd_version = "0003"
    step = 10
    last_update = 1420442919
    ds[shortterm].type = "GAUGE"
    ds[shortterm].minimal_heartbeat = 20
    ds[shortterm].min = 0,0000000000e+00
    ds[shortterm].max = 1,0000000000e+02
    ds[shortterm].last_ds = "0.710000"
    ds[shortterm].value = 6,3900000000e+00
    ds[shortterm].unknown_sec = 0
    ds[midterm].type = "GAUGE"
    ds[midterm].minimal_heartbeat = 20
    ds[midterm].min = 0,0000000000e+00
    ds[midterm].max = 1,0000000000e+02
    ds[midterm].last_ds = "1.160000"
    ds[midterm].value = 1,0440000000e+01
    ds[midterm].unknown_sec = 0
    ds[longterm].type = "GAUGE"
    ds[longterm].minimal_heartbeat = 20
    ds[longterm].min = 0,0000000000e+00
    ds[longterm].max = 1,0000000000e+02
    ds[longterm].last_ds = "1.190000"
    ds[longterm].value = 1,0710000000e+01
    ds[longterm].unknown_sec = 0
    Nun würde ich dieses gern in der CV anzeigen. Dazu müsste man aber den RRA-Namen mit übergeben können. Die URL sieht dann beipsielhaft wie folgt aus:
    http://wiregateXYZ/graph.pl?--start=...:ds0=load.rrd:midterm:AVERAGE;LINE1:ds0%23FF0000:load.rrd;

    Könnte dies jemand mit genug Kenntnis einbauen? Oder ist der Aufwand größer als es mir jetzt erscheint?

    Danke,
    Micha

    Einen Kommentar schreiben:

Lädt...
X