FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Werner Schäffer am 13 Juni 2015, 16:31:25

Titel: LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 13 Juni 2015, 16:31:25
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?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 13 Juni 2015, 16:47:25
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 
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 13 Juni 2015, 16:49:01
ich teste gerne - sag Bescheid
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 13 Juni 2015, 17:32:42
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?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 13 Juni 2015, 17:59:45
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
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 13 Juni 2015, 18:36:57
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.



Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag 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. 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.
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 13 Juni 2015, 19:23:00
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 ...
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 23 Juni 2015, 22:08:06
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?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 23 Juni 2015, 22:18:36
schau mal ob ein

seit <ls> updateToJson

hilft.

gruß
  andre
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 23 Juni 2015, 22:22:41
set WohnzimmerLights updateToJson

Hab die scenen mal wieder angelegt. soll damit dann ein json file geschrieben werden? Wenn ja wo liegt dieser
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 23 Juni 2015, 22:51:42
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.
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 26 September 2015, 17:20:25
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
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 26 September 2015, 17:30:41
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
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: Werner Schäffer am 26 September 2015, 17:34:34
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.
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 26 September 2015, 17:36:13
Ja also meine fhem.save steht in /opt/fhem/log ...

Da finde ich aber leider den File nicht. Json ist installiert, brauch ich auch für due HUE Lampen.



pi@raspberrypi /opt/fhem/log $ ls -lah
insgesamt 100M
drwxrwxrwx  2 fhem root    4,0K Sep  1 00:23 .
drwxrwxrwx 11 fhem root    4,0K Sep 19 19:40 ..
-rw-rw-rw-  1 fhem root       0 Nov  9  2014 empty_file.txt
-rw-r--r--  1 fhem dialout    0 Apr  3 22:40 eventTypes.txt
-rw-rw-rw-  1 fhem dialout 1,8M Apr 30 23:34 fhem-2015-04.log
-rw-r--r--  1 fhem dialout 204K Mai 31 23:59 fhem-2015-05.log
-rw-r--r--  1 fhem dialout 2,7M Jun 30 23:48 fhem-2015-06.log
-rw-r--r--  1 fhem dialout 119K Jul 31 19:16 fhem-2015-07.log
-rw-r--r--  1 fhem dialout  97K Aug 31 22:24 fhem-2015-08.log
-rw-r--r--  1 fhem dialout 783K Sep 26 17:24 fhem-2015-09.log
-rw-r--r--  1 fhem dialout  181 Apr  3 22:40 fhem.save
-rw-r--r--  1 fhem dialout  21M Sep 26 17:31 HM_Outdoor_Sensor-2015.log
-rw-r--r--  1 fhem dialout  17M Sep 26 17:33 T_Wohnzimmer-2015.log
-rw-r--r--  1 fhem dialout  58M Sep 26 17:31 WZ_Heizung-2015.log

Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 26 September 2015, 17:43:06
das hue modul hat damit nichts zu tun.

was steht im log wenn du save aufrufst? zeig mal ein list vom LightScene device.

wenn das kein LightScene.save file ist kann es auch nicht geladen werden. im modul gibt es keinen code das dieses file löscht.

gruss
  andrfe
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 26 September 2015, 17:55:58
Im log kommmt keine einzige Zeile.


