mehrere Logfiles in einem Plot zusammenfassen

Begonnen von znbrain, 19 November 2013, 14:05:21

Vorheriges Thema - Nächstes Thema

znbrain

Hallo,

ich erzeuge pro Tag ein neues Logfiles von mehreren Temperatursensoren.
./log/TempAll/TempLog-%Y-%m-%d.log OWX_28_03ABEB030000:temperature:.*
In einem aus diesem Log erzeugtem Plot sehe ich aber immer nur den Inhalt eines Logfiles. d.h. zoome ich in die Wochenansicht heraus dann wird mir nur der erste Tag angezeigt, in der Monatsansicht das gleiche.

Wie kann ich die erzeugten Logfiles in einem Plot wieder zusammenfassen?

Nico

Puschel74

Hallo,

hier loggt dir aber nur ein! Sensor in ein Logfile - oder seh ich das falsch?

Wenn du alle Daten aller Sensoren in einem Plot haben willst musst du die Sensoren auch ALLE in EIN Logfile loggen lassen.
Oder auf DBLog umstellen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

znbrain

das sollte auch nur exemplarisch sein.
Es gibt natürlcih für jeden Sensor diese Definition mit entsprechender Sensoradresse.

Das ist ja auch nicht das Problem, die Werte landen ja auch schon richtig im Logfile.
2013-11-19_00:33:23 OWX_28_2301EA030000 temperature: 21.8125
2013-11-19_00:33:23 OWX_28_5936EA030000 temperature: 48.9375
2013-11-19_00:33:23 OWX_28_CEA5EB030000 temperature: 21.3125
2013-11-19_00:33:23 OWX_28_03ABEB030000 temperature: 23.75
2013-11-19_00:33:23 OWX_28_512CF9030000 temperature: 6.125
2013-11-19_00:33:31 OWX_28_7EF9F8030000 temperature: 23.1875
2013-11-19_00:33:31 OWX_28_A103F9030000 temperature: 23.1875


Ich möchte aber die zeitliche aufteilung auf mehrere Logfiles im Plot wieder zusammenfassen.

Nico

Puschel74

Hallo,

Zitatdas sollte auch nur exemplarisch sein.

Dann darfst du dich aber nicht wundern wenn du anstelle von echter Hilfe nur exemplarische Hilfe bekommst.

Wenn du was wissen möchtest oder ein Problem oder eine Frage hast helfen "exemplarische" Angaben nur insofern als das du Nachfragen erzeugst die unnötig wären wenn du von Anfang an schon "richtige" Daten geliefert hättest.

In diesem Fall musst du nur den Plot passend erzeugen das er die Daten aller Sensoren anzeigt.
Hier wären nun wieder - rate mal, richtig - hilfreich mit welcher GPlot-Datei du den Plot erzeugst/erzeugen willst und wie du den Plot (SVG) definiert hast.

Im Anfängerbereich oben angepinnt ist ein Beitrag von Rudi und von mir.
Diese enthalten jeweils wie Fragen richtig zu stellen sind bzw. welche Angaben benötigt werden wenn jemand Hilfe (erwartet) haben möchte.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

znbrain

Also dann noch mal von Anfang an:

Ich habe 2 Temperatursensoren. Die Werte jedes Sensors werden in ein und das gleiche Logfile geschrieben. Für jeden Tag wird eine neue Datei angelegt.
./log/TempAll/TempLog-%Y-%m-%d.log OWX_28_CEA5EB030000:temperature:.*
./log/TempAll/TempLog-%Y-%m-%d.log OWX_28_2301EA030000:temperature:.*

Logdatei:
2013-11-19_11:58:23 OWX_28_2301EA030000 temperature: 31.25
2013-11-19_11:58:23 OWX_28_CEA5EB030000 temperature: 33.6875

Zu dieser Logdatei habe ich über die Weboberfläche per "Create SVG Plot" ein Plot erzeugt und beide Temperaturlinien definiert.
Screenshot habe ich angehangen.
Hier noch das GPlot-File:
# Created by FHEM/98_SVG.pm, 2013-11-18 16:05:32
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Kollektor'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Temperatur"

#FileLog 4:OWX_28_CEA5EB030000.*::
#FileLog 4:OWX_28_2301EA030000.*::

plot "<IN>" using 1:2 axes x1y2 title 'Vorlauf' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Rücklauf' ls l0 lw 1 with lines


Anbei noch ein Screenshot vom Plot für einen Tag -> der ist auch so in Ordnung

Danach Kliche ich auf ZoomOut (Lupe mit Minus)

Und noch ein Screenshot von dem Plot der die ganze Woche zeigt -> hier wird !!!NUR!!! der erste Tag angezeigt
Und genau das ist das Problem was ich lösen möchte ! Hier sollen ALLE Temperaturwerde des Logs angezeigt werden.

Das Problem liegt meines Erachtens in der Konfig des Plots, das dieser nicht nur eine Physische Datei sondern alle zu dem Log gehörenden auswertet.
Nur wie kann man das konfigurieren ?

Nico

Puschel74

Hallo,

na das sind ja ganz andere Angaben.
Damit lässt sich schon was anfangen  ;)

Dann hab ich mal das http://forum.fhem.de/index.php/topic,13136.30.html für dich.

