"Neues" Verhalten save und restoredirs

Begonnen von Otto123, 16 März 2018, 12:16:43

Vorheriges Thema - Nächstes Thema

Otto123

Hallo,

mit ist gerade aufgefallen: Seit November 2017 (wenn ich richtig liege) sichert save ja die fhem.cfg nach restoreDir, pro Tag ein Verzeichnis und dort nur die letzte Version. Per default 3 Verzeichnisse.

Früher habe ich die Hauptinstanz, sagen wir mal jeden Monat mit update versorgt und hatte damit 3 Monate zurück alte Stände auf die man einfach zurück konnte, auch wenn man Fehler erst nach ein paar Tagen festgestellt hat.

Jetzt drücke ich einmal am Tag save weil ich die geänderte Konfiguration sichern will und meine Chance auf restore eines älteren Versionsstandes von FHEM ist nach 3 Tagen dahin.  :o

Ich kann jetzt restoredirs hochsetzen ...

Wäre es nicht besser, bei save nur die fhem.cfg ins letzte restoredir (was generell nur bei update erzeugt wird) mit einem Zeitstempel Zusatz zu sichern?
Damit hätte man alle Versionen der fhem.cfg und die Module vorm letzten update.

Ob man die Versionierung der fhem.cfg beim restore Befehl berücksichtigen muss bezweifle ich.

Auf alle Fälle ist der default Wert 3 für restoredirs für mich fragwürdig.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CQuadrat

Ich schließe mich dieser Meinung und dem Lösungsvorschlag von Otto an!

Auch mir verhageln regelmäßige Saves und die damit verbundene Versionierung der fhem.cfg die Langzeitarchivierung der Module bzw. des gesamten Fhem-Versionsstandes.

FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

dev0

Ich fände es auch sinnvoll, dass die fhem.cfg's getrennt gesichert werden und die "restore" Verzeichnisse ausschließlich vom Backup verwendet würden. Mir ist es aber nicht so wichtig, dass ich mich einarbeite und einen Patch schreiben möchte... ;)

rudolfkoenig

Das Problem an sich ist mir schon laenger bekannt, ich habe aber lange gezeogert, weil ich keine einfache Loesung gefunden habe.

Mein Problem mit dem Vorschlag von Otto123 ist, dass es nicht beschreibt, wie die Kopien zu loeschen sind (ich will nicht unendlich viele aufheben, und ich wette dass es Benutzer gibt, die minuetlich save aufrufen), und fuers Restaurieren mit restore muesste man auch was Neues bauen. Weiterhin ist es nicht intuitiv nach einem aktuellen fhem.cfg in einem alten restoreDir Verzeichnis zu suchen. Btw.: save speichert nicht nur fhem.cfg, sondern auch fhem.save.

Ich habe jetzt Folgendes eingebaut/geaendert:
- update speichert ersetzte Dateien unter restoreDir/update/YYYY-MM-DD
- save speichert die Konfiguration unter restoreDir/save/YYYY-MM-DD
- die Anzahl der Datums-Verzeichnisse haengt wie bisher von "attr global restoreDirs" ab, wird aber in update und save separat gezaehlt.
- die alten Verzeichnisse (restoreDir/YYYY-MM-DD) bleiben, sie koennen manuell geloescht werden
- restore restauriert nur dann, falls das Argument YYYY-MM-DD enthaelt, sonst wir der Inhalt angezeigt.

dev0


Otto123

Guten Morgen,

ja klingt gut, danke auch von mir.
Ich wollte nicht so "aufwendig" denken und vorschlagen. :D

Ich für meinen Teil sehe ja meine fhem.cfg in erster Linie in meiner Verantwortung. Ich überlege ja bei jeder Änderung, gehört das gespeichert oder nicht.

Mit dem jetzigen Ansatz ist der alte Zustand für die update Situation wiederhergestellt und die fhem.cfg und fhem.save wird unabhängig täglich bei save gesichert. Allerdings nur der letzte Stand des Tages.

Was ich damit sagen will: Wir rücken damit die Konfiguration etwas aus dem notwendigen Aufmerksamkeitsfocus des Anwenders allerdings ist es keine perfekte Versionierung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pnemenz

Ich weiß nicht, ob es etwas mit dem heutigen Update zu tun hat, aber wenn ich über ein Script folgendes Aufrufe:
/usr/bin/perl /opt/fhem/fhem.pl 7072 update check
bekomme ich folgeden Antwort:
Prototype mismatch: sub main::restoreDir_init (;$) vs ($) at /opt/fhem/fhem.pl line 5441.
nothing to do...

