Hallo Rudi,
auf meiner ToDo-Liste steht seit geraumer Zeit das Thema Versionierung des statefile im Rahmen der configDB.
Unglücklicherweise führt CommandSave() in fhem.pl das Sichern in der Reihenfolge
- zuerst StateFile
- dann Konfiguration
aus, was dazu führt, dass ich in configDB keine eindeutige Zuordnung vornehmen kann.
Deshalb bitte ich darum, in CommandSave eine entsprechende ID zu generieren, die ich dann in configDB verwenden kann, um die beiden Konfigurationsteile zusammenzuführen. Mein Bestreben war, den Eingriff in die fhem.pl so minimal wie möglich zu gestalten.
Index: fhem.pl
===================================================================
--- fhem.pl (revision 25712)
+++ fhem.pl (working copy)
@@ -1717,6 +1717,7 @@
DoTrigger("global", "SAVE", 1);
restoreDir_saveFile($restoreDir, $attr{global}{statefile});
+ $data{saveID} = createUniqueId(); # for statefile versioning in configDB
my $ret = WriteStatefile();
return $ret if($ret);
Die saveID wird von configDB nach dem Speichern der Konfiguration automatisch wieder gelöscht.
In diesem Zusammenhang frage ich mich, ob das restoreDir_saveFile() in der Zeile vor der Änderung überhaupt einen Sinn macht, wenn configDB
nicht im Einsatz ist? In diesem Fall gäbe es gar kein (aktuelles) statefile, was man irgendwohin kopieren sollte.
Habe die Zeile hinzugefuegt.
ZitatIn diesem Zusammenhang frage ich mich, ob das restoreDir_saveFile() in der Zeile vor der Änderung überhaupt einen Sinn macht, wenn configDB nicht im Einsatz ist? In diesem Fall gäbe es gar kein (aktuelles) statefile, was man irgendwohin kopieren sollte.
Ich habe das "nicht" aus dem Zitat gedanklich entfernt, und eine entsprechende Abfrage fuer restoreDir_saveFile eingebaut.