Hauptmenü

Fragen zu FileLog

Begonnen von Superposchi, 11 August 2024, 19:10:58

Vorheriges Thema - Nächstes Thema

Superposchi

Hallo zusammen.

Ich möchte für meine Tankstellen-Devices jeweils ein FileLog erstellen um die Preishistorie abzubilden.

Damit die Logs nicht zu riesig werden, würde ich die Daten aber maximal für 1 Monat besser 1 Woche aufbewahren.

Das macht man ja üblicherweise mit Wildcards und dem Attribut nrarchive. Allerdings habe ich dann immer zu beginn des neuen Logs keine Historie mehr.

Gibt es eine Möglichkeit Loggiles zu erstellen die sich überschneiden oder wo die Datenzeilen für eine bestimmte Zeit in das neue Logfile übernommen werden?

Also z. B. Logbeginn Montag 0 Uhr für 1 Woche. Bei Dateierstellung wird die vergangene Woche an den Anfang des neuen Logs kopiert.

betateilchen

Falsches Unterforum für Fragen zu FileLog.


Aber das, was Du da vorhast, ist doch völlig unnötig?
Solange die Daten noch vorhanden sind (egal, ob im aktuellen Logfile oder in dem der vergangenen Woche) kann und wird ein SVG device auf die Daten zugreifen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Sorry, hatte auf die Schnelle kein Unterforum gefunden.

Mir geht es nicht um die Darstellung als svg in Fhem, sondern um die Darstellung in FTUI3 als Chart.
Dort kann ich ja nur ein Logfile angeben.

Wenn ich mit den Wildcards z. B. jede Woche ein neues Filelog erstellen lasse, sind die Daten in diesem doch die Daten erst ab dem Erstelldatum enthalten, die vorhergehenden bleiben ja in dem alten Filelog (Datei). Ich will aber abbilden wie der Spritpreis gestern oder vor 3 Tagen war. Diese Daten stehen wie gesagt in dem vorangehenden Logfile drin, dass je nach Einstellung gelöscht oder archiviert wird. Auf das alte Logfile kann das Chart meineswissens auch nicht zugreifen, da es einen anderen Dateinamen hat.

Dürfte in einem svg in Fhema aber auch nicht anders sein, da wird ja auch der Dateiname des Filelogs angegeben.

Gisbert

Hallo Superposchi,

ich hab monatliche Filelog-Dateien und frage insgesamt 7 Tankstellen auf meinen regelmäßigen Fahrstrecken ab, alles in einem HTTPMOD-Device.

Da ich nachts zuhause bin, frage ich in der Zeit nicht ab. Desweiteren setze ich das Anfrageintervall von 10 Minuten auf 20 Minuten hoch, wenn ich tagsüber zuhause bin (mein Auto ist dann auch zuhause).

Die monatliche Datenmenge ist noch überschaubar, jedenfalls hab ich deutlich größere log-Dateien:
ls -la /opt/fhem/log/Premiumdiesel-2024-0*
-rw-r--r-- 1 fhem dialout 1080559 Jun 30 23:41 /opt/fhem/log/Premiumdiesel-2024-06.log
-rw-r--r-- 1 fhem dialout 1163479 Jul 31 23:41 /opt/fhem/log/Premiumdiesel-2024-07.log
-rw-r--r-- 1 fhem dialout  378083 Aug 12 07:47 /opt/fhem/log/Premiumdiesel-2024-08.log

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Superposchi

@Gisbert
Das ändert aber nichts an dem Problem, außer das es von wöchentlich auf monatlich verschoben wird.

In dem Moment wo die neue Datei begonnen wird gibt es für die vergangene Woche keine Daten.

betateilchen

Zitat von: Superposchi am 11 August 2024, 22:49:18Sorry, hatte auf die Schnelle kein Unterforum gefunden.

einfach "help filelog" in die FHEM Befehlszeile eingeben, und schon wird Dir das richtige Unterforum mit angezeigt.

Zitat von: Superposchi am 11 August 2024, 22:49:18Dürfte in einem svg in Fhema aber auch nicht anders sein, da wird ja auch der Dateiname des Filelogs angegeben.

Falsch. In einem SVG device wird der Name des FileLog-devices angegeben, nicht der Dateiename. Und genau das ist der Knackpunkt.

FileLog kennt übrigens das Attribut "createGluedFile", das zumindest in SVG dafür sorgt, dass ggf. auch Daten aus vorherigen Dateien gelesen werden, wenn der angefragte Zeitraum außerhalb der aktuellen Datei liegt.

createGluedFile
If set (to 1), and the SVG-Plot requests a time-range wich is stored in multiple files, a temporary file with the content of all files will be created, in order to satisfy the request.

