Autor Thema: config files in fhem editieren  (Gelesen 2278 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18948
config files in fhem editieren
« am: 05 Januar 2019, 20:39:56 »
wie bekommt man am besten die möglichkeit ein config file in fhem zu editieren?

problem: für alexa-fhem ist ein (minimales) config file nötig das unter umständen vom anwender noch etwas angepasst werden muss.

eigentlich gibt es in fhem schon fast alles um das relativ komfortabel zu lösen, leider scheitert es an ein paar 'kleinigkeiten':
- das file muss in .../FHEM liegen
- es gibt keine möglichkeit .json als extension zu vergeben damit codemirror schön funktioniert

zusätzlich: wo sollte so ein config file liegen? aktuell schreibe ich es dorthin wo auch das fhem config file liegt, wenn fhem dort nicht schreiben darf landet es dort wo das statefile landet.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19116
Antw:config files in fhem editieren
« Antwort #1 am: 05 Januar 2019, 20:56:25 »
Ich denke mal da wo auch fhem.cfg liegt ist es gut aufgehoben. Die configdb Config liegt ja z.B. auch da.
Aber eventuell sollten wir überlegen ein Verzeichnis zu benennen wo alle Dateien rein dürfen die über FHEMWEB editiert werden dürfen. Ich vermisse es meine Heizprofile einfach über FHEMWEB zu editieren. Die Herausforderung ist das diese in einer configdb liegen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #2 am: 05 Januar 2019, 21:20:49 »
Die Herausforderung ist das diese in einer configdb liegen.

Es ist völlig egal, ob die Dateien in configdb oder im Dateisystem liegt. Solange FHEM in der Lage ist, die Dateiendung zu "kennen" und damit zu wissen, in welchem Pfad die Datei liegt, arbeiten FileRead() und FileWrite(), die für das Bearbeiten per "Edit files" verwendet werden, völlig transparent.

Ein Unterverzeichnis, in dem Konfigurationsdateien liegen, per "Edit files" verfügbar zu machen, fände ich auch eine grundsätzlich sinnvolle Idee.

Das Thema ".json Files für codemirror" ist davon weitgehend unabhängig zu betrachten.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #3 am: 05 Januar 2019, 21:26:18 »
Ich denke mal da wo auch fhem.cfg liegt ist es gut aufgehoben.

Nein.

Die configdb Config liegt ja z.B. auch da.

Das ist ein Ausnahmefall, den ich seinerzeit ausführlich mit Rudi diskutiert hatte.
Die Konfigurationsdatei zur configDB muss zu einem sehr frühen Zeitpunkt gelesen werden, zu dem es noch keinerlei Attribute (z.B. moddir) gibt. Zu diesem Zeitpunkt kann fhem.pl deshalb nur Dateien im gleichen Verzeichnis finden, in dem sich auch fhem.pl selbst befindet. Das ist der gleiche Grund, warum auch configDB.pm in diesem Pfad liegt. Das ist besonders deshalb wichtig, damit das Ganze auch auf Systemen funktioniert, die eine grundsätzlich andere Verzeichnisstruktur verwenden, wie z.B. NAS Systeme.

Für Konfigurationsdateien, die während des Systemstarts von FHEM für einzelne Modultypen bzw. devices benötigt werden, stehen dann schon die globalen Attribute und damit eine "bekannte" Verzeichnisstruktur bereit. Solche config-Dateien können deshalb "irgendwo" liegen, solange der Pfad per Attribut oder sonstwie bekanntgemacht ist.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18948
Antw:config files in fhem editieren
« Antwort #4 am: 05 Januar 2019, 21:31:57 »
Das Thema ".json Files für codemirror" ist davon weitgehend unabhängig zu betrachten.

ja. aber...

files mit der endung .json werden nicht automatisch gefunden, wenn man editFileList verwendet überschritt man alle defaults.

ein addToEditFileList und removeFromEditFileList könnte hier helfen. wenn bei den so hinzugefügten files die prüfung auf .../FHEM entfällt wäre vermutlich der sofware teil erledigt.

oder ein $hash->{editFileList} das man im modul setzen kann.

statt beliebige pfade könnte man zusätzlich zu .../FHEM auch noch .../fhem/config erlauben und per attribut in global konfigurierbar machen. so wie logdir
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19116
Antw:config files in fhem editieren
« Antwort #5 am: 05 Januar 2019, 21:34:55 »
Das meinte ich. Einfach ein ganzes Verzeichnis erlauben. Alle Dateien die darunter liegen dürfen von FHEMWEB editiert werden. Und somit ginge dann auch configdb wie Udo bereits angemerkt hat.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20210
Antw:config files in fhem editieren
« Antwort #6 am: 05 Januar 2019, 21:38:54 »
Kann bitte jemand einen konkreten Vorschlag machen, ich kenne die Rahmenbedingungen nicht.
Hilfreich Hilfreich x 1 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #7 am: 06 Januar 2019, 10:33:00 »
Das meinte ich. Einfach ein ganzes Verzeichnis erlauben. Alle Dateien die darunter liegen dürfen von FHEMWEB editiert werden.

statt beliebige pfade könnte man zusätzlich zu .../FHEM auch noch .../fhem/config erlauben und per attribut in global konfigurierbar machen. so wie logdir

Das Ganze ist nicht ganz so trivial wie es aussieht. Dazu müsste vermutlich ein Großteil der Logik für editFiles geändert werden.

ja. aber...

files mit der endung .json werden nicht automatisch gefunden, wenn man editFileList verwendet überschritt man alle defaults.

Das ist schon klar. Das würde ja anderen Dateieendungen auch nicht anders ergehen. Das reine Hinzufügen einer Dateiendung, um diese als editierbar zu finden, wäre überhaupt kein Problem, solange dieser Dateityp in einem bereits bekannten Verzeichnis, z.B. ./FHEM liegt. Solche Erweiterungen wurden in der Vergangenheit ja auch schon vorgenommen.

Kann bitte jemand einen konkreten Vorschlag machen, ich kenne die Rahmenbedingungen nicht.

Auf meinen nächsten Bahnfahrten werde ich mal darüber nachdenken. Da ich bei der Entwicklung von configDB lange Zeit damit zugebracht habe, die Logik von "Edit files" zu verstehen um sie auch für configDB nutzbar zu machen, weiß ich zumindest, wie da intern grundsätzlich gearbeitet wird.

Die Diskussion über die Erweiterung dieser Funktion führen wir jetzt auch nicht zum ersten Mal. Gebt mir ein paar Tage Zeit.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18948
Antw:config files in fhem editieren
« Antwort #8 am: 06 Januar 2019, 11:59:21 »
@rudfi: kurz nochmal die problemstellung aus meiner sicht:

- ein modul möchte ein oder mehrere files irgendwo im fhem verzeichnisbaum speichern
- die files müssen tatsächlich im filesystem liegen da andere externe prozesse darauf zugreifen müssen
- manche dieser files sollen vom endanwender über edit files editierter sein
- andere nicht, und sind idealer weise auch nicht 'abgreifbar'
- es wäre schön wenn diese files in der fhem backup routine mit berücksichtig werden

fragen:
- wo sollen die files genau liegen?
   vorschlag: ein neues verzeichnis unterhalb von .../fhem. pfad über global auffindbar
- sind Unterverzeichnisse erlaubt wenn ein modul mehr als ein file ablegen will?
- wie wird edit files informiert welche files mit angezeigt werden sollen?
  vorschlag: über eine add/remove routine und/oder über $hash->{editFiles}
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #9 am: 06 Januar 2019, 14:49:15 »
- die files müssen tatsächlich im filesystem liegen da andere externe prozesse darauf zugreifen müssen

Eine Datei zwingend im Dateisystem abzulegen, wird von FileRead() und FileWrite() grundsätzlich schon unterstützt.
Aber woher weiß der externe Prozess, wo er die Dateien suchen soll, wenn der Pfad über ein globales Attribut in FHEM beliebige verändert werden kann?

- manche dieser files sollen vom endanwender über edit files editierter sein
- andere nicht, und sind idealer weise auch nicht 'abgreifbar'

Das ließe sich vermutlich über unterschiedliche Dateiendungen steuern.

- es wäre schön wenn diese files in der fhem backup routine mit berücksichtig werden

Wenn sich die Dateien innerhalb der FHEM Verzeichnisstruktur befinden, sollte das kein Problem sein.

- wo sollen die files genau liegen?
   vorschlag: ein neues verzeichnis unterhalb von .../fhem. pfad über global auffindbar
- sind Unterverzeichnisse erlaubt wenn ein modul mehr als ein file ablegen will?

Es gibt jetzt schon mehrere Module, die eine Anforderung bezüglich eigener Zusatzdateien haben, z.B. RSS, InfoPanel, holiday.
Grundsätzlich bin ich auch für ein gemeinsames Config-Verzeichnis für diese Dateien, von einer weiteren Untergliederung in weitere Unterverzeichnisse halte ich allerdings wenig.

- wie wird edit files informiert welche files mit angezeigt werden sollen?
  vorschlag: über eine add/remove routine und/oder über $hash->{editFiles}

Diese Aufgabe zu lösen, ist voraussichtlich der einfachste Teil der Aufgabe.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline Risiko

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 647
Antw:config files in fhem editieren
« Antwort #10 am: 06 Januar 2019, 15:35:41 »
Ich vermisse es meine Heizprofile einfach über FHEMWEB zu editieren. Die Herausforderung ist das diese in einer configdb liegen.
Hallo,

die von FHEMWEB editierbaren Wochenprofile liegen bei mir (json-Datei vom Modul weekprofile) im Log-Verzeichnis.
Nicht gerade schön, aber ich wollte das Problem mit den Schreibrechten umgehen und ganz neu ist das Modul auch nicht.
Wenn es eine einheitliche Lösung gibt, schließe ich mich gerne an.

Risiko.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18948
Antw:config files in fhem editieren
« Antwort #11 am: 06 Januar 2019, 17:50:08 »
Aber woher weiß der externe Prozess, wo er die Dateien suchen soll, wenn der Pfad über ein globales Attribut in FHEM beliebige verändert werden kann?
in meinem fall wird der externe prozess aus dem fhem modul heraus gestartet.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #12 am: 17 Januar 2019, 15:16:15 »
Auf meinen nächsten Bahnfahrten werde ich mal darüber nachdenken.

Grüße aus dem ICE 79 irgendwo in Niedersachsen  8)

