FHEM Forum

FHEM => Sonstiges => Thema gestartet von: betateilchen am 25 März 2018, 21:02:01

Titel: [configDB] FHEM im rescue-Modus starten
Beitrag von: betateilchen am 25 März 2018, 21:02:01
In äußerst seltenen Fällen kann es vorkommen, dass beispielsweise durch eine falsch definierte Funkhardware oder sonstige Schnittstelle fhem an einem korrekten Start gehindert wird.

Um auch Anwendern mit configDB eine Möglichkeit zu bieten, ihr fhem wieder zu "reparieren", gibt es die Möglichkeit, FHEM in einem von verschiedenen Rettungsmodi zu starten, um dann eine vorherige (funktionierende) Version aus der configDB wiederherzustellen.

Die Konfiguration eines rescue modes erfolgt ab sofort in der ohnehin vorhandenen Konfigurationsdatei configDB.conf

Folgende rescue modes stehen zur Verfügung


Die Parameter werden in der Konfigurationsdatei in folgender Form eingetragen:


%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/sqldb/configDB.db",
user => "",
password => "",
#nostate => "1",
#rescue => "1",
#loadversion => "7",
);


(natürlich ohne die Kommentarzeichen am Anfang!)

Nach dem Eintragen einer rescue-Option muss FHEM neu gestartet werden.

Nach erfolgreicher Reparatur muss natürlich vor dem nächsten FHEM Start die Konfigurationszeile wieder entfernt oder zumindest auskommentiert und FHEM danach neu gestartet werden!

Damit hoffe ich, im einen oder anderen Katastrophenfall eine Lösung zu bieten, sein FHEM wieder zu reparieren, wenn man sich in der Konfiguration einmal wirklich komplett verrannt hat.
Titel: [configDB] FHEM im rescue-Modus starten
Beitrag von: betateilchen am 26 September 2022, 11:59:21
Seit Juli 2022 gibt es noch eine weitere Option, mit der man einzelne Devices beim Start temporär ausschließen kann, falls man deren Namen kennt. Beispielsweise, wenn eine falsch durchgeführte Definition einen FHEM-Start verhindert.

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



In manchen Problemsituationen kann es hilfreich sein, ein einzelnes device beim Systemstart nicht anzulegen.
Das geht ... auch in configDB relativ einfach mit einem zusätzlichen Eintrag in der Konfigurationsdatei configDB.conf


%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/sqldb/configDB.db",
user => "",
password => "",
exclude => "test1,test2",
);


Der Eintrag "exclude" enthält eine kommagetrennte Liste mit device-Namen, die beim Starten nicht angelegt werden sollen.

2022.07.14 18:33:09 1: configDB excluding test1 (define test1 dummy)

Die Namen müssen korrekt eingetragen werden, das gilt auch für die Groß-/Kleinschreibung
Die Konfiguration selbst wird nicht verändert
Nicht vergessen, den exclude-Eintrag aus der Konfiguration wieder zu entfernen, wenn man das eigentliche Problem gelöst hat
Beim Starten wird FHEM trotzdem versuchen, alle readings zu setzen - auch die für das ausgeschlossene device. Dazu kommt es zu Fehlermeldungen wegen des nicht vorhandenen device. Diese Meldungen können getrost ignoriert werden. Das Unterdrücken dieses Verhalten würde einen unverhältnismäßig hohen Eingriff in die Logik erfordern, den ich mir einfach erspart habe.