Ob dieser Mechanismus auch in Deinem FTUI Chart wirkt, kann ich Dir nicht sagen.

Aber grundsätzlich verstehe ich Dein Vorgehen immer noch nicht - ob Du nun 5 Dateien mit je 1000 Zeilen hast oder 1 Datei mit 5000 Zeilen, ändert weder etwas am Speicherplatzbedarf Deines Datenträgers noch an der Verarbeitungsgeschwindigkeit. Im Gegenteil: wenn mehrere Dateien verarbeitet werden müssen, ist das intern um einiges aufwändiger.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

@betateilchen

Zitateinfach "help filelog" in die FHEM Befehlszeile eingeben, und schon wird Dir das richtige Unterforum mit angezeigt.
Danke, das war mir bisher nicht bekannt.

Grundsätzlich: das Thema Filelog, SVG und Charts ist für mich neu. Fange gerade erst an mich damit zu beschäftigen. Und bis auf das was ich im CommandRef gelesen habe bisher ein rotes Tuch.

Was das Problem angeht begreifst du offenbar nicht worauf ich hinaus will.
Vorausgesetzt das was du oben beschrieben hast funktioniert so beim Chart nicht, ist das Problem folgendes:
Am Mo. 12.8. wird eine neue Datei angefangen weil jede Woche eine neue geschrieben wird (beispielhaft), dann will ich trotzdem sehen können wie der Spritpreis am Sa. den 10.8 war. Es geht ja darum zu sehen an welchen Zeiten der Sprit in der Vergangenheit günstig und wann teuer war.

Die neue Datei fängt ja erst mit den aktuellen Daten vom 12.8 an, also kann das Chart keine Daten vom 10.8 liefern/anzeigen. Das wäre so egal ob ich wöchentlich oder monatlich nutze. Bei monatlich träte halt nur das Phänomen seltener auf aber wäre dennoch nicht weg. Immer vorausgesetzt, dein Einwand von oben funktioniert nicht. Ansonsten ist das geschriebene natürlich hinfällig.
Alles in eine einzelne Datei schreiben ist unpraktisch denn bei 10 Tankstellen mit 4 Spritsorten und 4 Durchschnitten, käme alleine pro Tag schnell mal 120 Zeilen daher - wenn man die Nacht ausklammert.

Sollte es beim Chart so sein wie du oben schreibst wäre es sicherlich kein Problem, doch frage ich mich wie das funktionieren soll wenn die Dateien unterschiedlich heißen. Aber ich werde es mal ausprobieren. Ist halt nur nicht so einfach von heute auf Morgen abzubilden, also wird es etwas dauern.

Am effektivsten wäre es natürlich mit einer einzelnen Datei zu arbeiten in der alte Datenzeilen ab einem gewissen Zeitpunkt wieder gelöscht werden. Aber das geht wohl nicht soweit ich es gesehen habe.

betateilchen

Zitat von: Superposchi am 12 August 2024, 22:12:34
Zitateinfach "help filelog" in die FHEM Befehlszeile eingeben, und schon wird Dir das richtige Unterforum mit angezeigt.

Danke, das war mir bisher nicht bekannt.

Es gibt hier in den Anfängerfragen einen extra deshalb angepinnten Thread, in dem das beschrieben steht...

Den Button zum Verschieben des Threads in den richtigen Bereich findest Du unten links auf der Seite.



Grundsätzlich begreife ich schon, was Du als Problem ansiehst.

Aber Du begreifst offenbar die Antworten nicht, die ich hier schon geschrieben habe. Wahrscheinlich denkst Du einfach zu kompliziert.

Du gehst immer noch von einem Zugriff auf einzelne DATEIEN aus, aber zumindest bei SVG ist das gar nicht so. SVG liest die Daten aus dem FileLog-DEVICE und FileLog weiß, aus welchen Dateien es die Daten holt. Und FileLog ist sehr wohl in der Lage, Daten auch aus zwei (oder mehr) eigenen Dateien zu holen, wenn der angefragte Zeitraum dies erfordert.

Und ganz ehrlich: sich Gedanken über die Größe einer Textdatei zu machen, in der am Tag vielleicht 120 - oder auch 500 - Zeilen entstehen, ist für mich einfach völlig absurd, da belanglos.

Zitat von: Superposchi am 12 August 2024, 22:12:34Am effektivsten wäre es natürlich mit einer einzelnen Datei zu arbeiten in der alte Datenzeilen ab einem gewissen Zeitpunkt wieder gelöscht werden. Aber das geht wohl nicht soweit ich es gesehen habe.