Internals:
   DEF        hueBridge_HUEDevice1 hueBridge_HUEDevice2 hueBridge_HUEDevice3 RegalLight BalkonLight
   HAS_DataDumper 1
   HAS_JSON   1
   NAME       WohnzimmerLights
   NR         113
   NTFY_ORDER 50-WohnzimmerLights
   STATE      sleep
   TYPE       LightScene
   mayBeVisible 1
   Content:
     BalkonLight 1
     RegalLight 1
     hueBridge_HUEDevice1 1
     hueBridge_HUEDevice2 1
     hueBridge_HUEDevice3 1
   Readings:
     2015-09-26 17:53:36   state           sleep
   Scenes:
     Fernsehlicht:
       BalkonLight off
       RegalLight on
       Huebridge_huedevice1:
         icon       dim50%@#ffe0c7
         state      bri 128 : ct 262
       Huebridge_huedevice2:
         icon       light_question
         state      bri 128 : ct 262
       Huebridge_huedevice3:
         icon       light_question
         state      bri 128 : ct 256
     Fernsehlicht_light:
       BalkonLight off
       RegalLight off
       Huebridge_huedevice1:
         icon       dim18%@#ffe0c7
         state      bri 50 : ct 262
       Huebridge_huedevice2:
         icon       dim18%@#ffe0c7
         state      bri 50 : ct 262
       Huebridge_huedevice3:
         icon       dim18%@#ffe2cb
         state      bri 50 : ct 256
     Fernsehlicht_voll:
       BalkonLight on
       RegalLight on
       Huebridge_huedevice1:
         icon       dim75%@#ffe0c7
         state      bri 205 : ct 262
       Huebridge_huedevice2:
         icon       dim75%@#ffe0c7
         state      bri 205 : ct 262
       Huebridge_huedevice3:
         icon       dim75%@#ffe2cb
         state      bri 205 : ct 256
     Sleep:
       BalkonLight off
       RegalLight off
       Huebridge_huedevice1:
         icon       off
         state      off
       Huebridge_huedevice2:
         icon       off
         state      off
       Huebridge_huedevice3:
         icon       off
         state      off
   devices:
     BalkonLight
     RegalLight
     hueBridge_HUEDevice1
     hueBridge_HUEDevice2
     hueBridge_HUEDevice3
Attributes:
   room       Wohnzimmer


Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 26 September 2015, 18:12:57
und bei save wird kein .save file angelegt ?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 26 September 2015, 18:36:08
Auch wenn das jetzt die Anfängerfrage schlecht hin ist. Ich gebe nur "save" oben rein kommt als Rückgabe "Wrote configuration to fhem.cfg "

Aber im Ordner erscheint nichts und im Log auch nicht
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 27 September 2015, 18:45:59
bitte nimm mal die angehängte version und schau was im log auftaucht wenn du save verwendest.

gruss
  andre
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 27 September 2015, 20:37:35
Ersteinmal danke für deine Hilfe!


2015.09.27 20:28:49 1: LightScene_Save
2015.09.27 20:28:49 1: $statefile: ./demolog/LightScenes.save


In /demolog/ ist auch der File !!! DANKE

und wie stelle ich den dann wieder her wenn ich ein update etc mache?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 27 September 2015, 21:01:04
das geht eigentlich automatisch. liegen deine log files auch da?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 27 September 2015, 21:06:59
Boar ich habs gelöst  ;D

Darfst gerne die Hände über Kopf schlagen, aber für alle die später hierher kommen und sich so anstellen wie ich XD


attr global statefile ./demolog/fhem.save

zu

attr global statefile ./log/fhem.save


und logdateien und auch die LightScenes.save liege im Log ordner.

Danke für die Gedult! Jetzt hoffe ich wird alles wieder hergestellt

Update:

Gerade testweise update gemacht. Und leider wieder alle Einstellungen weg. Also welche Geräte sind gesetzt aber nicht die Szenen. Trotz dateien :-(

update 2:

Datei ist leider auch leer:


cat log/LightScenes.save
#Sun Sep 27 21:17:59 2015
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 27 September 2015, 21:21:38
wann genau ist das file leer?

beim ersten speichern oder nach dem update?
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 27 September 2015, 21:34:13
Alle Dateien gelöscht ->
Update gemacht ->
Datei leer ->
Scene angelegt ->
save ->
datei wurde geschreiben im /log/ Ordner ->
update all (um zu sehen obs nun klappt) ->
2015-09-27 21:32:01 Global global nothing to do...
->
Datei noch voll und Scene da !!

O.k warten wir mal das nächste Update ab, warscheinlich einfach nur Fehlbedienung! Ich würde mich dann einfach hier melden wenns nochmal Fehler gibt

Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 22 Februar 2016, 21:10:58
Nach länegren nochmal ein Update gemacht, war die Datei wieder leer. Hatte die aber gesichert und so wiederhergestellt
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: justme1968 am 23 Februar 2016, 19:43:17
ich habe eben eine änderung eingecheckt die hoffentlich gegen die leeren save files hilft.

gruss
  andre
Titel: Antw:LightScenes - Speicherung der Konfiguration
Beitrag von: newan am 23 Februar 2016, 19:44:04
super danke!