FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Risiko am 01 März 2020, 14:07:44

Titel: FileRead und relative Pfade
Beitrag von: Risiko am 01 März 2020, 14:07:44
Hallo Zusammen,

nachdem ich weekprofile auf FileRead und FileWrite umgestellt habe, kommen vermehrt Probleme von Usern beim Versuch aus ./log zu lesen

Can't open ./log/weekprofile_xyz.cfg


Meine Vermutung ist, dass sich das Verhalten bei relativen Pfaden damit geändert hat.
Gibt es eine Möglichkeit den FHEM-Startpfad zu ermitteln bzw. aus der Relativangabe einen absoluten Pfad zu machen?
logdir ist nicht gesetzt. ResolveDateWildcards wird bereits verwendet.

Danke.

Risiko.
Titel: Antw:FileRead und relative Pfade
Beitrag von: rudolfkoenig am 01 März 2020, 14:37:16
FielRead aendert das filename Attribut nicht.
Konvertierung von relativ nach absolut geht meist schief, und ist mAn selten noetig: das log Verzeichnis ist
AttrVal("global", "logdir", AttrVal("global","modpath","")."/log")
Titel: Antw:FileRead und relative Pfade
Beitrag von: Risiko am 01 März 2020, 18:40:24
Ok.

Da ich es auch nicht nachstellen kann, liegt es ggf. doch auf User Seite.

Noch was zum Log-Verzeichnis.
Gibt es eine Möglichkeit das Logverzeichnis über eine Funktion abzufragen?
Wenn logdir nicht gesetzt ist, wird %L in ResolveDateWildcards nicht ersetzt.

Wäre es denn nicht sinnvoller %L trotzdem zu ersetzen (mit AttrVal("global","modpath","")."/log") ?




Titel: Antw:FileRead und relative Pfade
Beitrag von: rudolfkoenig am 01 März 2020, 21:24:29
ZitatGibt es eine Möglichkeit das Logverzeichnis über eine Funktion abzufragen?
Habs doch oben gezeigt. (?)
ZitatWäre es denn nicht sinnvoller %L trotzdem zu ersetzen (mit AttrVal("global","modpath","")."/log") ?
Ja, das waere konsequent, habs auch eingebaut und eingecheckt.
Auch wenn die %L Nutzer vermutlich an einem Hand abzaehlbar sind.
Titel: Antw:FileRead und relative Pfade
Beitrag von: betateilchen am 02 März 2020, 13:47:38
Du könntest die Änderung auch noch in der 01_FHEMWEB.pm FW_fileList(() nachziehen

Aktuell steht dort:

  $fname =~ s/%L/$attr{global}{logdir}/g

(in FileLog existiert ein ähnliches Konstrukt)

Und ich denke, ein paar mehr als fünf User wird es schon geben, die %L kennen und benutzen :)
Titel: Antw:FileRead und relative Pfade
Beitrag von: rudolfkoenig am 02 März 2020, 17:44:45
Na gut, ich habe jetzt Logdir() in fhem.pl eingebaut, und sie in FHEMWEB.pm verwendet.
Damit sollten die 7 Benutzer von %L jetzt aber alle gluecklich sein :)
Titel: Antw:FileRead und relative Pfade
Beitrag von: Risiko am 03 März 2020, 20:24:21
Supi.
Danke.
Titel: Antw:FileRead und relative Pfade
Beitrag von: M.Schulze am 06 März 2020, 13:35:08
Hallo,

"modpath" ist aber weiterhin kein optimaler Ort zur Ablage persistenter Daten.

Ich empfehle die Einführung eines neuen Attributes "persistentpath" in global.

z.B.:
Starten von FHEM.pl zwingend mit 2 Argumenten, den Attributen configfile und persistentpath,
und ausrollen von persistentpath, zunächst mindestens in in FHEM.pl: persistentpath/configfile, persistentpath/%L/logfile und persistentpath/statefile

Dann setzen "modpath" über "configfile", wie gehabt.

Natürlich sollte in dem persistentpath auch eine standardisierte Ordnerstruktur vereinbart werden (log/, archive/ ...).



Es könne für einen Übergangszeitraum auch mit "persistentpath"="modpath" gestartet werden, um die Einführung zu erleichtern.


Mfg