Hauptmenü

fhem.cfg - 0 Bytes

Begonnen von pirmanji, 26 September 2014, 17:20:48

Vorheriges Thema - Nächstes Thema

pirmanji

Hallo,

erst einmal allen Entwicklern meinen herzlichen Dank! Ich bin seit ca. 2 Wochen begeisteter FHEM Einsteiger.

Ich hatte heute ein Problem mit FHEM, das vielleicht nicht sehr häufig auftaucht:
Na dem Speichern über das Webfrontend war die fhem.cfg 0 Bytes groß (zum Glück hatte ich Backups). Es hat einen Augenblick gedauert, bis ich kappiert habe, dass die SD-Card meines Raspberries komplett voll war.
Eine Abfrage vor dem Speichern der fhem.cfg, ob noch genügend Speicherplatz frei ist und andernfalls eine Fehlermeldung auszugeben (am besten die fhem.cfg nochmal im Klartext unten drunter - dann kann man sie auch in schlimmeren Fällen ggf. via Copy & Paste retten), könnte vor unangenehmen Überraschungen schützen.

Viele Grüße,
Christian
Raspberry Pi 3 + COC SlowRF 868.30MHz (FS20 S8-3 + 2x DS18B20) + 1x SCC SlowRF 433.92MHz (3x TX17 + 1x TX3) + JeeLink (4x PCA301) + MaxCube

rudolfkoenig

Habe die Rueckgabewerte abgefragt und gemeldet und mit "limit filesize" getestet, scheint zu funktionieren.
Ab morgen per update.

betateilchen

Ich bin eigentlich dagegen, an dieser Stelle etwas zu ändern.

Zitat von: pirmanji am 26 September 2014, 17:20:48
Eine Abfrage vor dem Speichern der fhem.cfg, ob noch genügend Speicherplatz frei ist

Und wie frage ich vor dem Speichern ab, ob in den nächsten drei Sekunden nicht der Strom ausfällt?

Hey - das Vollwerden eines Speichermediums sollte man über das Betriebssystems abfangen und entsprechend reagieren (z.B. eine Mail an root verschicken, wenn der freie Speicherplatz unter 5% fällt) und die Speicherplatzverwaltung ausserhalb von fhem sollte auch ausserhalb von fhem bleiben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Man kann aber die Rueckgabewerte von close auswerten und als Fehlermeldung zurueckliefern.
Wenn man die Meldung sieht, dann kann man in ruhe Speicher freigeben, und dann nochmal auf Save druecken.

betateilchen

Ich möchte an dieser Stelle ausdrücklich darauf hinweisen, dass Du nun an dieser Stelle wieder eine Ungleichbehandlung zwischen fhem.cfg und configDB einführst, die Du selbst ja immer gerne vermieden haben wolltest. Denn für configDB Anwender funktioniert Deine Prüfung nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Achso: Wo prüfst Du eigentlich, ob der Fehler nicht schon beim WriteStatefile auftritt, bevor es überhaupt zum Wegschreiben der Konfiguration selbst kommt?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ich kann keine Ungleichbehandlung erkennen, CommandSave liefert etwaige Fehlermeldungen von cfgDB_SaveCfg zurueck.

WriteStateFile: Danke fuer den Hinweis, der Rueckgabewert wurde bisher in CommandSave ignoriert, habs aber jetzt auch geaendert. Fuer WriteStateFile muss cfgDB_SaveState eine Fehlermeldung zurueckliefern, sie wird ab sofort auch ausgewertet, bisher wurde sie leider auch explizit ignoriert.