LightScenes - Speicherung der Konfiguration

Begonnen von Werner Schäffer, 13 Juni 2015, 16:31:25

Vorheriges Thema - Nächstes Thema

Werner Schäffer

Warum wird eigentlich die Konfiguration von LightScenes in einer extra Datei gespeichert, die unglücklicherweise auch noch im Verzeichnis für Log-Dateien landet?

Wer löscht nicht schon mal ein paar Logfiles - und schwups sind die Lightscenes auch verschwunden. Jaja ist mir so passiert, sogar schon zweimal.

Ich habe meine FHEM-Konfiguration schon länger auf DB (mySql) umgestellt. Warum die LightScenes nicht auch darin speichern?

justme1968

#1
da es LightScene gab bevor es configDb gab und weil ich configDb nicht nutze und es bis jetzt keine beschwerden gab habe ich es noch nicht umgestellt.

das LightScene save file wird in das gleiche verzeichnis geschrieben in dem auch das fhem save file landen würde.

wer von hand so unvorsichtig log files löscht sollte wissen was er tut.

wenn ich dazu komme das speichern umzustellen und du bereit bist das ganze zu testen können wir versuchen das besser zu machen.

gruß
  andre 
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Werner Schäffer


Werner Schäffer

Jetzt muss ich trotzdem nochmals nachkarteln:

Warum werden LightScenes in einem Extra-File gespeichert und nicht wie alles andere in FHEM im statefile und nach einem save config in fhem.cfg bzw. in der DB?

Gibt es dafür einen Grund?

justme1968

weil im state file nur readings gespeichert werden und es nicht besonders praktikabel ist eine komplette LightScene configuration in einem oder mehreren readings abzulegen. alle anderen module vorher hatten nicht den bedarf andere oder mehr daten abzulegen als über .cfg file und fhem save sinnvoll möglich ist.

fhem hat erst eine weile nach dem es configDb gab überhaupt funktionen angeboten daten transparent in einem file oder in configDb abzulegen. als LightScene entstanden ist gab es so etwas noch nicht.

einem anwender sollte es völlig egal sein wo und wie fhem oder modul irgendwelche daten intern abspeichert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Werner Schäffer

Zitat von: justme1968 am 13 Juni 2015, 17:59:45
einem anwender sollte es völlig egal sein wo und wie fhem oder modul irgendwelche daten intern abspeichert.

Ja, damit magst du recht haben, aber aus Sicht eines Administrators eines Linux Servers hast du nicht recht. Und fast jeder der FHEM einsetzt ist auch Administrator seines Systems.

Das statefile und somit auch die LightScene-Config, gehören einfach nicht in ein Verzeichnis das "log" im Pfad hat. Wird aber so in der FHEM Commandref vorgeschlagen (ganz am Anfang - sozusagen auf Seite 1)

Meiner Ansicht nach dürfen in Verzeichnissen die "log" im Pfad haben, insbesondere /var/log, nur Informationen enthalten sein die < "jetzt" sind. Wenn ich log Verzeichnisse lösche, lösche ich die Vergangenheit und das muss ich ungestraft machen können.

Aber eine Konfiguration = jetzt und hat damit in einem log-Verzeichnis absolute nichts zu suchen. Zudem hat man ja auch Routinen die Logs automatisch archivieren und damit auch die Konfiguration entfernen.




justme1968

wenn du dich als administrator bezeichnest und files von hand löschst solltest du wissen was du tust. und dazu gehört einem system nicht einfach files unter dem hinter weg zu ziehen. wenn du hier von hand eingreifen willst schau dir archivecmd/archivedir/nrarchive an. das ist genau dazu da.

/var/log das tatsächlich mehr oder weniger flüchtige system log files enthält mit dem fhem log verzeichnis zu vergleichen ist falsch. im fhem log verzeichnis liegen historische daten die aufgehoben werden sollen. wenn du sie löschst kannst du nicht mehr plotten. das löschen hat also einfluss auf die funktionalität.

auch aus sicht eines administrators gibt es einen unterschied zwischen einem system weiten verzeichnis und einem paket spezifischen.

