FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Thomas24568 am 15 April 2025, 19:32:23

Titel: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Thomas24568 am 15 April 2025, 19:32:23
Moin!

Mit xzy Shelly nnn.nnn.nnn.nnn wird ein Gerät in FHEM angelegt. Soweit so gut, das funktioniert. Aber leider wird NICHT automatisch ein FileLog angelegt. (warum eigentlich nicht?)

Nach https://wiki.fhem.de/wiki/FileLog wird per

define <name> FileLog <filename> <regexp> [readonly]

so eine Datei händisch angelegt. Doch das funktioniert nicht (mehr?)!

Ich bekomme die Fehlermeldung, das das Device xyz schon existiert, ich solle es erst löschen. Doch das wäre ja Blödsinn, ich möchte eine Log-Datei haben die mir die Meßwerte des Shellys aufzeichnet.

Außerdem: Wenn alles in die Log-Datei geschrieben werden soll, was muß dann in/für regexp stehen? Ich habe den Parameter erst einmal frei gelassen.

Vermutlich mache ich etwas falsch, aber was?
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: JoWiemann am 15 April 2025, 20:11:06
Hallo,

jedes Device in Fhem erwartet einen eineindeutigen Namen. Somit darf das FileLog Device nicht wie das Shelly Device heißen.

Ansonsten empfehle ich den Wiki Artikel zu FileLog.

https://wiki.fhem.de/wiki/FileLog

Grüße Jörg
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Thomas24568 am 15 April 2025, 20:16:34
Zitat von: JoWiemann am 15 April 2025, 20:11:06Ansonsten empfehle ich den Wiki Artikel zu FileLog.


Da war ich. Und da steht

Dabei bezeichnet
<name>
- wie üblich - das Device

Da steht NICHT das was du schreibet (unterschiedliche Namen). Wenn du Recht hast ist das Wiki fehlerhaft.  Und woher weiss FHEM (nach deiner Angabe) für welches Gerät die Logdatei denn sein soll?
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: JoWiemann am 15 April 2025, 21:45:42
Hallo.

bitte inhaltich lesen und nicht mit Erwartung.

define <name> FileLog <filename> <regexp> [readonly]

<name>
<...> kennzeichnet: zwingend notwendig
name sagt, es muss dem Device ein eineindeutiger Name gegeben werden. Z.B. FileLog_ShellyXYZ

FileLog zeigt an, dass es sich um ein Device für ein File Log handelt

<filename> Datei in der die Daten gespeichert werden.

<regexp> muss ein Selektionskriterium beinhalten.

Also, wenn Shelly_Licht das Shelly Device ist, könnte ein FileLog Device so aussehen:

define FileLog_fuer_Shelly_Licht FileLog ./log/Log_Shelly_Licht-%Y-%m.log Shelly_Licht:.*

FileLog_fuer_Shelly_Licht: als Name des FileLog Device. Durch diesen Name hat man den Bezug zum Shelly Device Shelly_Licht

./log/Log_Shelly_Licht-%Y-%m.log: mit /log als Unterverzeichnis von Fhem.
mit Log_Shelly_Licht-%Y-%m.log als Dateiname, wo durch -%Y-%m jeden Monat eine neue Datei erstellt wird.

Shelly_Licht:.* als regexpr. Vom Device Shelly_Licht werden durch :.* alle Readings ins Log geschrieben.

Grüße Jörg
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: RalfRog am 15 April 2025, 21:54:49
Ergänzung:
Wenn in deiner Installation automatisch angelegte FileLog's für Devices existieren, dann schau doch mal wie da Device und FileLog
zusammen hängen und das Log angelegt wurde.

Mit Joe's Erklärungen sollte sich das aufdröseln lassen.

Gruß Ralf
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Thomas24568 am 15 April 2025, 22:40:04
Danke Jörg,

