Moin!
Ich wieder zum gleichen Thema...
Beide FHEM Instanzen sind nun getrennt in zwei Verzeichnissen, ich habe Softlinks benutzt:
Hauptinstanz:
pi@fhem:~ $ ls -l /opt/fhem
total 2404
-rw-r--r-- 1 fhem dialout 193 Feb 26 14:03 AlarmFILE
drwxr-xr-x 2 fhem dialout 4096 Mar 3 23:05 backup
drwxr-xr-x 4 fhem dialout 4096 Mar 25 2024 cache
drwx--x--x 3 fhem dialout 4096 Feb 3 10:32 certs
-rw-r--r-- 1 fhem dialout 441431 Mar 3 08:35 CHANGED
-rw-r--r-- 1 fhem dialout 96 Mar 4 14:05 configDB.conf
-rw-r--r-- 1 fhem dialout 182272 Mar 4 14:07 configDB.db
-rw-rw-rw- 1 fhem dialout 46886 Jan 28 2024 configDB.pm
drwxrwxrwx 51 fhem dialout 20480 Mar 22 2024 contrib
-rw-r--r-- 1 fhem dialout 17 Mar 4 13:50 cookies.lwp
drwxrwxrwx 3 fhem dialout 4096 Mar 22 2024 demolog
drwxrwxrwx 4 fhem dialout 12288 Mar 22 2024 docs
drwxrwxrwx 6 fhem dialout 73728 Feb 28 08:24 FHEM
-rw-r--r-- 1 fhem dialout 849907 Mar 3 14:38 fhem.cfg
-rw-rw-rw- 1 fhem dialout 21936 Jan 28 2024 fhem.cfg.demo
-rwxrwxrwx 1 fhem dialout 174974 Jan 2 08:42 fhem.pl
-rw-r--r-- 1 fhem dialout 18092 Mar 22 2024 GPL_V2.txt
drwxrwxrwx 3 fhem dialout 4096 Mar 22 2024 lib
drwxrwxrwx 2 fhem dialout 61440 Mar 3 00:00 log
drwxr-xr-x 2 fhem dialout 90112 Mar 3 00:00 log-archive
-rw-rw-rw- 1 fhem dialout 47157 Feb 3 11:57 MAINTAINER.txt
drwxr-xr-x 2 fhem dialout 4096 Mar 23 2024 mp3
-rw-rw-rw- 1 fhem dialout 935 Jan 28 2024 README_DEMO.txt
-rw-r--r-- 1 fhem dialout 69268 Nov 23 2021 regSave.cfg
drwxr-xr-x 4 fhem dialout 4096 Mar 23 2024 restoreDir
drwxr-xr-x 3 fhem dialout 4096 Mar 25 2024 sbfspot
drwxr-xr-x 2 fhem dialout 12288 Mar 4 13:32 temp_radolan_data_CDCOpenData
drwxr-xr-x 3 fhem dialout 4096 Mar 22 2024 tmp
drwxrwxrwx 10 fhem dialout 4096 Mar 29 2024 www
-rw-r--r-- 1 fhem dialout 262144 Oct 27 09:52 ZWDongle.bin
Zweitinstanz:
pi@fhem:~ $ ls -l /opt/fhem2
total 44
lrwxrwxrwx 1 fhem dialout 16 Mar 3 14:20 backup -> /opt/fhem/backup
lrwxrwxrwx 1 fhem dialout 15 Mar 3 14:23 cache -> /opt/fhem/cache
lrwxrwxrwx 1 fhem dialout 15 Mar 3 14:23 certs -> /opt/fhem/certs
lrwxrwxrwx 1 fhem dialout 17 Mar 4 14:03 CHANGED -> /opt/fhem/CHANGED
-rw-r--r-- 1 fhem dialout 97 Mar 4 12:14 configDB.conf
-rw-r--r-- 1 fhem dialout 18432 Mar 4 12:10 configDB.db
lrwxrwxrwx 1 fhem dialout 21 Mar 4 14:00 configDB.pm -> /opt/fhem/configDB.pm
lrwxrwxrwx 1 fhem dialout 17 Mar 3 14:23 contrib -> /opt/fhem/contrib
lrwxrwxrwx 1 fhem dialout 21 Mar 4 14:03 cookies.lwp -> /opt/fhem/cookies.lwp
lrwxrwxrwx 1 fhem dialout 14 Mar 3 14:23 docs -> /opt/fhem/docs
lrwxrwxrwx 1 fhem dialout 14 Mar 3 14:23 FHEM -> /opt/fhem/FHEM
-rw-r--r-- 1 fhem dialout 20469 Feb 7 08:34 fhem2.cfg
lrwxrwxrwx 1 fhem dialout 17 Mar 3 14:29 fhem.pl -> /opt/fhem/fhem.pl
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:23 lib -> /opt/fhem/lib
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 log -> /opt/fhem/log
lrwxrwxrwx 1 fhem dialout 21 Mar 3 14:24 log-archive -> /opt/fhem/log-archive
lrwxrwxrwx 1 fhem dialout 24 Mar 4 14:01 MAINTAINER.txt -> /opt/fhem/MAINTAINER.txt
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 mp3 -> /opt/fhem/mp3
lrwxrwxrwx 1 fhem dialout 20 Mar 3 14:24 restoreDir -> /opt/fhem/restoreDir
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 tmp -> /opt/fhem/tmp
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 www -> /opt/fhem/www
Die beiden Files für die configDB habe ich jeweils kopiert UND für /opt/fhem2 natürlich den Pfad angepasst:
%dbconfig= (
connection => "SQLite:dbname=/opt/fhem2/configDB.db",
user => "",
password => ""
);
Interessant war für mich, das auch im Verzeichnis der Hauptinstanz beide Files (also configDB.db & conf) vorhanden sein mussten, damit ein 'reload 98_configdb' ohne Fehlermeldung im Webinterface der zweiten Instanz aus /opt/fhem2/ durchgelaufen ist.
Noch interessanter war für mich, dass ein 'configdb migrate' im WI der zweiten Instanz ausgeführt, meiner Meinung nach alles in die DB der Hauptinstanz geschrieben hat, also nach /opt/fhem/configDB.db:
pi@fhem:~ $ ls -l /opt/fhem/configDB.db
-rw-r--r-- 1 fhem dialout 182272 Mar 4 14:07 /opt/fhem/configDB.db
pi@fhem:~ $ ls -l /opt/fhem2/configDB.db
-rw-r--r-- 1 fhem dialout 18432 Mar 4 12:10 /opt/fhem2/configDB.db
Obwohl von der Ausgabe her wohl die Daten von fhem2 migriert worden:
Starting migration...
Processing: database initialization
Processing: save config
Processing: save state
Processing: fileimport
importing: ./log/eventTypes2.txt
importing: ./www/gplot/template.gplot
importing: ./www/gplot/templateDB.gplot
importing: ./FHEM/template.layout
importing: ./FHEM/FhemUtils/uniqueID
Migration completed
-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
d:$Id: configDB.pm 27887 2023-08-23 20:13:34Z betateilchen $
c:unknown
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbtype: SQLITE
dbsize: 178.00 KB
-----------------------------------------------------------------
loaded: d23705823bdae4ab9014a64470de785a
lastReorg:
config: 286 entries
Ver 0 saved: Tue Mar 4 14:07:41 2025 def: 34 attr: 206
Ver 1 saved: Sat Jun 1 10:00:24 2019 def: 5 attr: 5
-----------------------------------------------------------------
filesave: 6 files stored in database
-----------------------------------------------------------------
Ist da noch irgendwo fest /opt/fhem/ verdrahtet?
Ich breche jetzt erst einmal ab und betreibe weiter die fhem(2).cfg bis zur Klärung. Ich befürchte, ein kopieren/verschieben der DB nach fhem2 hilft mir nicht ...
Gruß Peter
[EDIT]
Ich befürchte, die Ursache ist 'mein' Softlink Konstrukt...
Und welchen Sinn hat es jetzt, dazu einen zweiten Thread aufzumachen?
Für mich keinen...
Zitat von: PSI69 am 04 März 2025, 14:32:36Interessant war für mich, das auch im Verzeichnis der Hauptinstanz beide Files (also configDB.db & conf) vorhanden sein mussten
Die configDB.db muss da liegen, wo sie laut zugehöriger configDB.conf gesucht wird.
Zitat von: PSI69 am 04 März 2025, 14:32:36Ist da noch irgendwo fest /opt/fhem/ verdrahtet?
Der Pfad ist innerhalb von configDB nirgendwo fest angegeben.
Sinn, na ja, der erste war schon als erledigt geschlossen. War so für mich sinnvoller...
ZitatDie configDB.db muss da liegen, wo sie laut zugehöriger configDB.conf gesucht wird.
Korrekt, so habe ich das verstanden. Und so ist es auch so. Unter /opt/fhem und opt/fhem2 liegen zwei korrekte Paarungen von configDB.db & configDB.conf.
... aber eben unter /opt/fhem2 nur softlinks auf /opt/fhem/configDB.pm und /opt/fhem/FHEM etc. Beim reload von 98_configdb im FHEM System ./fhem2 scheint für mich durch den softlink das Basisverzeichnis das von /opt/fhem zu werden. Jedenfalls klappt ein 'reload 98_configdb' aus /fhem2 heraus nur, wenn unter /fhem auch die beiden configDB files liegen. Und - wie schon geschrieben - ein 'configdb migrate' aus /fhem2 schreibt - trotz korrekter DB cfg unter /fhem2 in die DB unter /fhem.
Ich hoffe, ich habs verständlich ausgedrückt.
Ich gehe fest davon aus, das bei korrekten zwei sauberen Installationen (also ohne softlinks) das Thema erledigt ist, aber eben mit dem Pferdefuß (für mich) zwei völlig getrennte Installationen zu betreiben/zu aktualisieren. Obwohl das - eigentlich - so nicht nötig ist.
Aber ja, der Aufwand dafür hält sich ja doch in Grenzen und ich bin gerade am 'fummeln'...
Peter
Auch nicht erfolgreich... Ich habe nun zwei 'echte' parallele FHEM Verzeichnisse (die wenigen softlinks sollten keine Relevanz haben):
pi@fhem:~ $ ls -l /opt/fhem2
total 816
drwxr-xr-x 2 fhem dialout 4096 Mar 4 17:56 backup
drwxr-xr-x 2 fhem dialout 4096 Mar 4 17:57 cache
lrwxrwxrwx 1 fhem dialout 15 Mar 3 14:23 certs -> /opt/fhem/certs
-rw-r--r-- 1 fhem dialout 441431 Mar 4 18:08 CHANGED
-rw-r--r-- 1 fhem dialout 97 Mar 4 12:14 configDB.conf
-rw-r--r-- 1 fhem dialout 18432 Mar 4 12:10 configDB.db
-rw-r--r-- 1 fhem dialout 46886 Mar 4 18:08 configDB.pm
drwxr-xr-x 51 fhem dialout 4096 Mar 4 17:59 contrib
-rw-r--r-- 1 fhem dialout 17 Mar 4 18:10 cookies.lwp
drwxr-xr-x 4 fhem dialout 4096 Mar 4 18:00 docs
drwxr-xr-x 6 fhem dialout 20480 Mar 4 18:01 FHEM
-rw-r--r-- 1 fhem dialout 20469 Feb 7 08:34 fhem2.cfg
-rwxr-xr-x 1 fhem dialout 174974 Mar 4 18:14 fhem.pl
-rw-r--r-- 1 fhem dialout 18092 Mar 4 18:13 GPL_V2.txt
drwxr-xr-x 3 fhem dialout 4096 Mar 4 18:02 lib
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 log -> /opt/fhem/log
lrwxrwxrwx 1 fhem dialout 21 Mar 3 14:24 log-archive -> /opt/fhem/log-archive
-rw-r--r-- 1 fhem dialout 47157 Mar 4 18:15 MAINTAINER.txt
lrwxrwxrwx 1 fhem dialout 13 Mar 3 14:24 mp3 -> /opt/fhem/mp3
drwxr-xr-x 2 fhem dialout 4096 Mar 4 18:03 restoreDir
lrwxrwxrwx 1 fhem dialout 13 Mar 4 18:06 tmp -> /opt/fhem/tmp
drwxr-xr-x 10 fhem dialout 4096 Mar 4 18:07 www
pi@fhem:~ $ cat /opt/fhem2/configDB.conf
%dbconfig= (
connection => "SQLite:dbname=/opt/fhem2/configDB.db",
user => "",
password => ""
);
Die zweite Instanz wird noch immer aus der ersten per notify gestartet:
defmod nt_StartFhem2 notify global:INITIALIZED "perl /opt/fhem2/fhem.pl /opt/fhem2/fhem2.cfg"
Ein 'configdb migrate' der Instanz aus /fhem2 landet noch immer in der falschen DB:
Starting migration...
Processing: database initialization
Processing: save config
Processing: save state
Processing: fileimport
importing: ./log/eventTypes2.txt
importing: ./www/gplot/template.gplot
importing: ./www/gplot/templateDB.gplot
importing: ./FHEM/template.layout
importing: ./FHEM/FhemUtils/uniqueID
Migration completed
-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
d:$Id: configDB.pm 27887 2023-08-23 20:13:34Z betateilchen $
c:unknown
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbtype: SQLITE
dbsize: 178.00 KB
-----------------------------------------------------------------
loaded: 41516b27f97f112b7a6135813aab594a
lastReorg:
config: 286 entries
Ver 0 saved: Tue Mar 4 18:25:51 2025 def: 34 attr: 206
Ver 1 saved: Sat Jun 1 10:00:24 2019 def: 5 attr: 5
-----------------------------------------------------------------
filesave: 6 files stored in database
-----------------------------------------------------------------
... jetzt habe ich keine Idee mehr. Bekommt der beim Start per 'perl /opt/fhem2/fhem.pl /opt/fhem2/fhem2.cfg' irgendwie noch das aktuelle Verzeichnis der ersten Instanz mit? Wie bekomme ich das raus?
Peter
ZitatBekommt der beim Start per 'perl /opt/fhem2/fhem.pl /opt/fhem2/fhem2.cfg' irgendwie noch das aktuelle Verzeichnis der ersten Instanz mit?
Ja, was denn sonst? :)
ZitatWie bekomme ich das raus?
Z.Bsp. mit
define myPwd notify global:INITIALIZED { Log 1, "My PWD IS:".`pwd` }
Ich schlage vor das Starten anzupassen:
defmod nt_StartFhem2 notify global:INITIALIZED "cd /opt/fhem2;; perl fhem.pl fhem2.cfg"
Zitat von: rudolfkoenig am 04 März 2025, 19:16:16Ich schlage vor das Starten anzupassen:
defmod nt_StartFhem2 notify global:INITIALIZED "cd /opt/fhem2;; perl fhem.pl fhem2.cfg"
@Rudi: Das wird nicht dauerhaft funktionieren, wenn er gerne mit configDB arbeiten möchte... (siehe Threadtitel)
Aber zumindest, um eine Migration durchzuführen, könnte es vielleicht so funktionieren, wenn man die Pfadangaben weglässt und direkt aus dem Verzeichnis startet.
Zwei FHEM Installationen auf dem gleichen Rechner mit configDB habe ich selbst noch nie getestet.
Es gab mal die Idee, mehrere Konfigurationen auf unterschiedlichen hosts (!) in eine gemeinsame configDB zu schreiben, aber die Versuche habe ich auch wegen Nichtwartbarkeit aufgegeben.
Moin zusammen!
Zitatdefine myPwd notify global:INITIALIZED { Log 1, "My PWD IS:".`pwd` }
Ups, so einfach ;D
Zitatdefmod nt_StartFhem2 notify global:INITIALIZED "cd /opt/fhem2;; perl fhem.pl fhem2.cfg"
Das klingt für mich sehr plausibel, aber:
Zitat@Rudi: Das wird nicht dauerhaft funktionieren, wenn er gerne mit configDB arbeiten möchte... (siehe Threadtitel)
Aber zumindest, um eine Migration durchzuführen, könnte es vielleicht so funktionieren, wenn man die Pfadangaben weglässt und direkt aus dem Verzeichnis startet.
Zwei FHEM Installationen auf dem gleichen Rechner mit configDB habe ich selbst noch nie getestet.
Es gab mal die Idee, mehrere Konfigurationen auf unterschiedlichen hosts (!) in eine gemeinsame configDB zu schreiben, aber die Versuche habe ich auch wegen Nichtwartbarkeit aufgegeben.
Was erwartest Du für Probleme?
Und - wahrscheinlich würde es mir dann auch nichts bringen, eine eigene Service Definition für systemctl zu schreiben aka fhem2.service und den Start darüber durchzuführen? Zumindest wird darin ja das Arbeitsverzeichnis vorab gesetzt...
Peter
Moin zusammen!
Nur zur Info: beide Instanzen werden nun über systemctl verwaltet; FHEM update/backup/etc je Instanz klappt. Ich schau mir das jetzt über das WE an und danach gehts weiter mit meinen Versuchen zur configDB...
Peter
Inzwischen hatte ich ein bisschen Zeit, über das Thema nachzudenken.
Genaugenommen und auf das wesentliche reduziert, lautet die eigentliche Frage doch:
Zitat"Kann man FHEM mit configDB in einem anderen Verzeichnis als /opt/fhem betreiben?"
Nach einigem Überlegen kam ich zu dem Schluß, dass ich keinen Grund wüsste, warum das nicht gehen sollte. Also habe ich das mal ausprobiert, um meinen Gedanken zu belegen. Dazu habe ich temporär einen zusätzlichen Server bei AWS mit Debian 12.8 bestellt, auf dem ich die Tests machen wollte.
- Gemäß der Anleitung zur manuellen Installation auf debian.fhem.de das aktuelle nightly installiert
- in der fhem.cfg noch eben ein telnet device angelegt, um das Testen zu erleichtern
- das entstandene Verzeichnis /opt/fhem in /opt/fhem2 umbenannt
- das service-File /etc/systemd/system/fhem.service nach /etc/systemd/system/fhem2.service kopiert
- Im service-File fhem2 das WorkingDirectory=/opt/fhem2 angepasst
- systemctl daemon-reload ausgeführt
- service fhem start ausgeführt
Danach konnte ich mich mit
telnet localhost 7072 zum laufenden FHEM verbinden.
Ein
fheminfo send debug liefert:
Zitatfheminfo send debug
{"FHEMWEB":{"noModel":1},"FileLog":{"noModel":1},"autocreate":{"noModel":1},"eventTypes":{"noModel":1},"notify":{"noModel":1},"system":{"configType":"configFile","os":"linux","perl":"5.36.0","revision":"29736","uniqueID":"cf3..."},"telnet":{"noModel":1}}
Bis hierher also alles gut. FHEM läuft komplett aus /opt/fhem2. Woanders kann es auch nicht laufen, weil es auf dem Rechner das einzige Verzeichnis in /opt ist.
Nächster Schritt: Migration auf configDB.- das config-File für die configDB anlegen. Bei mir hat /opt/fhem2/configDB.conf folgenden Inhalt:
%dbconfig= (
connection => "SQLite:dbname=/opt/fhem2/sqldb/configDB.db",
user => "",
password => ""
);
- eine leere configDB.db in /opt/fhem2/sqldb/ anlegen
Danach wieder per telnet zum FHEM verbinden und
configdb migrate ausführen.
Ergebnis:
Zitat
Starting migration...
Processing: database initialization
Processing: save config
Processing: save state
Processing: fileimport
importing: ./log/eventTypes.txt
importing: ./www/gplot/template.gplot
importing: ./www/gplot/templateDB.gplot
importing: ./FHEM/template.layout
importing: ./FHEM/FhemUtils/uniqueID
Migration completed
-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
d:$Id: configDB.pm 27887 2023-08-23 20:13:34Z betateilchen $
c:unknown
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem2/sqldb/configDB.db
dbtype: SQLITE
dbsize: 24.00 KB
-----------------------------------------------------------------
loaded: ae8e0a5381adc561d4b117aed916d880
lastReorg:
config: 30 entries
Ver 0 saved: Sat Mar 8 10:26:02 2025 def: 6 attr: 7
Ver 1 saved: by cfgDB_Init def: 3 attr: 6
-----------------------------------------------------------------
filesave: 6 files stored in database
-----------------------------------------------------------------
Also auch das hat problemlos funktioniert.
Umstellen von fhem.cfg auf configDB- FHEM beenden service fhem stop
- im service-File die Umstellung auf configDB vornehmen (entsprechende Zeile ExecStart= aktivieren, Zeile mit fhem.cfg deaktivieren)
- systemctl daemon-reload ausführen
- service fhem start ausführen
Danach wieder per telnet zu FHEM verbinden.
Zitat
fheminfo send debug
{"FHEMWEB":{"noModel":1},"FileLog":{"noModel":1},"autocreate":{"noModel":1},"configDB":{"SQLITE":1},"eventTypes":{"noModel":1},"notify":{"noModel":1},"system":{"configType":"configDB","os":"linux","perl":"5.36.0","revision":"29736","uniqueID":"cf3..."},"telnet":{"noModel":1}}
configdb info
-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
d:$Id: configDB.pm 27887 2023-08-23 20:13:34Z betateilchen $
c:$Id: 98_configdb.pm 28750 2024-04-05 10:10:51Z betateilchen $
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem2/sqldb/configDB.db
dbtype: SQLITE
dbsize: 24.00 KB
-----------------------------------------------------------------
loaded: ae8e0a5381adc561d4b117aed916d880
lastReorg:
config: 30 entries
Ver 0 saved: Sat Mar 8 10:26:02 2025 def: 6 attr: 7
Ver 1 saved: by cfgDB_Init def: 3 attr: 6
-----------------------------------------------------------------
filesave: 6 files stored in database
-----------------------------------------------------------------
Fazit: Works as designed.
ZitatFazit: Works as designed.
Klingt gut - Du hast schneller die Zeit gefunden / Dir genommen als ich. Das Wetter ist super, die Gartensaison hat begonnen :). Dann steht ja meiner Migration überhaupt nichts mehr im Weg! Vielen Dank für den Test & ein schönes Wochenende!
Peter
Moin! Ich musste gestern Nachmittag doch noch 'basteln'; passt...
Nur folgendes ist mir im Zusammenhang mit der configDB aufgefallen:
defmod SYS_Backup dummy
attr SYS_Backup alias FHEM Backup ausführen
attr SYS_Backup group Backup
attr SYS_Backup room Infrastruktur->FHEM
attr SYS_Backup webCmd Ausführen
setstate SYS_Backup FHEM-20250208_225000.tar.gz\nFHEM-20250209_225000.tar.gz\nFHEM-20250210_225000.tar.gz\nFHEM-20250211_225000.tar.gz\nFHEM-20250212_225000.tar.gz\nFHEM-20250213_225002.tar.gz\nFHEM-20250214_225000.tar.gz\nFHEM-20250215_225000.tar.gz\nFHEM-20250216_225000.tar.gz\nFHEM-20250217_225000.tar.gz\nFHEM-20250218_225000.tar.gz\nFHEM-20250219_225000.tar.gz\nFHEM-20250220_225000.tar.gz\nFHEM-20250221_225000.tar.gz\nFHEM-20250222_225000.tar.gz\nFHEM-20250223_225000.tar.gz\nFHEM-20250224_225000.tar.gz\nFHEM-20250225_225000.tar.gz\nFHEM-20250226_225000.tar.gz\nFHEM-20250227_225000.tar.gz\nFHEM-20250228_225000.tar.gz\nFHEM-20250301_225000.tar.gz\nFHEM-20250302_225000.tar.gz\nFHEM-20250303_225000.tar.gz\nFHEM-20250304_225000.tar.gz\nFHEM-20250305_225002.tar.gz\nFHEM-20250306_225000.tar.gz\nFHEM-20250307_225000.tar.gz\nFHEM-20250308_225000.tar.gz\nFHEM-20250309_225001.tar.gz
setstate SYS_Backup 2025-03-09 22:50:01 state FHEM-20250208_225000.tar.gz\nFHEM-20250209_225000.tar.gz\nFHEM-20250210_225000.tar.gz\nFHEM-20250211_225000.tar.gz\nFHEM-20250212_225000.tar.gz\nFHEM-20250213_225002.tar.gz\nFHEM-20250214_225000.tar.gz\nFHEM-20250215_225000.tar.gz\nFHEM-20250216_225000.tar.gz\nFHEM-20250217_225000.tar.gz\nFHEM-20250218_225000.tar.gz\nFHEM-20250219_225000.tar.gz\nFHEM-20250220_225000.tar.gz\nFHEM-20250221_225000.tar.gz\nFHEM-20250222_225000.tar.gz\nFHEM-20250223_225000.tar.gz\nFHEM-20250224_225000.tar.gz\nFHEM-20250225_225000.tar.gz\nFHEM-20250226_225000.tar.gz\nFHEM-20250227_225000.tar.gz\nFHEM-20250228_225000.tar.gz\nFHEM-20250301_225000.tar.gz\nFHEM-20250302_225000.tar.gz\nFHEM-20250303_225000.tar.gz\nFHEM-20250304_225000.tar.gz\nFHEM-20250305_225002.tar.gz\nFHEM-20250306_225000.tar.gz\nFHEM-20250307_225000.tar.gz\nFHEM-20250308_225000.tar.gz\nFHEM-20250309_225001.tar.gz
Mich 'stören' hier die '\n'.
Gesetzt wird das durch folgendes:
defmod nt_SYS_BackupRun notify SYS_Backup:* {\
fhem("backup");;\
opendir DIR, "./backup" or die $!;;\
my @mybackups =();;\
while(my $file = readdir DIR){ \
next if($file eq "." || $file eq "..");;\
push(@mybackups,$file);;\
}\
closedir DIR;;\
@mybackups = join("\
", sort(@mybackups) );;\
fhem("set SYS_Backup @mybackups");;\
}
attr nt_SYS_BackupRun alias Benachrichtigung FHEM Backup ausführen
attr nt_SYS_BackupRun group Backup
attr nt_SYS_BackupRun room Infrastruktur->FHEM
setstate nt_SYS_BackupRun 2025-03-09 22:50:01
setstate nt_SYS_BackupRun 2025-03-10 03:32:09 state active
setstate nt_SYS_BackupRun 2025-03-09 22:50:01 triggeredByDev SYS_Backup
setstate nt_SYS_BackupRun 2025-03-09 22:50:01 triggeredByEvent Ausführen
Zur FHEM Laufzeit manuell angestoßen, wird das Reading auch sauber erzeugt:
defmod SYS_Backup dummy
attr SYS_Backup alias FHEM Backup ausführen
attr SYS_Backup group Backup
attr SYS_Backup room Infrastruktur->FHEM
attr SYS_Backup webCmd Ausführen
setstate SYS_Backup FHEM-20250209_225000.tar.gz\
FHEM-20250210_225000.tar.gz\
FHEM-20250211_225000.tar.gz\
FHEM-20250212_225000.tar.gz\
FHEM-20250213_225002.tar.gz\
FHEM-20250214_225000.tar.gz\
FHEM-20250215_225000.tar.gz\
FHEM-20250216_225000.tar.gz\
FHEM-20250217_225000.tar.gz\
FHEM-20250218_225000.tar.gz\
FHEM-20250219_225000.tar.gz\
FHEM-20250220_225000.tar.gz\
FHEM-20250221_225000.tar.gz\
FHEM-20250222_225000.tar.gz\
FHEM-20250223_225000.tar.gz\
FHEM-20250224_225000.tar.gz\
FHEM-20250225_225000.tar.gz\
FHEM-20250226_225000.tar.gz\
FHEM-20250227_225000.tar.gz\
FHEM-20250228_225000.tar.gz\
FHEM-20250301_225000.tar.gz\
FHEM-20250302_225000.tar.gz\
FHEM-20250303_225000.tar.gz\
FHEM-20250304_225000.tar.gz\
FHEM-20250305_225002.tar.gz\
FHEM-20250306_225000.tar.gz\
FHEM-20250307_225000.tar.gz\
FHEM-20250308_225000.tar.gz\
FHEM-20250309_225001.tar.gz\
FHEM-20250310_063139.tar.gz
setstate SYS_Backup 2025-03-10 06:31:39 state FHEM-20250209_225000.tar.gz\
FHEM-20250210_225000.tar.gz\
FHEM-20250211_225000.tar.gz\
FHEM-20250212_225000.tar.gz\
FHEM-20250213_225002.tar.gz\
FHEM-20250214_225000.tar.gz\
FHEM-20250215_225000.tar.gz\
FHEM-20250216_225000.tar.gz\
FHEM-20250217_225000.tar.gz\
FHEM-20250218_225000.tar.gz\
FHEM-20250219_225000.tar.gz\
FHEM-20250220_225000.tar.gz\
FHEM-20250221_225000.tar.gz\
FHEM-20250222_225000.tar.gz\
FHEM-20250223_225000.tar.gz\
FHEM-20250224_225000.tar.gz\
FHEM-20250225_225000.tar.gz\
FHEM-20250226_225000.tar.gz\
FHEM-20250227_225000.tar.gz\
FHEM-20250228_225000.tar.gz\
FHEM-20250301_225000.tar.gz\
FHEM-20250302_225000.tar.gz\
FHEM-20250303_225000.tar.gz\
FHEM-20250304_225000.tar.gz\
FHEM-20250305_225002.tar.gz\
FHEM-20250306_225000.tar.gz\
FHEM-20250307_225000.tar.gz\
FHEM-20250308_225000.tar.gz\
FHEM-20250309_225001.tar.gz\
FHEM-20250310_063139.tar.gz
Führe ich jetzt ein 'systemctl stop fhem.service' & 'systemctl start fhem.service' aus - was der Backup Job in der Nacht u.a. erledigt - dann werden die '\n' wieder (aus der configDB?) gesetzt.
Gruß Peter