Wie fhem-hm-knecht hier https://forum.fhem.de/index.php/topic,20280.1620.html (https://forum.fhem.de/index.php/topic,20280.1620.html) empfohlen hat
mache ich hier mal einen eigenen Beitrag zum Thema Visualisierung von LogDaten auf.
Ursprungsthema waren Probleme beim Visualisieren von Logdaten zum Pumpenstatus aus einer DbLog-Datei. Um den Status ,,on" oder ,,off" darstellen zu können, ist im Ploteditor eine Funktion (function) einzufügen. Dies Feld erscheint nicht, wenn ich als Quelle eine DbLog-Datei habe, erst wenn ich die Daten in einem FileLog logge, steht mir ,function' zur Verfügung.
Leider tauchen dabei neue Probleme auf, da Werte gelogged werden, die mir nicht plausibel erscheinen.
Unter ,Show preprocessed input' erhalte ich
#4:Gasheizung.HK1-Zirkulationspumpe\x3a::$val=($val=~'on'?20:0)
#4:Gasheizung.HK1-Zirkulationspumpe\x3a::$val=($val=~'on'?20:0)
#4:Gasheizung.HK1-Vorlauftemperatur\x3a::
#4:Gasheizung.HK2-Vorlauftemperatur\x3a::
#4:Gasheizung.HK1-Zirkulationspumpe\x3a::$val=($val=~'on'?20:0)
Dort taucht das Feld ,\x3a' auf, mit dem ich nichts anfangen kann und der folglich auch im Plot nicht dargestellt wird.
Weiß jemand, woher dieses Feld kommt?
Bei der Feldauswahl zur Erstellung des Plots erscheint diese 'Endung' nicht!
Die DEF der GasheizungsLOG lautet
GasheizungsLog Gasheizung:HK1-Zirkulationspumpe|Gasheizung:HK2-Zirkulationspumpe|Gasheizung:HK1-Vorlauftemperatur|Gasheizung:HK2-Vorlauftemperatur|KG_Funkschalter_ZirkuPumpe:state
"\x3a" ist kein feld sondern ein zeichencode zum "maskieren" für einen "doppelpunkt", da dort kein "normaler ":" erlaubt ist.
Bleibt dann die Frage, warum keine Werte im Plot erscheinen!
Sobald ich die Vorlauftemperaturen aus meiner alten DbLog ziehe, erscheinen diese! - nur nicht die Pumpenstatus aus der FileLog!
Die Logdaten sehen jetzt wie in der Anlage zu sehen ist aus.
Nachtrag: Nun sehe ich gerade, dass in der globalen Log-Datei von FHEM folgende Fehlermeldung einläuft:
2020.10.16 13:27:20.721 1: PERL WARNING: Use of uninitialized value $val in pattern match (m//) at (eval 22889) line 1, <GEN28731> line 447.
2020.10.16 13:27:20.721 3: eval: $val=($val=~'on'?15:0)
Erkenntnis: Diese Funktion für ein Logfile wird so nicht akzeptiert. Hier ist mit 'fld' zu arbeiten!
Die Funktion
$fld[2]=($fld[2]=~'on'?20:0)
bringt's aber auch nicht zum Vorschein - jetzt brauche ich Hilfe aus der Runde!
Welche Bedeutung hat die Ziffer im Ploteditor vor dem Device? Welche ist dort auszuwählen?
Welche Bedeutung hat die Ziffer in der o.g. Funktion in der eckigen Klammer (z.B. [2])? Ist das das Feld, im Logfile, was interpretiert werden soll?
Schau doch mal in https://wiki.fhem.de/wiki/SVG.
Da sind zwar keine hartvercodeten Varianten zu finden, sondern da werden die Daten mit plotreplace reingespielt, aber man kann die Unterschiede zwischen der FileLog-Variante und der mit DBLog m.E. ganz gut erkennen.
Hallo, Dank eures 'hartnäckigen Schweigens' ;) habe ich mich selbst durch die diversen Quellen gewühlt, was ja grundsätzlich auch richtig ist.
Leider bin ich nicht viel schlauer geworden, meinen Plot allerdings doch zum Erfolg geführt.
Nicht schlauer? Ein Teil meiner Fragen bleiben nicht beantwortet:
- Meine Frage: Welche Bedeutung hat die Ziffer im Ploteditor vor dem Device? Welche ist dort auszuwählen? Ich habe die '4' gewählt und damit hat es geklappt aber ich weiß nicht warum
- Meine Frage: Welche Bedeutung hat die Ziffer in der Funktion zur Interpretation von 'on/off' in einen Wert in der eckigen Klammer (z.B. [2])? Ist das das Feld, im Logfile, was interpretiert werden soll? Bleibt mir die Vermutung, dass das so ist, da die Daten am Ende zum Vorschein kamen.
Dann ein wenig an den Skalen gedreht und beschriftet und schon war der Plot fertig. Vielleicht hilft es ja jemandem weiter, der dann nicht so lange zum Suchen verdonnert ist - aber es war draußen ja eh zu kalt ;D
Ich hatte irgendwo gelesen, dass dies die Spalte im Logfile ist, die den Wert enthält. Das Logfile ist durch Leerzeichen getrennt. Also einfach zählen.
Danke!