Doch das geht, nimm halt DbLog anstatt FileLog.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tobi01001

Zitat von: Superposchi am 11 August 2024, 22:49:18Mir geht es nicht um die Darstellung als svg in Fhem, sondern um die Darstellung in FTUI3 als Chart.
Dort kann ich ja nur ein Logfile angeben.
Zitat von: betateilchen am 13 August 2024, 09:59:10Du gehst immer noch von einem Zugriff auf einzelne DATEIEN aus, aber zumindest bei SVG ist das gar nicht so. SVG liest die Daten aus dem FileLog-DEVICE und FileLog weiß, aus welchen Dateien es die Daten holt. Und FileLog ist sehr wohl in der Lage, Daten auch aus zwei (oder mehr) eigenen Dateien zu holen, wenn der angefragte Zeitraum dies erfordert.

Ich benutze zwar kein FileLog aber auch in FTUI3 gibt man lediglich das FileLog-Device an.
Siehe z.B. chart Example
<ftui-chart-data type="bar" y-axis-id="y1"
                        log="FileLog_PVConverter"
                        spec="4:PVConverter.Eac_tota::delta-h"
                        label="Gain (max: $max KWh)"></ftui-chart-data>
Der get-Befehl zum Holen der Daten aus dem FileLog ist bei SVG und FTUI3 chart soweit ich das sehe auch identisch.

Kurzum:
Bei der FTUI3-chart Komponente lediglich das FileLogDevice unter log= angeben, nicht aber file= und es sollte funktionieren. Mit einem attr myFileLogDevice verbose 4 solltest du im fhem Log die entsprechenden Abfragen sehen können.

FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

Superposchi

@betateilchen
Ist mir schon klar, ich kann es nur auf die Schnelle nicht testen, da ja erst einmal eine Woche rumsein muss ehe ich etwas dazu sagen kann.
Also habe ich es erst einmal so geschrieben als wenn es nicht so wäre um das Problem besser darzustellen.
Wenn dem nicht so ist, um so besser, dann ist es ja gelöst. Es ist für mich halt schwer vorstellbar, da es allen meinen Erfahrungen mit OperatingSystemen, FileSystemen oder anderen Verwaltungstools wiederspricht.
Aber das ist bei Fhem ja schon öfters der Fall gewesen.

@tobi01001
Wie gesagt, bin dabei es zu testen.

Prof. Dr. Peter Henning

Tipp an den TE: Endlich mal lernen, präzise zu fragen. Konkreter Anlass: Ein Devicename ist kein Filename.

Die Ausrede, dass man das alles nicht verstehe, ist nicht valide. Wir haben alle von Null aus begonnen und sind nicht mit einer FHEM-Installation im Kopf geboren worden.

LG

pah

Superposchi

Tip an den 'Professor':
Beziehen sie sich auf die Frage statt andere zu erziehen.
Denn wenn Sie nicht mit einer fertigen Installation geboren wurden, frage ich mich wer Ihnen beim erlernen geholfen hat.

Dahe Beitrag gemeldet.

Prof. Dr. Peter Henning

Zitat von: Superposchi am 14 August 2024, 15:31:10wer Ihnen beim erlernen geholfen hat
;D Nun, lieber "Super"poschi, die Frage beantworte ich gerne:

Ich habe Dokumentationen gelesen.

LG

pah

betateilchen

Zitat von: Prof. Dr. Peter Henning am 14 August 2024, 15:24:27Tipp an den TE: Endlich mal lernen, präzise zu fragen.

*unterschreib*
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Dann sagt mal was an der Fragestellung ungenau ist, statt blind irgendwelche Anschuldigungen oder Belehrungen rauszuhauen.

Im Gegensatz zu einem völlig sinnfreien Belehrungspost des Herrn Orofessors waren alle mir kenntlichen Informationen in der Frage enthalten. Wenn etwas gefehlt hat, dann weil es mir nicht bekannt war.

Darüber hinaus wage ich zu bezweifeln, das eure Anfänge anders ausgesehen haben. Abgesehen davon, dass sich eure Helfer damals nicht als Besserwisser aufgespielt haben.

Das mit den mehreren Dateien muss ich testen, doch das dauert eben. Ich habe nur versucht zu erklären wo meine Probleme sind und warum. Das jeder mal anfängt und dabei zu 99% Hilfe von Anderen bekommen hat haben hier nur einige Personen - besonders höherer Bildung - vergessen.

Damit ist das Thema erledigt, Wie oben gelesen werde ich ab sofort jeden Post melden der keinen Bezug zur Fragestellung hat. Also entweder zurück zur Frage oder ...