darüber das in der default konfiguration statefile und logfiles liegen kann man diskutieren und auch unterschiedlicher meinung sein.

LightScene legt aber das save file nicht bei den log files ab sondern beim fhem save file. wenn du nicht möchtest das das save file bei den log files liegt dann solltest du es über das statefile attribut an eine andere stelle verlegen. das LightScene save file wird automatisch folgen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Werner Schäffer

Zitat von: justme1968 am 13 Juni 2015, 18:52:22
wenn du dich als administrator bezeichnest und files von hand löschst solltest du wissen was du tust.

seit 20 Jahren lösche ich Logfiles nun schon ungesehen wenn mir danach ist, aber noch nie hatte ich damit irgendeine Konfiguration zerstört.
Weil nochmals:

logfile < jetzt
config = jetzt

deshalb dürfen solche Dinge niemals im gleichen Verzeichnis stehen. Ok ich bin daran auch selbst schuld weil ich den statefile -Parameter entsprechend gesetzt habe. Aber es sollte dann einfach nicht so in der Doku stehen.

Und das Argument mit den paketspezifischen Verzeichnissen kann ich so auch nicht stehen lassen:
ich will dass alle Anwendungen ihre Logfiles auf meinem Server in /var/log schreiben. So außergewöhnlich ist dieser Wunsch wohl nicht, sonder eher allgemeiner Usus.

Vorschlag:
In der Commandref sollte diese Beispiel einfach geändert werden und das statefile in keinem Fall in ein log-Verzeichnis geschrieben werden. Weiter unten in der Commandref kommt da auch noch ein Beispiel /var/cache für das Statefile. Ist meiner Ansicht aber auch nicht so glücklich gewählt. Mein Vorschlag aber auch nur halbüberzeugt: /var/run.

Ich lese nun mal in die Doku und am Anfang nach der Installation von FHEM waren meine Gedanken: statefile was ist das - keine Ahnung - wird schon irgendein Logfile sein so wie es die Doku suggeriert wird ...

newan

Muss das mal ausgraben.
Ich hab eben ein update all und danach ein shutdown restart gemacht und alle meine scenen waren weg?

Kann ich die irgendwie wieder laden, oder wie sichere ich diese?

justme1968

schau mal ob ein

seit <ls> updateToJson

hilft.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

newan

set WohnzimmerLights updateToJson

Hab die scenen mal wieder angelegt. soll damit dann ein json file geschrieben werden? Wenn ja wo liegt dieser

justme1968

du musst das updateToJson nur ein mal machen und danach save sagen.

du hast neben dem fhem update inzwischen auch das perl json modul installiert das vorher nicht da war.  LightScene verwendet json wenn es vorhanden ist. sonst gibt es einen fallback. und der wurde bei dir vorher verwendet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

newan

Hab heute wieder ein update gemacht und alle meine Lichteinstellungen waren weg.
Das schon sehr nervig. In der fhem.cfg steht nichts von den Einstellungen nur die Grundconfig, welche Lampen beteiligt sind

justme1968

bei einem update verschwindet die config nicht einfach. die lightscene configuration steht nicht in fhem.cfg sondern in in einem LightScene.save file dort wo auch fhem.save liegt.

wenn du zwischendurch auch das perl JSON modul installiert hast liegt es daran und di kannst die konfiguration mit updateToJson übernehmen. das hatte ich oben schon geschrieben.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Werner Schäffer

Ich habe mich da schon mal gestritten mit dem Autor des Lightscenes-Plugins:

die Konfiguration der Lightscenes wird im log-Verzeichnis gespeichert (z.B in /var/log/fhem). Das ist einfach gegen alle Konventionen. Einstellungen gehören nun mal in /etc und wenn sie in einem Log-Verzeichnis stehen können sie schon mal verloren gehen, da es nun mal Usus ist dass Log-Files archiviert oder gar gelöscht  werden. Und damit ist die Konfiguration eben mal verloren oder steckt in einem Archiv. 

Meiner Ansicht nach sollte dies dringend vernünftig gelöst werden, da Lightscenes an sich eine sehr nützliche Sache sind.