Ich hab allerdings in der Forums-Suche nur ein "Plot aus mehreren LogFiles" eingegeben und den Treffer bekommen.
Hier es geht um Logfiles über Datumsgrenzen hinweg - also bei dir täglich.
Ich hab mir jetzt aber nicht alle Seiten durchgelesen wie du das umgehen kannst.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ChrisD

Hallo,

Du kannst das Problem nur völlig umgehen wenn du DbLog verwendest, mit FileLog wirst du immer einen Abriss bekommen. Im Moment kann FileLog immer nur eine einzige Datei auswerten, deine Konfiguration mit einer Logdatei pro Tag ist leider die ungünstigste. Im von Puschel74 verlinkten Beitrag steht deshalb auch in Antwort 53
ZitatIch empfehle Jahreslogs (nur %Y)

Grüße,

ChrisD

znbrain

Hallo ChrisD,

das ist aber schade. Ich habe pro Tag ein Datenaufkommen von ca. 250 kByte, das wären pro Jahr knapp 95 MB. Ich befürchte das dann die Performance etwas darunter leiden wird. Oder sind die Bedenken unbegründet ?
Mein fhem-Server läuft auf einer Fritzbox. Aus diesem Grund scheidet auch DBLog aus. Meinen Informationen nach sollte das nicht auf einer FritzBox funktionieren. Oder sehe ich das falsch?

Grüße Nico

Puschel74

Hallo,

aus dem Wiki-Artikel zum Charting-Frontend rauskopiert:

ZitatNach derzeitigem Stand ist die Installation inzwischen sogar neben PCs, Synologys und Raspberrys auch auf Fritzboxen möglich. Dazu bitte auch die Anleitung Cpan auf Fritzbox beachten.

Link zum Artikel: http://www.fhemwiki.de/wiki/Neues_Charting_Frontend

Für das Charting-Frontend wird auch entweder mySQL oder DBLog verwendet.
die Anleitung für die sqlite3-Installation im Wikiartikel habe ich aus dem Internet zusammenkopiert und an mir, besser gesagt an meinem RasPi, getestet.
Im zugehörigen Forumsbeitrag hat aber jemand das Frontend wohl auch auf einer 7390 zum laufen gebracht.

Es ist also nicht unmöglich DBLog auf einer FritzBox zu nutzen.

Grüße

P.S.: Aber die 40 Euro für einen RasPi sind auch ein gut angelegtes Geld finde ich  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ChrisD

Hallo,

Zu der Performance auf der FritzBox kann ich nichts sagen. Die Darstellung eines Jahresplots dauert aber schon auf einem Dual-Core PC ein paar Sekunden. Bei Plots über kürzere Zeiträume ändert die Dateigröße wenig an der Performance, da die Suche nach den richtigen Daten über eine binäre Suche relativ schnell ist. Je nachdem wie du die Daten anzeigen willst könnte eine Datei pro Monat eine brauchbare Lösung sein.

DbLog (mit SQLite) ist auf der FritzBox möglich allerdings ist der Installationsaufwand hierbei ziemlich hoch. Bei der Dateigröße wirst du nichts gewinnen, der Hauptvorteil ist dass es keinen Plotabriss mehr gibt.

Eine weitere Möglichkeit wäre den Code in 92_Filelog.pm so anzupassen dass er mit mehreren Dateien klarkommt.

Grüße,

ChrisD



Matthias76

Über die FHEM Weboberfläche konnte ich das folgende nicht direkt eingeben,
so habe ich es im Editor bearbeitet:

SVG_FileLog_CUL_HM_HM_LC_SW1_BA_PCB_1DDC20_1.gplot

...
#FileLog 4:CUL_HM_HM_LC_SW1_BA_PCB_1DDC20.set_on::
#FileLog 4:CUL_HM_HM_LC_SW1_BA_PCB_1DDC20.set_off::
#FileLog 4:CUL_HM_HM_SCI_3_FM_1E4E75_Sw_02.closed::
#FileLog 4:CUL_HM_HM_SCI_3_FM_1E4E75_Sw_02.open::
#FileLog 4:CUL_HM_HM_SCI_3_FM_1E4E75_Sw_01.closed::
#FileLog 4:CUL_HM_HM_SCI_3_FM_1E4E75_Sw_01.open::

plot "<IN>" using 1:2 axes x1y2 title 'An' ls l0 lw 3 with points,\
     "<IN>" using 1:2 axes x1y2 title 'Aus' ls l1 lw 3 with points
plot "<IN>" using 1:2 axes x1y2 title 'TankVoll' ls l3 lw 3 with points,\
     "<IN>" using 1:2 axes x1y2 title 'TankOK' ls l2 lw 3 with points
plot "<IN>" using 1:2 axes x1y2 title 'TeichLeer' ls l4 lw 3 with points,\
     "<IN>" using 1:2 axes x1y2 title 'TeichOK' ls l5 lw 3 with points


Die Sache ist einfach, ich wollte in einen bestehenden Plot mit einer bestehenden Log-Auswertung die Werte anderer Logs hinzufügen.

Mache ich was falsch oder geht das so nicht?
Wenn es so nicht geht, wäre das ein Featurewunsch von mir.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html