FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ave09 am 02 September 2021, 22:16:29

Titel: [Gelöst] Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: Ave09 am 02 September 2021, 22:16:29
Hi,
ich habe mir ein FileLog für mein ,structure-Device' angelegt, dass eigentlich die Readings von LastDevice und LastDevice_Abs protokollieren sollte. Leider wird aktuell nur der Inhalt von state ausgewiesen. Auch habe ich festgestellt, dass im Event-Monitor nur die state-Values auftauchen. Im Device selber werden die LastDevice-readings aber sauber befüllt. Hat jemand schon ähnliche Erfahrung gemacht?
Beste Grüße
Thomas
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: betateilchen am 02 September 2021, 23:20:39
Das ist normal, da diese beiden readings (zum Glück) keine events auslösen.
Das Loggen dieser readings macht an sich auch wenig Sinn.
Welchen tatsächlichen Nutzen versprichst Du Dir davon?
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: Ave09 am 04 September 2021, 01:29:16
Hi,
danke für die Klarstellung! Prinzipiell wollte ich nur alle Mitglieder eines structure-Devices (generisch) über ein zentrales Logfile überwachen.

Gelöst habe ich das jetzt für mich über ein notify auf bspw. meine Bewegungsmeldergruppe, das das customLog-Script von Matthias Kleine (siehe https://haus-automatisierung.com/hardware/fhem/2019/09/18/fhem-tutorial-reihe-part-64-eigene-logdateien.html (https://haus-automatisierung.com/hardware/fhem/2019/09/18/fhem-tutorial-reihe-part-64-eigene-logdateien.html) aufruft.

e.g.:
defmod cmd_KG_kk_SYS_Monitoring_customlog_BM cmdalias customlogBM .* AS { customLog("./log/grp_NN_xx_BM_Bewegungsmelder_ALL-%m-%Y.log", 3, $EVENT) }
defmod act_NN_xx_BM_Bewegungsmelder_ALL notify .*BM_Bewegungsmelder.*:state:.* customLogBM $NAME $EVENT
attr act_NN_xx_BM_Bewegungsmelder_ALL addStateEvent 1


Was mir jetzt eigentlich noch fehlt, ist der Zugriff auf das Logfile über die FHEM-GUI und die Visualisierung über SVG. Bin ich hier womöglich in einer Sackgasse gelandet?
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: betateilchen am 04 September 2021, 11:10:46
Zitat von: Ave09 am 04 September 2021, 01:29:16
Gelöst habe ich das jetzt für mich über ein notify auf bspw. meine Bewegungsmeldergruppe, das das customLog-Script von Matthias Kleine

Du machst Dir das Leben m.E. unnötig schwer.

Zitat von: Ave09 am 04 September 2021, 01:29:16
Prinzipiell wollte ich nur alle Mitglieder eines structure-Devices (generisch) über ein zentrales Logfile überwachen.

Das geht doch ganz einfach über ein Logfile, das alle in der structure enthaltenen devices loggt.

Sowas ähnliches habe ich bei mir für zwei Bewegungsmelder umgesetzt, die den Flur überwachen und entsprechend das Licht im Flur einschalten. Ich logge die beiden Bewegungsmelder und die structure (die aus den beiden Meldern besteht).
Damit kann ich das in einem ganz normalen SVG darstellen. Im angehängten Beispiel siehst Du die beiden Bewegungsmelder "Bad" und "Eingang" (das bezieht sich auf die Türen im Flur, neben denen die Bewegungsmelder angebracht sind) und in "PIR" gelb dargestellt den Zustand der structure.
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: Ave09 am 05 September 2021, 22:24:37
ZitatDu machst Dir das Leben m.E. unnötig schwer.
Vielleicht hast du recht! Aber ich wollte ja unbedingt vermeiden, für jedes meiner knapp 30 structure-devices (Bewegungsmelder, Tür.-Fenstkontakte und presence-devices) ein eigenes FileLog zu schreiben.
Mein custom-Logfile konnte ich inzwischen erfolgreich mit:
defmod FileLog_grp_NN_xx_BM_Bewegungsmelder_ALL FileLog ./log/grp_NN_xx_BM_Bewegungsmelder_ALL-%m-%Y.log fakelog
einbinden und plotten. Allerdings musste ich hierzu noch das script bzgl. des Timestampformats gem. https://wiki.fhem.de/wiki/Plots_erzeugen (https://wiki.fhem.de/wiki/Plots_erzeugen) anpassen und den Loglevel entfernen, damit nicht nur FHEM sondern ich auch glücklich bin.  :D
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: betateilchen am 06 September 2021, 12:42:08
Zitat von: Ave09 am 05 September 2021, 22:24:37
ich wollte ja unbedingt vermeiden, für jedes meiner knapp 30 structure-devices (Bewegungsmelder, Tür.-Fenstkontakte und presence-devices) ein eigenes FileLog zu schreiben.

Offenbar hast Du ein generelles Verständnisproblem zu FileLog.

Du brauchst nicht für jedes Device ein eigenes FileLog, Du kannst beliebig viele devices in ein gemeinsames Log schreiben.

Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: betateilchen am 06 September 2021, 13:00:06
'fakelog' ist übrigens deprecated.
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: Ave09 am 06 September 2021, 16:49:50
ZitatDu brauchst nicht für jedes Device ein eigenes FileLog, Du kannst beliebig viele devices in ein gemeinsames Log schreiben.
Aber für jedes device eine FileLog-Definiton, richtig?

Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: betateilchen am 06 September 2021, 17:13:34
Zitat von: Ave09 am 06 September 2021, 16:49:50
Aber für jedes device eine FileLog-Definiton, richtig?

Nein, eben nicht! Was geloggt wird, entscheidest Du in der regexp, die Du beim FileLog angibst.
Angenommen, Du hast drei Bewegungsmelder mit den Namen pir1 pir2 pir_eingang
Dann kannst Du so:

defmod pir_log FileLog ./log/pirLog.log (pir1|pir2|pir_eingang):.*

ein Logfile anlegen, in dem alle drei Bewegungsmelder gemeinsam geloggt werden.

Du könntest als regexp sogar nur .*motion:.* angeben, damit würdest Du alle Geräte in das Log schreiben, die einen Event erzeugen, in dem irgendwas mit motion steht,

Schau Dir einfach nochmal die commandref zu FileLog an, da sind noch weitere Beispiele aufgeführt.

In meinem Logfile steht z.B. folgende regexp:

(st_fl_PIR_Motion.*|.*motion:.*|.*Diesel.*|.*Super.*|.*lumi.*|.*measured.*|.*desired.*|.*actuator.*|.*valve.*|.*level.*|.*temperature.*|.*humidity.*|.*pressure.*|RM_.*|out_Regen.*|gtag.*|owo.*|mqtt.*)

Sieht komplizierter aus, als es ist :)
Titel: Antw:Structure Readings LastDevice und LastDevice_Abs protokollieren
Beitrag von: Ave09 am 06 September 2021, 20:47:31
Perfekt! Habe jetzt einfach die regex vom o.g. notify ins FileLog übernommen, was bestens für mich funktioniert.

Mach mich jetzt mal ans aufräumen ... ;-)

Vielen Dank für deine Geduld!