[Gelöst] Structure Readings LastDevice und LastDevice_Abs protokollieren

Begonnen von Ave09, 02 September 2021, 22:16:29

Vorheriges Thema - Nächstes Thema

Ave09

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

betateilchen

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?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ave09

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 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?

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ave09

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 anpassen und den Loglevel entfernen, damit nicht nur FHEM sondern ich auch glücklich bin.  :D

betateilchen

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.

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

betateilchen

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

Ave09

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?


betateilchen

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 :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Ave09

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!