gelöst: Filelog SVG für Werte mit Einheit

Begonnen von abc2006, 27 November 2017, 22:54:51

Vorheriges Thema - Nächstes Thema

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

ZitatLeider erkennt Filelog nur Werte, wenn die Zeilen so aussehen:
Das verstehe ich nicht (bzw. kann nur sagen: stimmt nicht), bitte anders formulieren.

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

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.

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

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.

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rudolfkoenig

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.

abc2006

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

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX