FhemLog Output Format anpassen

Begonnen von fe97_, 25 Januar 2021, 20:50:18

Vorheriges Thema - Nächstes Thema

fe97_

Hallo liebe FHEM Freunde,

derzeit wird des Reading "temperatur" des Devices "Temperatursensor" gelogged.
"./log/temperatursensor-%Y-%m-%d.log Temperatursensor:(temperature).*"

Und zwar standardmäßig in diesem Format 
2021-01-25_18:14:35 Temperatursensor temperature: 0.9

Ich möchte jetzt dass Devicename und Readingname nicht im Eintrag auftauchen, heißt es soll so aussehen:
2021-01-25_18:14:35: 0.9

Ich habe es über das atr Output Format versucht, jedoch wird da beim rausstreichen des $Namesns und $EVENTS kein Wert mehr übermittelt.

Weiß jemand wie ich das lösen kann?

Gruß Thomas



Sany

Moin,
es gibt ja nicht nur Sensoren, die einen Wert liefern und ins log schreiben. Und verschiedene Werte (z.B. temperature, humidity, lux ....) könntest Du ja nicht mehr unterscheiden. Üblicherweise wertet man ein Log ja über einen SVG-Plot aus, da muss wohl die Struktur so sein, wie sie im Moment ist, also ein geloggtes Event wird mit Devicenamen ins Log geschrieben.
Was möchtest Du denn mit der Kurzversion erreichen?
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

betateilchen

Zitat von: Sany am 26 Januar 2021, 10:38:20
es gibt ja nicht nur Sensoren, die einen Wert liefern und ins log schreiben.

In dem genannten Anwendungsfall aber schon. Da bezieht sich die regex nur auf ein einziges reading eines einzelnen devices.

Trotzdem bleibt die Frage nach dem Hintergrund des Wunsches.
Vermutlich läßt sich die eigentliche Aufgabe hinter dem Wunsch auch anders (sinnvoller/standardkonformer) lösen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

fe97_

Hi, ich möchte den durchschnitt in einer Periode berechnen wobei die Periode variabel ist.

Deshalb möchte ich das mein Log auch so aus sieht wie hier: https://forum.fhem.de/index.php?topic=11622.0

Ich weiß ich könnte auch einfach den Readingname "temperature" bei der Berechnung rausnehmen so wie das mit dem Timestamp gemacht wird, jedoch wäre das auf diesem Weg schöner gelöst, da diese Durchschnittsberechnung auch bei anderen Sensoren notwendig sein wird (Windsensor etc.). Auf dem Weg müsste ich nur den Pfad des Logs anpassen und müsste keine Wörter rausnehmen.


Sany

Hallo fe97_

nur ein paar Gedanken zu Deinem Thema, da ich bei mir so etwas nicht umgesetzt habe, aber vielleicht hilft es Dir ja doch:
lass die Logs wie sie sind. Es mag Devices geben, die genau einen Wert loggen, andere loggen aber verschiedenste Werte. Die in Deinem Link gezeigten Beispiele nutzen alle die get-funktion von FileLog. Damit kann man wohl aus einem bestehenden Log Daten extrahieren und in z.B. ein neues Log schreiben. Beim get-Befehl kommt dann eine Regex zum Einsatz, die die gewünschten Werte ausliest. Das Original FileLog bleibt davon unberührt (und sollte es auch, z.B. wg. SVG-Plots).
Die Beiträge stammen hauptsächlich aus 2013! Da könnte sich in der fhem-Entwicklung schon einiges getan haben. Schau Dir mal:
- das attribut "event-aggregator" an, damit lassen sich mean, median und etliches anderes errechnen
- DOIF aggregieren von Werten an, damit sind auch solche Sachen möglich.
- das Modul statistics
vielleicht gabs das damals noch nicht und es wurden die beschriebenen Dinge gemacht, um zum Ziel zu kommen.

Viel Erfolg!
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....