Hallo
ich habe mal wieder eine Frage an der ich schon eine ganze Weile knabbere aber nicht zu einem Ergebnis komme:
Ich nutze FileLog für meine Log Ausgaben. Da habe ich einige verschiedene für verschiedene Aufgaben angelegt. Das funktioniert soweit wunderbar, wenn das an irgendwelche Devices und Events hängt. Jetzt möchte ich aber an und ab durch eine selbstgeschriebene Funktion irgendwas loggen und zwar in eine ganz bestimmte Log Datei. Und das bekomme ich nicht hin. Bei allen Möglichkeiten gibt es keine Möglichkeit das Ziel FileLog anzugeben, ausser ich habe was übersehen.
Anhand von dem netten Artikel https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden (https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden) habe ich mal folgendes probiert:
define GlobalLog FileLog ./log/%Y/%m/%d/GLOBAL nothing
attr GlobalLog logtype text
attr GlobalLog room FileLog
Und folgendes als Auslöser:
trigger GlobalLog REREADCFGJOB|$today|$hms
Aber das erscheint nie in dem entsprechenden FileLog.
Kann mir da jemand weiterhelfen?
Viele Grüße - Sigi
Moin Sigi,
gemäß der Doku (https://fhem.de/commandref_DE.html#FileLog)würde Dein FileLog auf das regEx nothing anspringen und diesen Event loggen.
Du bräuchtest also noch ein Gerät mit dem Namen nothing
define nothing dummy
und kannst dann mit trigger nothing Willi
einen Log Eintrag erzeugen.
Ich hoffe Du hast das Beispiel verstanden ;D
Ob das Deine ursprüngliche Aufgabe löst weiß ich nicht. Ich habe mich darauf konzentriert Deinen Lösungsansatz funktional zu machen. 8)
Gruß Otto
Super. Dankeschön Otto. Klappt.
Für diejenigen die das nachbauen möchten, alles im Zusammenhang:
Zuerst die Grundeinheit:
define GlobalLogJob dummy
attr GlobalLogJob room FileLog
define GlobalLog FileLog ./log/%Y/%m/%d/GLOBAL GlobalLogJob
attr GlobalLog logtype text
attr GlobalLog room FileLog
dann der Aufruf bzw. das Loggen:
trigger GlobalLogJob REREADCFGJOB|$today|$hms
oder:
trigger GlobalLogJob das-was-im-log-stehen-soll
Ähm, wenn das jemand direkt so übernimmt: Ich logge in spezielle Log-Verzeichnisse:
/opt/fhem/log/JAHR/MONAT/TAG/DATEINAME
Die Unterverzeichnisse legt FHEM nicht selber an, die muss man mit einem Job um Mitternacht selber anlegen. FHEM merkt auch nicht, dass sich die Verzeichnisse geändert haben, daher muss man alle FileLogs manuell bzw. in dem Mitternacht Job, wie folgt auf den neuesten Stand bringen.
set GlobalLog reopen
FHEM merkt sowas (leider) nur, wenn die Variablen im Dateinamen stehen.