Autor Thema: [configDB] fhem im rescue-Modus starten  (Gelesen 1673 mal)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13431
  • Das "S" in "IoT" steht für "Security"
[configDB] fhem im rescue-Modus starten
« am: 01 Januar 2016, 19:11:31 »
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 ab dem morgigen Update, das fhem in einem Rettungsmodus zu starten, um dann eine vorherige (funktionierende) Version aus der configDB wiederherzustellen.

Um den Rettungsmodus zu starten, sind grundsätzlich folgende Schritte auf der Systemkonsole notwendig:

  • alle zu fhem gehörenden perl Prozesse beenden: "killall -9 perl"
  • Systemvariable cfgDB_rescue setzen: "export cfgDB_rescue=1"
  • fhem von der Systemkonsole starten: "perl fhem.pl configDB"

Danach kann über die Standardports (WEB:8083, telnet:7072) auf ein minimales fhem zugegriffen werden.
Mit "configdb list" kann man sich eine Liste der in der Datenbank verfügbaren fhem Konfigurationen anzeigen lassen.
Mit "configdb recover 3" kann die Version #3 zur aktuellen Version in der Datenbank abgelegt werden. Achtung: diese Konfiguration wird nicht automatisch geladen!

Um fhem dann mit dieser wiederhergestellten Version wieder zu starten, sind folgende Schritte nötig:

  • alle zu fhem gehörenden perl Prozesse beenden: "killall -9 perl"
  • Systemvariable cfgDB_rescue löschen: "unset cfgDB_rescue"
  • fhem von der Systemkonsole starten: "perl fhem.pl configDB"

Ein "shutdown restart" reicht nicht aus!


Mit dieser neuen Funktionalität hoffe ich, im einen oder anderen Fall eine Lösung zu bieten, sein fhem wieder zu reparieren, wenn man sich mal wirklich komplett verrannt hat.

Nächster Hamburg-Stammtisch: 15.12.2017
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13431
  • Das "S" in "IoT" steht für "Security"
Antw:[configDB] fhem im rescue-Modus starten
« Antwort #1 am: 11 März 2017, 00:35:55 »
Mit dem Update vom 11.03.2017 besteht die Möglichkeit, eine zusätzliche Umgebungsvariable zur "Systemrettung" zu verwenden, wenn man weiß, dass es in der Datenbank eine funktionierende frühere Version gibt.

Es besteht die Möglichkeit, direkt beim Start eine bestimmte vorherige Konfiguration zu laden.
  • alle zu fhem gehörenden perl Prozesse beenden: "killall -9 perl"
  • Auf der Sytemkonsole die Systemvariable cfgDB_version setzen: "export cfgDB_version=3"
  • fhem von der Systemkonsole starten: "perl fhem.pl configDB"

Achtung:
Die fehlerhafte Version 0 ist dann immer noch in der Datenbank vorhanden und muss erst durch ein "save config" einer funktionsfähigen Version überschrieben werden.

Danach muss die Umgebungsvariable unbedingt wieder gelöscht werden.
  • Auf der Sytemkonsole: "unset cfgDB_version"

Die gesetzte Versionsnummer wird gegen die Anzahl der gespeicherten Versionen geprüft. Wird eine höhere Versionsnummer angebeben als es Versionen in der Datenbank gibt, wird die älteste Version geladen.

Beispiel 1:
  • In der Datenbank befinden sich 15 Versionen (nummeriert von 0-14)
  • Es wird per Umgebungsvariable die Nr. 20 bestimmt
  • Die Version 14 wird geladen.

Beispiel: 2
  • In der Datenbank befinden sich 15 Versionen (nummeriert von 0-14)
  • Es wird per Umgebungsvariable die Nr. 6 bestimmt
  • Die Version 6 wird geladen.
« Letzte Änderung: 11 März 2017, 00:39:34 von betateilchen »
Nächster Hamburg-Stammtisch: 15.12.2017
Gefällt mir Gefällt mir x 4 Liste anzeigen

 

decade-submarginal