Bis heute Früh ging das ohne Prototype mismach..
LG
Peter

rudolfkoenig

ZitatBis heute Früh ging das ohne Prototype mismach..
Stimmt, und ab einem update morgen sollte das wieder gefixt sein.
Ist mir vorhin selbst aufgefallen.

Tueftler1983

hallo habe ein Problem bei mir wird kein Update mehr ausgeführt.

im Log habe ich jetzt das stehen
2018.03.18 23:17:15 1:
2018.03.18 23:17:15 1: fhem
Undefined subroutine &main::restoreDir_init called at ./FHEM/98_update.pm line 274.


Habe schon einen Beitrag dazu:
https://forum.fhem.de/index.php/topic,85945.0.html

Bitte um Hilfe

Tueftler1983

Problem gelöst, habe von github die neue fhem.pl runtergeladen und auf den pi geschoben. danach lief ein update normal durch!

Otto123

Moin,

jetzt habe ich mit meiner Anregung auch noch ne Reihe von Problemen und Aufwand los getreten - peinlich.  :-[

Tschuldigung
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

otto, das hatte nichts mit deiner sinnvollen anregung zu tun.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

nils_

Zitat von: Tueftler1983 am 19 März 2018, 13:48:35
Problem gelöst, habe von github die neue fhem.pl runtergeladen und auf den pi geschoben. danach lief ein update normal durch!

github ??
viele Wege in FHEM es gibt!

rudolfkoenig

ZitatProblem gelöst, habe von github die neue fhem.pl runtergeladen und auf den pi geschoben. danach lief ein update normal durch!

1. keine Ahnung wer wenn github aktualisiert, offiziell werden Code-Aenderungen in subversion auf svn.fhem.de eingecheckt, und das wird taeglich vor 8:00 fuer das FHEM-update bereitgestellt
2. wenn nach einem update Probleme gibt, dann sollte man im restoreDir die alte Version suchen und zurueckkopieren. Wenn FHEM noch einigermassen laeuft, dann mit dem restore FHEM Befehl.
3. das beschriebene Problem kilngt sehr nach selektiven update einzelner Dateien, das ist weder getestet, noch unterstuetzt.

Tueftler1983

Okay war auch nicht die Lösung.. denn nach dem Update was ohne probleme durch lief geht garnix mehr. fhem ist nicht mehr erreichbar.
auch ein rückspielen der alten dateien hilft nicht

lade brade ein altes Backup vom dezember hoch mit einer blanken fhem.cfg.. das klappt und läuft.

Jetzt ein Update und danach will ich meine cfg wieder hochladen


Tueftler1983

#15
also mit einer originalen fhem.cfg startet fhem und man kann drauf zugreifen.

Mit meiner cfg startet fhem auch und wenn ich drauf zugreifen will kommt erst noch der Sicherheitshinweis das das Zertifikat nicht sicher ist und wenn ich dann auf "trotzdem weriter zu https://192.168.2.172:8083/fhem klicke hängt sich fhem auf und es kommt die meldung seite nicht erreichbar.

hier noch ein Log auszug vom start bis absturz:

2018.03.19 19:46:33 3: UWZ Unwetter: Run.1043 Done fetching data
2018.03.19 19:49:23 1: Including fhem.cfg
2018.03.19 19:49:23 3: telnetPort: port 7072 opened
2018.03.19 19:49:23 3: WEB: port 8083 opened
2018.03.19 19:49:23 3: WEBphone: port 8084 opened
2018.03.19 19:49:23 3: WEBtablet: port 8085 opened
2018.03.19 19:49:23 2: eventTypes: loaded 2702 events from ./log/eventTypes.txt
2018.03.19 19:49:24 3: WEBgast: port 8091 opened
2018.03.19 19:49:25 3: Opening Funken device 127.0.0.1:5000
2018.03.19 19:49:25 3: Funken device opened
2018.03.19 19:49:26 3: Pool: Defined with URL http://192.168.2.90/p2? and interval 60
2018.03.19 19:49:26 3: Pool_Pumpe: Defined with URL http://192.168.2.90/p0? and interval 15

2018.03.19 19:49:26 3: Carport: Defined with URL http://192.168.2.90/p4? and interval 15
2018.03.19 19:49:26 3: TelegramBot_Define FHEMBOT: called
2018.03.19 19:49:27 3: [STV] You are using a deprecated MAC detection mechanism using ifconfig.
2018.03.19 19:49:27 3: [STV] Please install Pearl Modules libnet-address-ip-local-perl and libio-interface-perl
2018.03.19 19:49:27 2: FRITZBOX FritzBox: Define.254 Modul functionality limited because of missing perl modules: Net::Telnet
2018.03.19 19:49:28 2: ESPEasy espBridge: Opening bridge port tcp/8383 (v1.38)
2018.03.19 19:49:28 3: espBridge: port 8383 opened
2018.03.19 19:49:28 3: AMADCommBridge (AMADbridge) - defined AMADCommBridge with Socketport 8190
2018.03.19 19:49:28 3: AMADbridge: port 8190 opened
2018.03.19 19:49:28 3: AMADCommBridge (AMADbridge) - Socket opened.
2018.03.19 19:49:28 3: WARNING: HolgerS5 attribute ping_count was renamed to pingCount
2018.03.19 19:49:28 3: TABLETUI: new ext defined infix:ftui/: dir:./www/tablet/:
2018.03.19 19:49:28 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui/ ...
2018.03.19 19:49:29 1: PERL WARNING: Prototype mismatch: sub main::DISCOVERGY_Get ($@) vs ($$@) at ./FHEM/70_DISCOVERGY.pm line 191, <$fh> line 921.
2018.03.19 19:49:29 3: Discovergy: Defined with URL https://my.discovergy.com/json/Api.getLive?meterId=EASYMETER_60668641&user=holgerfranzke@gmx.net&password=&numOfSeconds=1 and interval 30
2018.03.19 19:49:29 3: Discovergy2: Defined with URL https://my.discovergy.com/json/Api.getYear?meterId=EASYMETER_60668641&user=holgerfranzke@gmx.net&password=&year=2018 and interval 40
2018.03.19 19:49:29 3: HourCounter HourCounter Initialize.220 Init Done with Version 1.0.1.2 - 24.12.2014
2018.03.19 19:49:29 0: HourCounter c_Heizung Define.228 parameters: c_Heizung HourCounter Heizungstatus text:on Heizungstatus text:offÂ
2018.03.19 19:49:29 3: AMADDevice (TabletWohnzimmer) - I/O device is AMADbridge
2018.03.19 19:49:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 203, <$fh> line 1102.
2018.03.19 19:49:29 3: AMADDevice (TabletWohnzimmer) - defined with AMAD_ID: 1513378952374 on port
2018.03.19 19:49:29 3: AMADDevice (HolgerDooge) - I/O device is AMADbridge
2018.03.19 19:49:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 203, <$fh> line 1116.
2018.03.19 19:49:29 3: AMADDevice (HolgerDooge) - defined with AMAD_ID: 1514365744296 on port
2018.03.19 19:49:29 3: AMADDevice (Lea_Tablet) - I/O device is AMADbridge
2018.03.19 19:49:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 203, <$fh> line 1118.
2018.03.19 19:49:29 3: AMADDevice (Lea_Tablet) - defined with AMAD_ID: 1514555365802 on port
2018.03.19 19:49:29 1: PERL WARNING: Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 1146.
2018.03.19 19:49:29 3: TABLETUI2: new ext defined infix:ftui2/: dir:./www/tablet2/:
2018.03.19 19:49:29 3: Registering HTTPSRV TABLETUI2 for URL /ftui2   and assigned link ftui2/ ...
2018.03.19 19:49:29 1: PERL WARNING: TASMOTA::DEVICE::Expand() called too early to check prototype at ./FHEM/10_TASMOTA_DEVICE.pm line 279, <$fh> line 1173.
2018.03.19 19:49:29 1: PERL WARNING: TASMOTA::DEVICE::Expand() called too early to check prototype at ./FHEM/10_TASMOTA_DEVICE.pm line 285, <$fh> line 1173.
2018.03.19 19:49:29 1: Including /media/usb/log/fhem.save
2018.03.19 19:49:30 3: No I/O device found for SonoffRF
2018.03.19 19:49:30 3: Opening Moskito device 192.168.2.172:1883
2018.03.19 19:49:30 3: Moskito device opened
2018.03.19 19:49:30 1: usb create starting
2018.03.19 19:49:30 3: Probing CUL device /dev/ttyAMA0
2018.03.19 19:49:30 3: Probing TCM_ESP3 device /dev/ttyAMA0
2018.03.19 19:49:31 3: Probing ZWDongle device /dev/ttyAMA0
2018.03.19 19:49:31 3: Probing FRM device /dev/ttyAMA0
2018.03.19 19:49:36 1: usb create end
2018.03.19 19:49:36 0: Featurelevel: 5.8
2018.03.19 19:49:36 0: Server started with 301 defined entities (fhem.pl:16442/2018-03-18 perl:5.020002 os:linux user:fhem pid:10309)
2018.03.19 19:49:36 1: PERL WARNING: Unrecognized escape \M passed through in regex; marked by <-- HERE in m/\M <-- HERE ontag/ at (eval 250) line 1.
2018.03.19 19:49:36 3: eval: { my $val = (ReadingsVal("$name","next_weekday","0"));  $val =~ s/\Montag/Mo/; $val =~ s/\Dienstag/Di/; $val =~ s/\Mittwoch/Mi/; $val =~ s/\Donnerstag/Do/; return $val;}
2018.03.19 19:49:36 1: PERL WARNING: Unrecognized escape \M passed through in regex; marked by <-- HERE in m/\M <-- HERE ittwoch/ at (eval 250) line 1.
2018.03.19 19:49:36 3: eval: { my $val = (ReadingsVal("$name","next_weekday","0"));  $val =~ s/\Montag/Mo/; $val =~ s/\Dienstag/Di/; $val =~ s/\Mittwoch/Mi/; $val =~ s/\Donnerstag/Do/; return $val;}
2018.03.19 19:49:37 3: DbLog logdb - Creating Push-Handle to database SQLite:dbname=/media/usb/log/fhem.db with user
2018.03.19 19:49:37 3: DbLog logdb - Push-Handle to db SQLite:dbname=/media/usb/log/fhem.db created
2018.03.19 19:49:37 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at (eval 258) line 1.
2018.03.19 19:49:37 3: eval: di_Bodenfeuchte_Text: warning in condition c01
2018.03.19 19:49:37 1: 192.168.2.30:55000 reappeared (Wohnzimmer_TV)
2018.03.19 19:49:37 1: 192.168.2.173:9090 reappeared (Media2)
2018.03.19 19:49:37 3: ESPEasy: set ESP4_RGB rgb
2018.03.19 19:49:37 2: ESPEasy ESP4_RGB: Missing argument: 'set ESP4_RGB rgb '
2018.03.19 19:49:37 2: di_ESP4_RGB_REON: set  ESP4_RGB rgb : Missing argument: rgb needs at least 1 parameter(s)
Usage: 'set ESP4_RGB rgb <rrggbb> [fadetime] [delay +/-ms]'
2018.03.19 19:49:41 1: FHEMWEB SSL/HTTPS error:  SSL accept attempt failed error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number (peer: 192.168.2.172)
2018.03.19 19:49:41 3: UWZ Unwetter: Run.1043 Done fetching data
2018.03.19 19:49:41 1: PERL WARNING: Unrecognized escape \M passed through in regex; marked by <-- HERE in m/\M <-- HERE ontag/ at (eval 409) line 1.
2018.03.19 19:49:41 3: eval: { my $val = (ReadingsVal("$name","next_weekday","0"));  $val =~ s/\Montag/Mo/; $val =~ s/\Dienstag/Di/; $val =~ s/\Mittwoch/Mi/; $val =~ s/\Donnerstag/Do/; return $val;}
2018.03.19 19:49:41 1: PERL WARNING: Unrecognized escape \M passed through in regex; marked by <-- HERE in m/\M <-- HERE ittwoch/ at (eval 409) line 1.
2018.03.19 19:49:41 3: eval: { my $val = (ReadingsVal("$name","next_weekday","0"));  $val =~ s/\Montag/Mo/; $val =~ s/\Dienstag/Di/; $val =~ s/\Mittwoch/Mi/; $val =~ s/\Donnerstag/Do/; return $val;}
2018.03.19 19:49:44 0: HourCounter c_Heizung Run.598 first run done countsOverall:0
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_AMADDevice.pm line 380.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 290.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/73_AMADCommBridge.pm line 291.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at FHEM/HttpUtils.pm line 116.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/HttpUtils.pm line 304.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at FHEM/HttpUtils.pm line 306.
2018.03.19 19:49:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/HttpUtils.pm line 313.
Can't use an undefined value as a subroutine reference at FHEM/HttpUtils.pm line 869.

Otto123

Das ist jetzt aber Thread gekapert.  :o Mach dazu besser etwas eigenes auf.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Tueftler1983

stimmt sorry.
wollte eigentlich nur das Rudolfkoenig auf mein Problem aufmerksam wird.... weiter gehts in meinem Thead dazu.....

https://forum.fhem.de/index.php/topic,85945.30.html

nils_

#18
@Tueftler1983:
editier mal bitte deine logauszüge!
deine passwörter solltest du rausnehmen, und DRINGEND ändern!!! (auch für alle anderen accounts)
viele Wege in FHEM es gibt!

chris1284

#19
auch hier kannst du dein pw rausnehmen https://forum.fhem.de/index.php?topic=85945.15