nach deiner Erklärung sieht es brauchbar aus. Warum steht das denn nicht so im Wiki? Denn dort ist eben nicht erkennbar, das sich <name> aus dem Teilstring "FileLog" plus dem Gerätenamen zusammensetzt.

Gruß
Thomas
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: passibe am 16 April 2025, 00:00:12
Zitat von: Thomas24568 am 15 April 2025, 22:40:04Warum steht das denn nicht so im Wiki?
Weil es bei FHEM immer so ist, dass Devices mit
define <name> <modul>definiert werden. Und an zweiter Stelle steht deshalb auch immer der Name desjenigen Devices, das du mit diesem Befehl erstellst. mE versteht es sich also damit schon von selbst, dass ein neues Device auch einen neuen Namen kriegt. Deshalb steht das vermutlich auch nicht im Wiki dabei.

Zitat von: Thomas24568 am 15 April 2025, 22:40:04dort ist eben nicht erkennbar, das sich <name> aus dem Teilstring "FileLog" plus dem Gerätenamen zusammensetzt.
Das ist auch nicht der Fall, du kannst dein FileLog auch Ernie oder Bert nennen, das ist völlig egal. "FileLog" muss nicht im Namen enthalten sein, denn, dass es ein Device mit TYPE FileLog ist sagt <modul>.

Und von welchem Gerät das FileLog Daten loggen soll, sagst du ihm auch nicht über <name>, sondern mit der regex, die entscheidet, bei welchen Events ins Log geschrieben wird. Du kannst auch Events mehrerer Geräte in einem FileLog unterbringen, <name> ist dafür irrelevant – es zählt allein die Regex.

Ganz vereinfacht macht FileLog nämlich nichts anderes als z.B. ein notify: Es lauscht auf Events. Während notify dann irgendwelchen Code ausführt, schreibt FileLog die Events einfach in eine Datei. (Natürlich macht FileLog noch mehr Sachen, z.B. logrotation usw. aber das ist hierfür ja irrelevant.)

Insgesamt: <name> ist (fast?) immer egal und, solange einzigartig, frei wählbar. Alles, was das Device in irgendeiner Weise charakterisiert, kommt erst später im define-Kommando oder noch später über Attribute, etc.

Hoffe das klärt es ein bisschen auf.
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Thomas24568 am 16 April 2025, 09:13:44
Zitat von: passibe am 16 April 2025, 00:00:12Hoffe das klärt es ein bisschen auf.

Moin!

Nur ein klein wenig. Ich hatte Jörg so verstanden, das der Name zwangsweise das Gerät (als String) enthält, das die Daten liefert. Und weil hier soviel mit englischen Begriffen um sich geworfen wird kommt es dann zu Mißverständnissen. Für mich ist ein Device ein Gerät, also ein Shelly. Eine Datei ist kein Gerät (für mich), weil ich die nicht physisch anfassen kann.

Zitat von: JoWiemann am 15 April 2025, 21:45:42FileLog_fuer_Shelly_Licht

Und solche "Monsternamen" tragen nicht zum besserem Verständnis bei, weil ich als Aussenstehender - auch wenn fälschlich, wie ich inzwischen gelernt habe - denken muß das die Defenition "FileLog_fuer_Shelly_Licht" den Befehl "FileLog" enthält und den Verweis auf "Shelly_Licht".

Oder anders formuliert: Wenn ein Befehl und ein Bezeichner gleich heissen, woher soll dann ein Neuling unterscheiden was Befehlt ist und was Bezeichner (Variable).

Beispiel:
define <name> FileLog <filename> <regexp> [readonly]

Dann sollte <name> ein beliebiger (auf diesen Begriff kommt es an!) Bezeichner sein.
"FileLog" ist der Befehl was defeniert werden soll.
<filename> ist klar.
<regexp> habe ich schon mal gehört. Hier fehlt dann aber ein Beispiel wenn alle Meßwerte in die Datei filename geschrieben werden soll.

