SVG: Darstellungsfehler bei rollierenden Logs und Plot mit Monatswechsel

Begonnen von Dr. Boris Neubert, 04 Oktober 2015, 21:50:15

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

aktuelle Version von FHEM. Monatlich rollierende Logs. endPlotNow ist ein. Beim Herauszoomen des Plots auf das Log ist der Zeitraum auf der Abszisse 28.09-04.10 und es werden für Oktober keine Werte dargestelt. Der Plot bricht also mit Ende September ab, obwohl es auch im Oktober Werte gibt. Bei mehreren meiner Plots nachvollziehbar.

Definition:

define e.ext.tank.log FileLog /opt/fhem/log/e.ext.tank-%Y%m.log e.ext.tank:.*
attr e.ext.tank.log group Zisterne
attr e.ext.tank.log logtype e.ext.tank:Plot,text:Text
attr e.ext.tank.log room Control/Garten

define e.ext.tank.weblink SVG e.ext.tank.log:e.ext.tank:CURRENT
attr e.ext.tank.weblink alias Zisternenfüllstand
attr e.ext.tank.weblink room 1/Garten
attr e.ext.tank.weblink title sprintf("Füllstand: %.0f %% (%.0f %% .. %.0f %%)",$data{currval1},$data{min1},$data{max1})


Außerdem:

define webserver1 FHEMWEB 8083 global
attr webserver1 SVGcache 1
attr webserver1 alias Webserver (Desktop)
attr webserver1 endPlotNow 1
attr webserver1 group Webserver
attr webserver1 hiddenroom save
attr webserver1 longpoll 1
attr webserver1 longpollSVG 1
attr webserver1 plotfork 10
attr webserver1 plotmode SVG
attr webserver1 reverseLogs 1
attr webserver1 room Control/System
attr webserver1 stylesheetPrefix dark


Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

FileLog ist nicht in der Lage, Daten aus zwei Dateien zu liefern.
War schon immer so. Ob man das als Fehler bezeichnet, ist diskussionswuerdig.

Dr. Boris Neubert

Ah, verstehe.

Ich glaube, dass die Plots früher nur den aktuellen Monat zeigen konnten. Jetzt zeigt der Plot den Monat, in dem der Plot beginnt. Damit muss FileLog ja schon eine gewisse Intelligenz mehr besitzen als früher und sich die richtige Datei für den Startpunkt raussuchen können statt nur in der aktuellen Datei zu suchen.

Daraus schloss ich, dass jetzt auch mehrere Monate gehen.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

itguru

Ich hatte das gleiche Problem (da ich meine Plots i.d.R. in der Wochenansicht anschaue und ich "Monats-Logfiles" erzeuge).

Ich hab mir einen kleine Quick&Dirty Patch gegen die FHEM/92_FileLog.pm aus der 5.5 gebaut.

Kann man einfach mit ...

patch -p0 <multiFileLog.patch


... einspielen - vielleicht hilft er dir ja weiter. (100%ig schön ist der Patch nicht - aber er tut zumindest für "Benachbarte Logs")

rudolfkoenig

Habs eingebaut, auch wenn es wirklich dirty ist: es bleibt ein .transit.temp.log mit doppelten Inhalt uebrig. Und es funktioniert nur, wenn die Datei noch nicht ins archivedir verschoben wurde. Wozu ist eigentlich die Abfrage !($linf_to =~ m/%/) gut? Und ich wuesste gerne, wieso patch es nicht akzeptieren wollte...

itguru

Zitat von: rudolfkoenig am 07 November 2015, 21:37:34
Habs eingebaut, auch wenn es wirklich dirty ist: es bleibt ein .transit.temp.log mit doppelten Inhalt uebrig. Und es funktioniert nur, wenn die Datei noch nicht ins archivedir verschoben wurde. Wozu ist eigentlich die Abfrage !($linf_to =~ m/%/) gut? Und ich wuesste gerne, wieso patch es nicht akzeptieren wollte...

Klar, das  .transit.temp.log bleibt übrig (hab aber noch nicht soviel Erfahrung mit der fhem Entwicklung und hab noch nicht verstanden, ob es ein temp-Handling gibt bzw. wie es geplant ist).

Das mit dem  !($linf_to =~ m/%/)  hatte ich aus der alten Version vom FileLog übernommen. Ist u.U. also vermutlich nicht notwendig.

Was meinst du mit "patch hat es nicht akzeptiert"?

rudolfkoenig

Ich habe die Pruefung ausgebaut, und die Temp-Datei wird jetzt nach Gebrauch geloescht.

ZitatWas meinst du mit "patch hat es nicht akzeptiert"?
patch hat sich geweigert (hat .rej erzeugt), und ich musste die Aenderungen per Hand uebertragen.
Wie geschrieben, wuesste gerne wieso, da ich nichts offensichtlich falsches entdeckt habe.

rudolfkoenig

betateilchen hat sich (zurecht) beschwert, dass die temporaere Datei a) gross werden kann, und b) auch dann erzeugt wird, wenn man den vollstaendigen Bereich des logs (Jahr/Monat/etc) anzeigen will.
Deswegen muss man den Feature ab sofort mit "createGluedFile" aktivieren.
Es bleibt ein Hack, aber per default ist es nun aus.