[patch] 92_FileLog.pm Anzeige linesInTheFile in der device overview

Begonnen von betateilchen, 11 Juni 2023, 14:45:55

Vorheriges Thema - Nächstes Thema

betateilchen

Da es aktuell keine Möglichkeit gibt, mittels stateFormat die Anzahl der Zeilen in einem Logfile irgendwie in die Übersicht zu bekommen, habe ich einen Weg gesucht, das trotzdem zu realisieren.

Ergebnis:

Du darfst diesen Dateianhang nicht ansehen.

Hierzu habe ich das Attribut 'logtype' verwendet, das standardmäßig (wenn nicht gesetzt) "text" und als Bezeichnung auch "text" benutzt.
Trägt man jetzt "text:linesInTheFile" als Attributwert ein, werden die Zeilen im jeweiligen Logfile ermittelt und als Ergänzung hinter die Bezeichnung "text" geschrieben.

Index: /opt/fhem/FHEM/92_FileLog.pm
===================================================================
--- /opt/fhem/FHEM/92_FileLog.pm        (revision 27671)
+++ /opt/fhem/FHEM/92_FileLog.pm        (working copy)
@@ -591,6 +591,14 @@
       }
       my ($lt, $name) = split(":", $ln);
       $name = $lt if(!$name);
+      if ($ln eq "text:linesInTheFile") {
+        my $path = qx(dirname $defs{$d}{currentlogfile});
+        chomp $path;
+        my $filename = "$path/$f";
+        my($err,@content) = FileRead( {(FileName => $filename, ForceType => "FILE" )} );
+        $name = "$lt (".scalar(@content).")";
+        @content = ();
+      }
       $ret .= FW_pH("$FW_ME/FileLog_logWrapper&dev=$d&type=$lt&file=$f",
                     "<div class=\"dval\">$name</div>", 1, "dval", 1);
     }

Sollte die Idee auf Wohlgefallen stoßen, würde ich noch die Ergänzung der commandref nachliefern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

"gar keine Reaktion" ist so ziemlich das am wenigsten erwartete Ergebnis, mit dem ich gerechnet habe  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Roger

Ich habe mit "gefällt mir" reagiert (wie weitere zwei) - wünsche mir also eine Umsetzung.
//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

betateilchen

Zitat von: Roger am 23 Juni 2023, 19:26:48wünsche mir also eine Umsetzung.

Das wünsche ich mir auch. Warten wir mal ab, wann Rudi wieder in diesen Forumbereich schaut.
Zuerst dachte ich, er sei vielleicht in Urlaub, aber da er zwischenzeitlich in anderen Bereichen aktiv war und Änderungsvorschläge verarbeitet hat, bin ich um so mehr verwundert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Hab den Patch uebernommen.

Ich hatte (warum auch immer) diesen Forumsbereicht nicht mehr auf der Benachrichtungsliste, das habe ich jetzt geaendert.

betateilchen

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

Maista

Zitat von: rudolfkoenig am 10 Juli 2023, 11:45:41Hab den Patch uebernommen.

Ich hatte (warum auch immer) diesen Forumsbereicht nicht mehr auf der Benachrichtungsliste, das habe ich jetzt geaendert.
Hallo Rudi,

Spendierst du zu dieser Funktion bei Gelegenheit noch eine Beschreibung  :) ?

Danke und Gruß
Gerd

rudolfkoenig

ZitatSpendierst du zu dieser Funktion bei Gelegenheit noch eine Beschreibung  :) ?

Zitat betateilchen:
ZitatSollte die Idee auf Wohlgefallen stoßen, würde ich noch die Ergänzung der commandref nachliefern.
:)

betateilchen

#8
Index: 92_FileLog.pm
===================================================================
--- 92_FileLog.pm       (revision 27748)
+++ 92_FileLog.pm       (working copy)
@@ -1596,7 +1596,9 @@
         the part after is the string displayed in the web frontend.<br>
         Example:<br>
            attr ks300log1 logtype
-                temp4rain10:Temp/Rain,hum6wind8:Hum/Wind,text:Raw-data
+                temp4rain10:Temp/Rain,hum6wind8:Hum/Wind,text:Raw-data<br/>
+        If the special value "text:linesInTheFile" is used, you will see
+        the number of lines in each Logfile in the corrsponding device overview.<br/>
     </li><br>
 
     <li><a href="#mseclog">mseclog</a></li><br>
@@ -1954,7 +1956,9 @@
           </li>
            <li>text<br>
                Zeigt das LogFile in seiner urspr&uuml;nglichen Form (Nur
-               Text).Eine gnuplot-Definition ist nicht notwendig.
+               Text).Eine gnuplot-Definition ist nicht notwendig.<br/>
+               Wird der Attributwert text:linesInTheFile verwendet,
+               werden in der Ger&auml;te&uuml;bersicht die Anzahl der enthaltenen Zeilen pro Logdatei angezeigt.
                </li>
         </ul>
         Beispiel:<br> attr ks300log1 logtype

@Rudi:
hast Du Dir mal die existierende englische Beschreibung des Attributes angeschaut? Da steht so gut wie nichts zu dem Attribut, verglichen mit der deutschen Beschreibung. Vielleicht kannst Du das bei der Gelegenheit mit geradeziehen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Eingecheckt.

Die deutsche Version beschreibt 5 .gplot Dateien, wir haben z.Zt. 130+.
Ich hatte bisher Bauchschmerzen diese 5 schoenen Texte zu loeschen, und ich werde sicher nicht anfangen, alle zu dokumentieren.

betateilchen

#10
Zitat von: rudolfkoenig am 11 Juli 2023, 20:45:37und ich werde sicher nicht anfangen, alle zu dokumentieren.

Das war nicht meine Erwartung, aber zumindest die grundsätzliche Beschreibung von "text" hätte ich dort schon vermutet und war sehr überrascht, dass man diesen "Standardwert" dort nicht findet.

Mir war zumindest bis neulich, als ich mich auf die Suche nach einer Lösung für die Zeilenzahl gemacht habe, nicht klar, dass die Darstellung "text" im Frontend aus dem Standardwert eines Attributes stammt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!