Nicht jeder Mitleser hier ist EDV-Ing... Ich hoffe, das meine Probleme mit der Syntax jetzt verständlich sind.

Gruß
Th.



Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: rabehd am 16 April 2025, 09:31:31
Zitat von: Thomas24568 am 16 April 2025, 09:13:44Ich hoffe, das meine Probleme mit der Syntax jetzt verständlich sind.
Ja, Dein Grundverständnis ist das Problem.
Ein Device ist eben nicht nur was zum Anfassen, sondern etwas was auf Basis eines Moduls initialisiert wird.

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Wenn ein Befehl und ein Bezeichner gleich heissen,
Beispiel?

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Und solche "Monsternamen" tragen nicht zum besserem Verständnis bei,
Viel besser als komische Kürzel.

Zitat von: Thomas24568 am 15 April 2025, 19:32:23Aber leider wird NICHT automatisch ein FileLog angelegt. (warum eigentlich nicht?)
Weil Dir wohl das fehlt.
defmod autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log



Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Beta-User am 16 April 2025, 09:43:10
Zitat von: rabehd am 16 April 2025, 09:31:31Weil Dir wohl das fehlt.
Vermutlich wurde das Shelly-Device nicht von autocreate angelegt ;) .

Zitat von: rabehd am 16 April 2025, 09:31:31Ein Device ist eben nicht nur was zum Anfassen, sondern etwas was auf Basis eines Moduls initialisiert wird.
Anders formuliert:
Ein "Device" ist schlicht eine logische Einheit in FHEM, die per "define"-Anweisung (ggf. in der defmod-Vaiante) erzeugt wird. Das kann ein Stück Hardware repräsentieren, oder eben auch "alles mögliche" wie eine FileLog-Instanz, ein notify oder at, ein "Calendar". Bzgl. Hardware: Ein Stück Hardware kann in FHEM durchaus auch mehrere Devices ergeben - wie im Detail sinnvoll, hängt von der Einbindung ab...

Vielleicht hilft https://wiki.fhem.de/wiki/Ger%C3%A4t zumindest etwas weiter.

Ansonsten finde ich die Tonlage z.* K.*, mit der der TE sich hier äußert. Just my2ct.
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: rabehd am 16 April 2025, 09:50:26
Zitat von: Beta-User am 16 April 2025, 09:43:10Ansonsten finde ich die Tonlage z.* K.*, mit der der TE sich hier äußert.
Hier könnte ein "superpo..." 2 heranwachsen.  ;)
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: rabehd am 16 April 2025, 09:56:50
Zitat von: Thomas24568 am 15 April 2025, 19:32:23Aber leider wird NICHT automatisch ein FileLog angelegt.
Will man das überhaupt?
Ich brauche nicht für jedes Device ein eigenes Filelog. Daten auf die ich später zugreifen will kommen bei mir in die Log-Datenbank. Für Einzelfälle habe ich Extra-Logfiles und dort fasse ich in der Regel mehrere Device zusammen.
Beispiel: Ein Logfile für alle Fenstersensoren und dort nur die Zeitpunkte für öffnen und schließen. Damit konnte ich der Polizei den genauen Einbruchszeitpunkt nennen. In der Datenbank hätte ich erst eine Abfrage gebraucht.
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: passibe am 16 April 2025, 10:22:47
Zitat von: Thomas24568 am 16 April 2025, 09:13:44Ich hatte Jörg so verstanden, das der Name zwangsweise das Gerät (als String) enthält, das die Daten liefert.
Wie erklärt, nein. Das tut die regex.

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Für mich ist ein Device ein Gerät, also ein Shelly. Eine Datei ist kein Gerät (für mich), weil ich die nicht physisch anfassen kann.
Auch nicht, siehe die Antwort von Beta-User.

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Und solche "Monsternamen" tragen nicht zum besserem Verständnis bei
Wie gesagt, du musst keinen Mosternamen nehmen, kannst du dir völlig frei aussuchen. Einfach das nehmen, was du intuitiv findest. Kannst es auch Shelly_Licht_L nennen oder so.

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Wenn ein Befehl und ein Bezeichner gleich heissen, woher soll dann ein Neuling unterscheiden was Befehlt ist und was Bezeichner (Variable)
Das verstehe ich noch nicht

Zitat von: Thomas24568 am 16 April 2025, 09:13:44sollte <name> ein beliebiger (auf diesen Begriff kommt es an!) Bezeichner sein.
Ist es ja auch. Wie gesagt, völlig beliebig.

Zitat von: Thomas24568 am 16 April 2025, 09:13:44Hier fehlt dann aber ein Beispiel wenn alle Meßwerte in die Datei filename geschrieben werden soll.
Dazu musst du einfach eine Regex nehmen, die auf alle Events von dem jeweiligen Device triggert. Also z.b.Shelly_Licht:.*
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: MadMax-FHEM am 16 April 2025, 11:25:28
Zitat von: passibe am 16 April 2025, 10:22:47
ZitatUnd solche "Monsternamen" tragen nicht zum besserem Verständnis bei
Wie gesagt, du musst keinen Mosternamen nehmen, kannst du dir völlig frei aussuchen. Einfach das nehmen, was du intuiti

Und wie schon geschrieben es muss auch nix mit FileLog oder Shelly drin genannt sein.
Du kannst es auch "MeineLogdateiHierAusDemForum" nennen. Aber manchmal hilft es, wenn eben bereits am Namen gewisse Dinge erkennbar sind (finde zumindest ich ;)  )...


Zitat von: passibe am 16 April 2025, 10:22:47
ZitatWenn ein Befehl und ein Bezeichner gleich heissen, woher soll dann ein Neuling unterscheiden was Befehlt ist und was Bezeichner (Variable)
Das verstehe ich noch nicht

Evtl. weil FileLog (also Type) und FileLog im Namen auftauchen, bei "unseren" Beispielen...

@Thomas24568: siehe meine erste Antwort...


Zitat von: passibe am 16 April 2025, 10:22:47
Zitatsollte <name> ein beliebiger (auf diesen Begriff kommt es an!) Bezeichner sein.
Ist es ja auch. Wie gesagt, völlig beliebig.
Eine "Einschränkung": innerhalb fhem bzw. pro fhem-System (es kann ja auch mehrere geben ;)  ) muss der Name eindeutig sein!
EDIT: "gestrichen", um (weitere) Verwirrung zu vermeiden ;)


Ansonsten:

@Thomas24568: Einsteiger-Doku gelesen? An RegEx wirst du nicht vorbeikommen...

Gruß, Joachim
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Prof. Dr. Peter Henning am 16 April 2025, 12:48:50
Zitat von: Thomas24568 am 15 April 2025, 20:16:34Wenn du Recht hast ist das Wiki fehlerhaft. 
Sicher nicht.
Zitat von: Thomas24568 am 15 April 2025, 22:40:04das sich <name> aus dem Teilstring "FileLog" plus dem Gerätenamen zusammensetzt
Ich hoffe, dass das jetzt einfach genug erklärt wurde.

Und ja: Da besteht eine große Diskrepanz zwischen Kompetenz und Tonfall.

LG

pah
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: punker am 16 April 2025, 14:33:55
Im Zweifelsfall schau ich mir halt bereits angelegte Devices mit Filelogs an.
Dann seh ich gleich wie und was da in die Definition gehört.
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Prof. Dr. Peter Henning am 16 April 2025, 15:08:52
Genau. Und dann noch einen Blick in die CommandRef, und es gehen Kronleuchter auf.

Das Problem ist, dass die Verstehenskompetenz in der FHEM-Community sehr divers ist. Was dem einen "logisch" erscheint, sind für den anderen böhmische Dörfer.

