Guten Abend zusammen,
ich würde gern das DbLog-Konfigurationsfile über das Device editierbar anbieten, so wie es Rudi kürzlich im holiday Modul gemacht hat.
Das Konfigurationsfile steht in $hash->{CONFIGURATION}.
Die Schwierigkeit, auf die ich gestoßen bin ist, dass das File immer im Pfad <modpath>/FHEM/ gesucht wird.
So habe ich es umgesetzt (gespickt bei Rudis holiday):
my $c = $defs{$d}{CONFIGURATION};
$ret .= FW_pH("cmd=style edit $c",
"<div class=\"dval\">Edit $c</div>", 0, "dval", 1);
Dabei habe ich $c mal mit dem kompletten Pfad ($c = "/opt/fhem/ftestmaria10.conf"), mal ohne und auch nur mit dem Relativpfad "./" probiert.
Es ist gleichgültig, das File wird immer in <modpath>/FHEM/ gesucht.
Das FHEMWEB habe ich nach einem alternativen Aufruf als FW_pH durchsucht, aber nichts gefunden was mir brauchbar erschien,
oder einfach nur nicht gesehen.
Ich wäre für einen Tipp dankbar! Das Konfigurationsfile befindet sich zumeist in /opt/fhem. Kann sich aber natürlich auch an einer anderen Stelle befinden.
LG,
Heiko
Schau Dir mal FW_style() an. Dort wird (ziemlich am Anfang der Funktion) aus dem Attribut editFileList die Liste der zum Edit anzuzeigenden Dateien aufgebaut. Dabei gibt es eine vordefinierte Liste mit Pfadangaben, wo welche Dateien gesucht werden:
gplot Dateien kommen aus $FW_gplotdir,
Styles kommen aus $FW_cssdir usw.
Deshalb weiss FHEMWEB beim "Edit files" genau, woher (in welchem Ordner) welche Dateien gelesen werden müssen und wohin sie am Ende wieder gespeichert werden sollen. Für Konfigurationsfdateien gibt es eine solche automatische Zuordnung nicht.
Zitat von: DS_Starter am 20 Januar 2018, 22:27:19
ich würde gern das DbLog-Konfigurationsfile über das Device editierbar anbieten
Bei dem was Du vorhast, bitte auch daran denken, dass es configDB Anwender gibt, bei denen das Konfigurationsfile für DbLog in der configDB liegt und von dort gelesen und danach wieder dorthin geschrieben werden muss. Bisher funktioniert das völlig problemlos und es wäre schön, wenn das auch so bliebe.
ZitatEs ist gleichgültig, das File wird immer in <modpath>/FHEM/ gesucht.
Ist Absicht, damit man nicht auf die Idee kommt, /etc/passwd via FHEM herunterzuladen.
Siehe auch 01FHEMWEB.pm/FW_fileNameToPath()
Wobei ich mir im Moment die grundsätzliche Frage stelle, ob es eine wirklich gute Idee ist, diese Konfigurationsdatei zur Laufzeit bearbeiten zu können und damit ggf. ein laufendes FHEM abschießt.
Vielen Dank für die Infos Udo und Rudi, schaue ich mir an.
Naja, es geht wirklich nur um das editieren. Wenn es getan ist, muss man es ja noch mit rereadcfg wieder neu einlesen um es zu aktivieren.
An configDB denke ich dabei natürlich.
Aber soviel ich weiß bzw. bisher mitbekommen habe muss man doch ein geändertes Konfigurationsfile wieder in die configDB hineinladen ?
Hatte da letztens so einen Fall, dass der User es einfach vergessen hatte und sich wunderte dass seine Änderungen im File nicht aktiviert wurden.
EDIT: Ist auch erstmal nur so eine Idee, mal schauen wie praxistauglich die wäre.
Zitat von: DS_Starter am 20 Januar 2018, 23:05:58
Aber soviel ich weiß bzw. bisher mitbekommen habe muss man doch ein geändertes Konfigurationsfile wieder in die configDB hineinladen ?
ja, das habe ich doch oben extra schon geschrieben.
Zitat von: betateilchen am 20 Januar 2018, 22:47:28
bei denen das Konfigurationsfile für DbLog in der configDB liegt und von dort gelesen und danach wieder dorthin geschrieben werden muss
Wenn die Konfigurationsdatei in modpath/FHEM liegt und das Attribut editFileList entsprechend konfiguriert ist, funktioniert das jetzt schon automagisch...
Jetzt habe ich etwas recherchiert und getest und bin zu der Überzeugung/Erkenntnis gekommen, dass es nur Sinn macht eine solche Möglichkeit im Device anzubieten, wenn das Konfigurationsfile im <modpath>/FHEM/ liegt. Dann funktioniert das Speichern an der richtigen Stelle und die Kompatibilität mit configDB sollte ebenfalls gegeben sein.
Aber wie betateilchen schon anmerkte, stellt sich die Frage der Sinnhaftigkeit unter diesen Bedingungen. Andererseits ist es schon schön wenn man mit einem Klick dir Möglichkeit hat das File zu öffnen, auch wenn es vielleicht nur zur Kontrolle/Lesen ist.
Ich würde eine Version, zum Test und zur Kärung der Frage ob so eine Möglichkeit überhaupt einen Bedarf hat, ins Forum stellen.
Eine kleines "Nice to have" ist mir noch aufgefallen. Wenn man das File speichert, landet man immer auf der Seite die mit "Edit files" (links unten im Browser) ebenfalls aufgemacht wird. Das ist auch beim holiday-Device so.
Gibt es eine Möglichkeit mitzugeben/zu veranlassen das man nach der Speicherung wieder auf der Ausgangsseite (Detail-Seite des Devices) landet ?
schönen Sonntag zusammen,
Heiko
Zitat von: DS_Starter am 21 Januar 2018, 11:52:39
Ich würde eine Version, zum Test und zur Kärung der Frage ob so eine Möglichkeit überhaupt einen Bedarf hat, ins Forum stellen.
bitte nicht...
Zitatbitte nicht...
hmm ... ok, dann lasse ich das mal.
Für vielleicht eine ähnliche Aufgabenstellung zu anderer Zeit und Veranlassung wäre die Anwort auf die Frage
ZitatGibt es eine Möglichkeit mitzugeben/zu veranlassen das man nach der Speicherung wieder auf der Ausgangsseite (Detail-Seite des Devices) landet ?
trotzdem noch interressant. Vielleicht gibt es da ja etwas.
LG,
Heiko
ZitatGibt es eine Möglichkeit mitzugeben/zu veranlassen das man nach der Speicherung wieder auf der Ausgangsseite (Detail-Seite des Devices) landet ?
Da wollte ich auch, aber der Umbau-Aufwand dafuer war mir zu viel.
Wenn jemand eine elegangte Loesung hat, bitte melden.