Spräche irgendwas dagegen, den ohnehin schon vorhandenen Ordner ./FHEM/FhemUtils künftig für die Ablage von config Dateien zu verwenden? Das dort liegende Keyfile wird natürlich nicht zum Editieren angeboten.

Dieser Ordner hätte den Vorteil, dass er schon komplett in die FHEM Infrastruktur, zum Beispiel bezüglich backup, integriert ist.
« Letzte Änderung: 17 Januar 2019, 15:29:27 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18948
Antw:config files in fhem editieren
« Antwort #13 am: 17 Januar 2019, 15:34:26 »
spontan würde ich sagen alles unter FHEM kommt per update und ist auch im svn.

die config files sollen nicht ins svn sondern sind benutzer spezifisch. eigentlich gehört das key file sich nicht dahin. und von hand editierte holiday files auch nicht. aber das hatten glaube ich schon mal.

ein mal ein ./conf verzeichnis anzulegen wäre eigentlich sauberer. wäre das für configdb ein problem?
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15754
  • s/fhem\.cfg/configDB/g
Antw:config files in fhem editieren
« Antwort #14 am: 17 Januar 2019, 15:52:45 »
nö, für configDB ist das kein Problem.

Das mit FhemUtils war ja nur eine spontane Idee, als ich gerade über das Thema nachgedacht habe.

BTW: Der Mechanismus für die holiday Files wurde schon vor längerer Zeit umgestellt, da spielt dieser Ordner keine Rolle mehr.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg-Stammtisch: 14.06.2019

 

decade-submarginal