Aus genau diesem Grund pflegen wir ganz unterschiedliche Dokumentationskanäle:
- Anfänger-Doku
- CommandRef
- Wiki
- und ein gedrucktes Buch.

LG

pah
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: betateilchen am 16 April 2025, 15:13:10
define donnerstag FileLog ./log/freitag.log samstag.*
*duck-und-weg*
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Prof. Dr. Peter Henning am 16 April 2025, 15:25:56
Auch gut:
define FileLog FileLog File.Log FileLog.*LG

pah
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Thomas24568 am 19 April 2025, 17:16:34
Zitat von: Beta-User am 16 April 2025, 09:43:10Ansonsten finde ich die Tonlage z.* K.*, mit der der TE sich hier äußert. Just my2ct.

Moin!

Warum? Ich habe freundlich erklärt, wo mein Problem ist, dann erzählt wo mein Verständnis der Syntax hakt, dann das ich meinen Fehler erkannt habe und warum ich die Erklärung im Wiki zuerst nicht verstanden habe. Wird dann noch "Stiefellecken" erwartet?

Achja, den Einführungskurs hatte ich gelesen. Aber das war so viel Stoff, das ich nicht alles behalten habe und es war soviel von "Curl"s die Rede die ich nicht habe, das ich dann ganze Abschnitte übersprungen habe.

Um beim Thema zu bleiben: Eine Log-Datei konnte ich jetzt mit den System-Werkzeugen anlegen, die wird offenbar auch geschrieben (denn im SVG-Fenster konnte ich sie auswählen und es wird im Diagramm eine entsprechende Linie gezeichnet), aber wenn ich im Definitions-Fenster der Log-Datei oben rechts "text" anklicke bekomme ich nur ein leeres Fenster angezeigt, während im Diagramm locker die fortlaufenden Werte angezeigt werden. Das ist jetzt aber nicht mehr wichtig, das Diagramm wird geschrieben, Problem erledigt.

"schmusige" Grüße
Thomas
Titel: Aw: Ich sehe nur noch Wald - wer hilft? (Filelog für Shelly)
Beitrag von: Prof. Dr. Peter Henning am 20 April 2025, 10:43:13
Zitataber wenn ich im Definitions-Fenster der Log-Datei oben rechts "text" anklicke bekomme ich nur ein leeres Fenster angezeigt,
Sehr seltsam, denn meine diversen FHEM-Installationen kennen keine "Fenster".

Zitatwährend im Diagramm locker die fortlaufenden Werte angezeigt werden. Das ist jetzt aber nicht mehr wichtig, das Diagramm wird geschrieben
Eine leere Log-Datei kann nicht zu einem funktionierenden Diagramm führen. Schlussfolgerung: Der TE versteht gar nicht, was er macht - und das Diagramm kommt aus einer anderen Datei.

Zitat, Problem erledigt.
Abwarten. Die Erfahrung zeigt, dass nicht verstandene "Erledigungen" zu Folgeproblemen und immer neuen Rückfragen führen.

Zum Lesen der Doku:
Zitatwar soviel von "Curl"s die Rede die ich nicht habe, das ich dann ganze Abschnitte übersprungen habe.
Ziemlich unglaubwürdige Ausrede von jemandem, der sich offenbar nicht damit befassen möchte, was er eigentlich tut. Die pädagogische Bewertung dieses gut bekannten Lernverhaltens erspare ich uns und rate dringend dazu, sich mit den Grundlagen zu befassen.

Zitat von: Thomas24568 am 19 April 2025, 17:16:34Warum? Ich habe freundlich erklärt
Nein, eher nicht freundlich. Sondern ziemlich "cocky" und mit diversen Behauptungen, die Dokumentationen seien ungenügend bis fehlerhaft. Wobei die jetzige Antwort zeigt, dass dieser Eindruck offenbar auf das "Überspringen" zurückzuführen ist.

pah