Widget für FileLog.

Begonnen von dh9ts, 31 Dezember 2016, 10:58:30

Vorheriges Thema - Nächstes Thema

dh9ts

Hallo zusammen,

ich habe ein Widget für das FileLog erstellt. Hauptgrund war, dass ich mir nach einen Update, angestoßen über einen Tablet UI Button, das Ergebnis
anzeigen lassen wollte.

Das Widget hört auf das Event "linesInTheFile" welches dort aktiviert werden muss.

Allerdings scheint dies nur bei normalen FileLogs und nicht beim "FakeLog" von FHEM zu funktionieren. Dies ist mir leider erst zum Schluss aufgefallen,
daher gibt es noch einen manuellen Refresh-Button ;-)

Hier die Optionen:

data-device:
  The name of the logfile device.
  The Event "linesInTheFile" is used to trigger an update. This has to be set manually in the FileLog.

data-ago:
   If set the the widget will load older entries. Default is 0.
   Time is given in Minutes.

max-items:
  If set, the display of old messages is limited to this number.
  Default is -1 (No maximum).

height:
  Height of the widget.

width:
  Width of the widget.

refresh-btn:
  Default=0. When activated (=1) there will be a refresh button displayed.

disable-update-event:
  Default=0. When activated (=1) updates will be deactivated, even when the log emits 'linesInTheFile' events.


Falls jemand eine Idee hat, wie auch das automatische Update beim FHEM log funktionieren könnte, wäre ich dafür dankbar.
Da es mein erstes TabletUI Widget ist, auch über Hinweise, falls ich etwas falsch benutzt habe.


Viele Grüße
Thorsten

sinus61

Gute Idee, damit könnte ich einfacher die letzten Einträge meines Alarmmelder Logs anzeigen, jetzt nutze ich dafür das CustomReadings Modul und fülle ein Label Widget.

Im Prinzip funktioniert es auch, es aktualisiert sich aber nicht bei einem neuen Eintrag obwohl es das Reading linesInTheFile gibt. Der Button wird auch nicht angezeigtwenn ich die Option setze.

Nützlich wäre dann auch noch sowas wie data-substitution beim Label Widget wo man per regex die Anzeige etwas anpassen kann.

sinus61

Ok, hab jetzt eventOnThreshold auf 1 gesetzt, dann funktioniert die Aktualisierung.ein Button wird aber trotzdem nicht angezeigt, ist aber auch nicht nötig.

StephanFHEM

Hallo,

ich bin irgendwie zu blöd und bekomme mein FileLog im TabletUI nicht angezeigt. Folgenden Code hab ich benutzt.
Die Datei heißt und liegt dort: ./log/AutoKorrektur-2017.log

<li data-row="3" data-col="7" data-sizex="5" data-sizey="4" style="overflow-y: auto;">
<header>Auto-Log</header>
<div data-type="FileLog" data-device="FileLog_AutoKorrektur" data-ago="7200" height="240px" width="350px"></div>
</li>


wo ist mein Fehler?

sinus61

Das sollte klein geschrieben werden

data-type="filelog"

Clyde

<div data-type="fileLog" data-device="FileLog_Talk"></div>

Danke für das Widget, sowas habe ich schon länger gesucht.
Habe es gerade versucht anzuwenden. Bekomme aber folgenden Fehler angezeigt.
2x Cubietruck, CUL868, HM-USB-CFG2
FS20, FHT, KS300, HM, MAX, Tradfri

n4rrOx

@setstate

Aufnahme in's offizielle Update?

StephanFHEM

Danke Sinus, das war es! Läuft jetzt:-) ich wäre auch für eine Aufnahme ins offizielle Update.
Kann man mit dem log-Befehl eigentlich nur in die FHEM.log schreiben oder auch in jedes beliebige andere FileLog?
Würde gerne je nach DoIF durchlauf eine selbst geschriebene Ausgabe auf dem Tablet haben. zB: "10.02. 16:31 Uhr - Automatische Aufladung gestartet"

sinus61

Zitat von: Clyde am 21 Februar 2017, 11:33:53
Habe es gerade versucht anzuwenden. Bekomme aber folgenden Fehler angezeigt.

<div data-type="filelog" data-device="FileLog_Talk"></div>

Wie schon darüber geschrieben, alle Buchstaben klein bei data-type

sinus61

Zitat von: StephanFHEM am 21 Februar 2017, 15:28:59
Würde gerne je nach DoIF durchlauf eine selbst geschriebene Ausgabe auf dem Tablet haben. zB: "10.02. 16:31 Uhr - Automatische Aufladung gestartet"

Ich habe bei mir für sowas ähnliches einen dummy definiert. Da schreiben die Notifys meiner Bewegungsmelder immer einen Text rein und auf dem dummy liegt dann ein Logfile. Und in Ftui hab ich dann ein Label mit der letzten Meldung und wenn man drauf klickt werden über dieses Widget in einem Popup die letzten 10 Einträge angezeigt.

StephanFHEM

Das heißt, dass du einfach einen Text in den state oder ein UserReading schreibst und das per Event in nem FileLog logst. Und schon hast du den Text als LogFile...schlau! Um diese Ecke habe ich noch gar nicht gedacht. Bin immer wieder begeistert was alles geht mit Bastelei

StephanFHEM

hab es jetzt so umgesetzt und klappt prima. Danke für das Widget und den Gedankenanstoß!

sinus61

Leider läuft das Widget bei mir nicht mehr, gibt einen CSRF error. Nur deswegen will ich das jetzt aber auch nicht in Fhem abschalten.

sinus61


cmd: cmd.join(' '),
fwcsrf: ftui.config.csrf,
XHR: "1"


Ok, die Zeile "fwcsrf: ftui.config.csrf," muss da oben mit ins Widget rein, dann geht es wieder.

@setstate: kannst du das mal übernehmen, damit es auch mit den Updates richtig ankommt?

sinus61

Im Anhang mal eine Version in der csrf berücksichtigt wird und die außerdem data-substitution kann. Ich wollte bei mir gerne den Device-Namen ausfiltern.

data-substitution="s/Dummyname//g"