Hi,
mein Filelog sieht so aus:
2017-11-18_04:27:04 VMT_Heizkreis power: 8057 W
Leider erkennt Filelog nur Werte, wenn die Zeilen so aussehen:
2017-11-18_04:27:04 VMT_Heizkreis power: 8057
Die Einheit scheint zu stören, den Wert zu erkennen, obwohl dieser ja getrennt durch Leerzeichen in einer eigenen Spalte steht (ist zumindest meine Meinung).
Kann mir jemand sagen, ob das so gewollt ist, und wenn ja, ob und wie ich das um/übergehen kann?
sehe mich schon die Man-Page für sed wälzen und die userReadings verdoppeln/umbauen...
Danke schonmal an die Helfer und viele Grüße,
Stephan
ZitatLeider erkennt Filelog nur Werte, wenn die Zeilen so aussehen:
Das verstehe ich nicht (bzw. kann nur sagen: stimmt nicht), bitte anders formulieren.
Hi,
Vorab erstmal: nachdem ich die Darstellung über LogProxy erreich habe, gehts auch ohne.
Ich hatte gestern abend versucht, mein SVG um einen Wert "Heizleistung" zu erweitern.
Dieser ist ein Reading von VMT_Heizkreis und legt die o.a. Zeilen im FileLog_all ab.
Dazu hatte ich eine SVG-Zeile wie folgt ausgefüllt:
Label: Heizleistung
Source: FileLog_all
Column: 4
-> Write .gplot file
Danach kann man im DropDown "Regexp" auswählen, welches Gerät man loggen möchte:
DS18B20:temperature.* zum Beispiel. Leider wurde das Gerät VMT_Heizkreis NICHT aufgeführt.
Daraufhin schaute ich in die Log-Datei und stellte fest, dass die entsprechenden Einträge bereits seit mehreren Stunden in der Datei drin sind (ich hatte das userReading vormittags erstellt)
Da ich auch mit mehreren FHEM-Restarts, Write gplot, copyGplotFile usw. nicht weiterkam (das Dropdown -Menü blieb so wie es war), hatte ich diesen Thread gestartet.
Heute morgen war ich gerade dabei, das Problem über Logproxy zu lösen (zu versuchen), als du geantwortet hast. Beim Verfassen meiner Antwort fiel mir auf, dass es jetzt geht.
Ich verstehe nur nicht, warum es gestern abend nicht ging und jetzt auf einmal doch.
Grüße,
Stephan
Der PlotEditor sucht die letzten 64kByte jeder Logdatei durch, um verschiedene "Muster" zu erkennen, die im "Example Lines for input" bereitgestellt werden. Aus diesen Daten werden die Spalten-Auswahlfelder generiert.
D.h. man kann mit dem PlotEditor kein Plot "fuer die Zukunft" bauen.
Hi,
okay, dann ist mir jetzt der Grund dafür klar: die Pumpe war ab nachmittag aus, dadurch war die Leistung 0, und es wurden keine Events generiert. Somit könnte es durchaus im Bereich des möglichen liegen, dass in den letzten 64 kByte der Logdatei keine VMT_Heizkreis-Einträge vorhanden waren.
Dass man keinen "Plot für die Zukunft bauen" kann, war mir hingegen bereits klar.
Danke,
Stephan
Hi,
anscheinend ist da trotzdem noch ein problem:
nachdem ich heute mittag ja erfolg hatte, wird jetzt wieder nichts mehr dargestellt.
die letzte VMT-Zeile, die ich im Log gefunden habe, lautet
2017-11-28_18:38:54 VMT_Heizkreis power: 0 W, Zeile 140279
aktuell letzte Zeile ist 147526
danach kamen von VMT_Heizkreis keine Einträge mehr.
Wenn ich dich richtig verstanden habe, beziehen sich die 64kByte aber nur auf das Dropdown, und nicht auf die tatsächlich zu plottenden Zeiträume?
Im Zweifel muss ich halt bei logProxy bleiben oder regelmäßig einen Eintrag forcieren..
Hab mal ein Foto angehängt, beim Screenshot fehlt immer das Menü..
Grüße,
Stephan
ZitatIm Zweifel muss ich halt bei logProxy bleiben oder regelmäßig einen Eintrag forcieren..
Ich verstehe das Problem vtml. nicht. Wenn man einmal eine Definition gebaut und gespeichert hat, dann bleibt das so, und ist egal, was die letzten 64k enthalten. Wenn im darzustellenden Zeitraum kein einziger Wert mit dem Filter liegt, wird halt nichts gemalt, aber die in der .gplot Datei gespeicherten Filter bleiben erhalten.
Und wenn man die Definition wieder editiert: Der Dropdown enthaelt zusaetzlich zu den Werten aus der letzten 64k den gespeicherten Wert.
Hi,
sorry dass meine Antwort länger gedauert hat, aber ich musste erst ein paar Daten sammeln.
Anbei:
ein SVG, welches zeigt, dass *power* nur bis ca 10:27 dargestellt wird.
ein komplettes Logfile von gestern, mit *allem* ( und *power-Events bis 22 Uhr+)
ein verkleinertes Logfile, in dem ich nur die *power-Meldungen gegrept habe
das .gplot-File von dem SVG
und ein List von dem SVG.
Erklärt das mein Problem?
Grüße,
Stephan
Internals:
DEF FileLog_HZG_TEMP:SVG_Heizkreis:CURRENT
GPLOTFILE SVG_Heizkreis
LOGDEVICE FileLog_HZG_TEMP
LOGFILE CURRENT
NAME SVG_Heizkreis
NOTIFYDEV global
NR 37
STATE initialized
TYPE SVG
Attributes:
endPlotNow 0
plotsize 1200,600
room SVG
sortby 2
In deinem Log sehe ich:
Zitat2017-11-29_12:07:46 global ATTR DF_calcWPwork userReadings a differential {ReadingsVal($name,"Counter",0)*60},
b {ReadingsVal($name,"a",0)},
literpromin {sprintf("%.2f l/min",int(100*ReadingsVal($name,"b",0))/100)},
...
Das vom SVG verwendete FileLog get verlaesst sich darauf, dass alle Zeilen mit einem Zeitstempel anfangen, um eine effiziente Suche nach dem geforderten Zeitbereich durchfuehren zu koennen. Dein Log ist leider nicht SVG-Kompatibel, dafuer duerfen nur Daten ohne Newline im Log landen.
Zitat von: rudolfkoenig am 30 November 2017, 09:54:38
nur Daten ohne Newline im Log
Hi,
alles klar, dann ist das wohl die Erklärung. Danke dafür, hätte ich nicht vermutet.
Wärst du so nett, dir im Zusammenhang damit noch folgenden Thread anzusehen?
https://forum.fhem.de/index.php/topic,79684.msg717018.html#msg717018 (https://forum.fhem.de/index.php/topic,79684.msg717018.html#msg717018)
Da geht es darum, dass ich bestimmte Geräte ausschließen will, aber der Regexp nicht funktioniert...
Kann ich auch irgendwie diese Newlines ausschließen? Wenn ich ein größeres Attribut setze, kann das ja immer mal vorkommen...
Danke,
Stephan