Verwendung von fakelog für beliebige Dateien ohne Schreibzugriff ?

Begonnen von mimue, 16 November 2021, 08:01:14

Vorheriges Thema - Nächstes Thema

mimue

Ich habe gerade versucht Logdateien aus /var/log in fhem einzubinden, etwa so

define FileLog_pacman filelog /var/log/pacman.log fakelog

Antwort von fhem:

Can't open /var/log/pacman.log: Permission denied

Mit

{`cat /var/log/pacman.log`}

bekomme ich die Daten angezeigt.

Ganz offensichtlich verlangt fakelog Schreibzugriff auf die angegebene Datei, wozu ? (Wenn die angegebene Datei nicht existiert legt fhem sie an) Das widerspricht irgendwie dem vorgeblichen Ziel von außen befüllte Dateien einzubinden. Fhem sollte nicht in fremde Dateien schreiben.

Einen Lösungsversuch habe ich unter

https://forum.fhem.de/index.php?topic=40564.0

gefunden, der sieht aber schon sehr verwegen aus.

Einfacher wäre es auf den Schreibzugriff für über fakelog angesprochene Dateien zu verzichten, oder das wenigstens als Option vorzusehen.

mimue
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

rudolfkoenig

ZitatEinen Lösungsversuch habe ich unter [...] gefunden, der sieht aber schon sehr verwegen aus.
Ich frage mich, warum man nicht zunaechst im commandref sucht.

marvin78


mimue

Zitat von: rudolfkoenig am 16 November 2021, 08:33:59
Ich frage mich, warum man nicht zunaechst im commandref sucht.

Tja, Rudi, gute Frage.

Vielleicht weil im commandref fakelog überhaupt nicht auftaucht ?

Klick auf Commandref, auf Seite suchen (Edge Browser) Einträge 0/0

Googeln bringt zwei Einträge im Wiki, die beide sehr oberflächlich an das Thema herangehen, plus den zitierten.
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

mimue

Zitat von: marvin78 am 16 November 2021, 08:40:41


Danke Marvin78,

ich hatte "fakelog" nicht wirklich als <regexp> verstanden, eher als override für <regexp>. Eigentlich ist ja fakelog überflüssig, wenn ich beliebige Dateien mit beliebigen regular expressions lesend zugreifen kann.
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

rudolfkoenig

ZitatVielleicht weil im commandref fakelog überhaupt nicht auftaucht ?
Und warum genau ist man auf fakelog fixiert?
Hat mit dem Problem doch nichts zu tun.

fakelog war eine Weile in fhem.cfg als Regexp fuer den FileLog gewaehlt, weil ich davon ausging, dass keiner ein Geraet mit diesem Namen definiert, und Events erzeugt. Ich haette hier auch blablabla verwenden koennen.
Erst spaeter kam ein Hack dazu, wo beim fakelog Regexp die FileLog Befehle addRegexpPart etc nicht angezeigt werden.
fakelog als Regexp ist deprecated, wenn man den o.g. Hack braucht, sollte man den eigenen Namen als Regexp verwenden.

mimue

Zitat von: rudolfkoenig am 16 November 2021, 09:09:43
Und warum genau ist man auf fakelog fixiert?

Gute Frage Rudi.

Weil man sich vielleicht als Gelegenheitsnutzer an den Usancen seiner Mitstreiter orientiert ?

Im konkreten Fall bin ich in der Logdefinition von Alexa darauf gestossen, und habe einfach mal versucht zu ergründen wozu das gut sein mag, und wie ich es für meine Zwecke nutzen könnte.

Nach jetzigem Erkenntnisstand könnte man fakelog einfach aus dem reichhaltigen Fundus der Fhem-Möglichkeiten streichen, Ein

define FileLog_bla filelog /x/y/bla.log .*

tut's ja auch. Mit oder ohne Schreibzugriff.
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

betateilchen

Zitat von: mimue am 16 November 2021, 09:22:49
Nach jetzigem Erkenntnisstand könnte man fakelog einfach aus dem reichhaltigen Fundus der Fhem-Möglichkeiten streichen,

Es IST bereits aus dem Fundus gestrichen. Aus Kompatibilitätsgründen funktioniert es aktuell noch, aber vermutlich mit dem nächsten Release 6.2 könnte es komplett verschwinden.

Zitat von: rudolfkoenig am 16 November 2021, 09:09:43
fakelog als Regexp ist deprecated, wenn man den o.g. Hack braucht, sollte man den eigenen Namen als Regexp verwenden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mimue

Zitat von: betateilchen am 16 November 2021, 09:29:50
...aber vermutlich mit dem nächsten Release 6.2 könnte es komplett verschwinden.

Danke betateilchen,

wenn es dann den Status von "könnte" zu "wird" oder sogar "ist" wechselt, denkt Ihr hoffentlich an die Mitstreiter, die das, aus welchen Gründen auch immer, in ihrer fhem.cfg stehen haben, oder gar, wie im Falle von Alexa, in einer .pm Datei ?

Übrigens, "deprecated" bedeutet nicht "gestrichen" sondern "veraltet" oder "überholt".
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence