Guten Morgen,
die Suche nach den Einträgen zum Thema fhem.cfg zeigt mir die letzten Daten von 2013
schon was her! ? oder?
Ich habe zwei fragen:
1. wäre es möglich und denkbar nur die Datei fhem.cfg wenn sie gespeichert wird, vorher in ein Unterverzeichnis und mit dem Timestamp versehen zu sichern?
Das heist , eine Ergänzung der Funktion fhem speichern, was ja mit einem Attribut ein und ausschaltbar sein könnte.
Ich verspreche mir davon mehr Sicherheit, gerade für Anfänger wie mir.
2. um beim Suchen in der Datei ist mir aufgefallen , dass gerade autocreate es einfach am ende der Datei anhängt.
(kann ja sein , dass ich das falsch sehe, aber ....
wäre es nicht möglich die Datei nach Themen oder Devices zu ordnen?.
Immerhin gibt es ja Routinen die auch alte Sourcecode in einen neuen umwandeln, dann sollte doch auch so etwas möglich sein. oder konsequent in myUtils oder includes , Beides würde jedenfalls mehr Übersicht und eventuell sogar Performance bringen, denn jedes mal müsste nicht die ganze Datei durchsucht werden.
Hoffentlich hab ich mich ausführlich genug geäußert und sind meine Überlegungen nicht zu trivial.
Gruß
Speedy.Bear
zu 1.
global:SAVE {
my $now = TimeNow();
$now =~ s/ /_/g;
`cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;
`cp $attr{global}{statefile} ./savedir/fhem.state.$now`;
}
notify (code für das DEF). Alternative wäre configdb.
zu 2.
Es gibt keinen Grund, das zu tun. FHEMWEB weiß, wo alles ist. Config editieren ist nicht die empfohlene Methode, seine Konfiguration anzupassen. Das autocreate Device kannst du in deinem Frontend hin packen, wo du möchtest, ohne die Config anzufassen. Ich hoffe, das wird hier nicht ein weiterer Config-editieren Thread, dazu gibt es genug. Wichtig ist: Es ist nicht nötig zu sortieren! Es gibt keinen Grund dafür. Es bleibt dir überlassen, es zu tun aber dafür wird niemand etwas bauen, da die Empfehlung lautet, FHEM die Config zu überlassen und zur Konfiguration das Frontend zu benutzen (was im Übrigen vieles auch noch sehr viel einfacher macht).
configDB wurde ja schon erwähnt, das kann das Versionieren out of the box ;) .
Zu 2. noch: Die Orientierung innerhalb FHEMWEB geht viel schneller. Da können Räume helfen, und vor allem mit "list <regex>" geht das Suchen sehr viel einfacher als eine irgendwann sowieso riesige textfile zu durchsuchen. Beispiele: "list TYPE=notify", "list global", "list .*auto.*"
Just my2ct.
Beta-User
Zitat von: Speedy.Bear080861 am 05 März 2018, 12:37:55
wäre es nicht möglich die Datei nach Themen oder Devices zu ordnen?.
Immerhin gibt es ja Routinen die auch alte Sourcecode in einen neuen umwandeln, dann sollte doch auch so etwas möglich sein. oder konsequent in myUtils oder includes , Beides würde jedenfalls mehr Übersicht und eventuell sogar Performance bringen, denn jedes mal müsste nicht die ganze Datei durchsucht werden.
Die Datei fhem.cfg wird nur einmal bei Starten von FHEM gelesen und nicht immer wieder.
Ein manuelles Sortieren birgt - nebenbei gesagt - das Risiko, ein nicht mehr funktionierendes FHEM zu produzieren. Die Konfigurationsdatei sieht dann zwar schön aus, aber sie nützt nix mehr. Was ist Dir wichtiger?
Zitat von: marvin78 am 05 März 2018, 12:46:29zu 2.
Es gibt keinen Grund, das zu tun. FHEMWEB weiß, wo alles ist. Config editieren ist nicht die empfohlene Methode, seine Konfiguration anzupassen. Das autocreate Device kannst du in deinem Frontend hin packen, wo du möchtest, ohne die Config anzufassen. Ich hoffe, das wird hier nicht ein weiterer Config-editieren Thread, dazu gibt es genug. Wichtig ist: Es ist nicht nötig zu sortieren! Es gibt keinen Grund dafür. Es bleibt dir überlassen, es zu tun aber dafür wird niemand etwas bauen, da die Empfehlung lautet, FHEM die Config zu überlassen und zur Konfiguration das Frontend zu benutzen (was im Übrigen vieles auch noch sehr viel einfacher macht).
Wir hatten das Thema ja neulich schon mal (wieder) und ich habe auch versucht, das für mich so umzusetzen. Wirklich einfacher finde ich das aber nicht, gerade wenn man irgendwann mal die Systematik und den Aufbau der cfg verstanden hat. Aber das ist vielleicht auch eine Glaubensfrage. Trotzdem habe ich dann mal eine Frage aus der Praxis: Ich habe u.a. das Modul
mailcheck konfiguriert, damit verbunden eben auch eine Abfrage, ob eine E-Mail mit einem bestimmten Betreff eingegangen ist. Gibt es unter der Voraussetzung, die cfg nicht per Hand editieren zu wollen, einen alternativen Weg, diesen Code in die cfg zu bekommen? Über die Kommando-Zeile im fhemWEB funktioniert das jedenfalls nicht.
Zitat von: Sutadur am 05 März 2018, 13:14:14
...einen alternativen Weg, diesen Code in die cfg zu bekommen? Über die Kommando-Zeile im fhemWEB funktioniert das jedenfalls nicht.
Stichworte: RAW-Import oder telnet.
Allerdings muß ggf. der Beispielcode dann noch angepaßt werden, manches im Wiki (bzw. hier in der commandref) ist eben noch mit den Zeilenumbrüchen "\" und teilweise escapten ";".
funktioniert das jedenfalls nicht - immer wieder eine schöne Aussage :'(
Kommandozeile (eine Zeile)
Raw Definition (viele Zeilen)
Telnet - dito
DEF Editor direkt auf das define bezogen
Gruß Otto
ich bekomme nur Fehlermeldungen beim einfügen,
mal wieder Blind??
Würdet Ihr mir hier noch eine Hilfe geben? Bitte.
global:SAVE {
my $now = TimeNow();
$now =~ s/ /_/g;
`cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;
`cp $attr{global}{statefile} ./savedir/fhem.state.$now`;
}
Die Antwort ist im Grunde einfach: Man muss wissen, was man tut. Kopieren ohne denken ist NIE eine gute Idee. Dass das nicht im Frontend funktionieren soll, kann ich nicht sehen.
Beta-User hat mit RAW und telnet schon die richtigen Stichworte gegeben. Besser noch: Die Beispiele nehmen, verstehen, für sich umsetzen und NICHT einfach kopieren.
Zitat von: Speedy.Bear080861 am 05 März 2018, 13:22:37
ich bekomme nur Fehlermeldungen beim einfügen,
mal wieder Blind??
Würdet Ihr mir hier noch eine Hilfe geben? Bitte.
global:SAVE {
my $now = TimeNow();
$now =~ s/ /_/g;
`cp $attr{global}{configfile} ./savedir/fhem.cfg.$now`;
`cp $attr{global}{statefile} ./savedir/fhem.state.$now`;
}
Du musst schon auch schreiben, was du genau machst und die Fehlermeldungen wären hilfreich. Ein Ratespiel hilft dir ja nicht.
Das ist ein Code für das DEF eines notifies. Noch besser wäre es, das ganze in eine myUtils auszulagern. Dazu bitte die Grundlagen lernen.
Zitat von: Sutadur am 05 März 2018, 13:14:14
gerade wenn man irgendwann mal die Systematik und den Aufbau der cfg verstanden hat.
Was gibt es daran zu verstehen?
in der cfg sind Gerätedefinitionen und Attribute. Punkt. mehr nicht.
Um alles andere kümmert sich FHEM selbst und das ist auch gut so.
Zitat von: Sutadur am 05 März 2018, 13:14:14
Gibt es unter der Voraussetzung, die cfg nicht per Hand editieren zu wollen, einen alternativen Weg, diesen Code in die cfg zu bekommen?
also laut dem Modulthread ist es eine Zeile code.
https://forum.fhem.de/index.php/topic,14092.0.html
define <device> mailcheck imap.xy.z.com x.y@z.com
Das geht wunderbar über die Eingabezeile oder zusammen mit den benötigten Attributen per RAW import.
Zitat von: Sutadur am 05 März 2018, 13:14:14
Über die Kommando-Zeile im fhemWEB funktioniert das jedenfalls nicht.
Warum? kannst Du das näher darstellen bitte?
Zitat von: marvin78 am 05 März 2018, 13:24:33
Noch besser wäre es, das ganze in eine myUtils auszulagern. Dazu bitte die Grundlagen lernen.
Ich hab heute einen guten Tag, daher poste ich Dir mal den Lösungsweg.
Der notify ist für RAW import ausgelegt!
https://forum.fhem.de/index.php/topic,85028.msg773476.html#msg773476
Meine Idee war, dem Threadersteller zu erklären, warum niemand in FHEM einbauen wird, dass die config automatisch nach irgendwas sortiert wird. Editieren oder nicht kann auch gerne woanders weiter diskutiert werden. Es gibt ja genug Threads dazu.
Danke , nochmals an alle.
Ich habe auf jedenfall nicht vor zu nerven.
Aber wenn mann noch nicht weis dann könne DUMME Fragen entstehen.
Sorry, sorry, sorry.
ich verspreche ich möchte mich bessern!!
Zitat von: Otto123 am 05 März 2018, 13:21:39funktioniert das jedenfalls nicht - immer wieder eine schöne Aussage :'(
Aber denoch trifft es genau den Punkt.
Zitat von: marvin78 am 05 März 2018, 13:23:21Beta-User hat mit RAW und telnet schon die richtigen Stichworte gegeben.
Zusätzlich zum ohnehin aktiven Frontend nur für diesen Zweck eine Telnet-Verbindung zu etablieren, scheint mir nicht unbedingt einfacher und auch nicht sicherer, eher im Gegenteil. Aber vielleicht übersehe ich ja auch einen wesentlichen Punkt bzw. Vorteil dieser Methode, insofern würde ich mich über Aufklärung freuen. Die Option
Raw definition (ich denke, das ist gemeint) kannte ich bisher in der Tat noch nicht, das werde ich mir anschauen.
Zitat von: Frank_Huber am 05 März 2018, 13:27:52
Was gibt es daran zu verstehen?
in der cfg sind Gerätedefinitionen und Attribute. Punkt. mehr nicht.
Eben, und wenn man etwas mit der Syntax vertraut ist, geht es oft schneller, wenn man die Definition und die dazugehörigen Attribute direkt nacheinander in die cfg eingibt, ggf. auch für mehrere Geräte, und die Datei insgesamt speichert, als jede Zeile einzeln zu erfassen. Mit jedenfalls geht es so.
Zitat von: Frank_Huber am 05 März 2018, 13:27:52
also laut dem Modulthread ist es eine Zeile code.
[...]
define <device> mailcheck imap.xy.z.com x.y@z.com
Das geht wunderbar über die Eingabezeile oder zusammen mit den benötigten Attributen per RAW import.
Das ist aber eben auch wirklich nur die Definition, die dir aber so nicht weiter hilft. Und zu
Raw habe ich ja eben schon eingeräumt, dass mir das neu ist bzw. war.
Zitat von: Frank_Huber am 05 März 2018, 13:27:52
Warum? kannst Du das näher darstellen bitte?
Das wird mit einer Fehlermeldung quittiert, ich denke, weil es eben nicht nur Angaben mit
define oder
attr sind.
jedenfalls habe ich gelernt,
:"stelle nie zwei Fragen in einen Thread"
Danke bei mir klappt es jetzt.
Die nächste Herausforderung steht schon vor der Tür.
Ich verspreche erst mal fleißig zu lesen!!
Gruß und nochmals Danke.
@Sutadur Und denn DEF Editor kennst Du auch nicht?
Zitat von: Sutadur am 05 März 2018, 13:54:03
Die Option Raw definition (ich denke, das ist gemeint) kannte ich bisher in der Tat noch nicht, das werde ich mir anschauen.
Da war gemeint, ja. Vielleicht solltest du dir das einfach mal ansehen, bevor du weiter rumlamentierst, was alles nicht geht.
Und in der Regel (wenn man _nicht_ in der cfg direkt rumschreibt) bekommt man auch eine irgendwie geartete Fehlermeldung. Ist es zu viel verlangt, die zu posten?
(Ach so: aber bitte nicht hier, das war der Thread von Speedy.Bear080861.)
@Speedy.Bear080861: Markiere doch bitte den Thread als gelöst, wenn dem so ist... Und schließe ihn (ausnahmsweise) auch gleich, es braucht hierzu nichts mehr gesagt zu werden!
@Sutadur: Schaue dir zunächst die Fakten an, schaue dann, was noch von "geht nicht" übrig bleibt und komme dann mit einem eigenen Thema und genauen Fehlermeldungen wieder. Aber du wirst sehen, dass mit all den Tipps hier nichts übrig bleibt, da es in deinem Szenario nichts gibt, was nicht funktioniert. Das hier ist jedenfalls nicht der Thread, in den das gehört.
@Speedy.Bear080861: Mach dir keinen Kopf. Hier wird dein Thread für etwas missbraucht, das ganz woanders hin gehört. Ich weiß, es wurde durch meinen ersten Post gestartet, die Gründe dafür sollten aber eigentlich jedem klar geworden sein.
@marvin, Danke: möchte halt nicht stören, hab Fragen und hoffe die werden vom Inhalt immer besser!!