Ich habe meine gesamte Heimautomatisierung kaputtgemacht. Aus Versehen natürlich. In diesem Artikel dokumentiere ich meine Bemühungen, es zu reparieren.
Tag 1: Kaputt.
Wie macht man alles kaputt? Man schaltet einen Computer aus, während er ein Update durchführt.
Ja, das habe ich wirklich gemacht.
Ja, ich weiß, dass das extrem dumm ist.
Nein, ich weiß nicht, wieso ich das gemacht habe.
Aber von vorne. Ich wollte eigentlich nur mal eben schnell das System aktualisieren. Dazu habe ich ja mal eine Anleitung geschrieben: openHAB XIV: System-Update für Idioten. Diese Anleitung habe ich befolgt, inklusive Backup (das wird später noch wichtig). Dann habe ich versucht, das Update durchzuführen, und irgendwann während apt-get update abgebrochen. Danach konnte ich mich nicht mehr per ssh einwählen. Oh-oh.
Tag 2: Reparieren.
Schließe ich den Raspberry Pi an einen Bildschirm an, zeigt er beim Starten eine fröhliche Fehlermeldung: Firmware not found. Ich habe es offensichtlich völlig zerstört. Das ist nicht gut.
Jetzt könnte ich einen kleinen Exkurs starten. Ich habe versucht, openHAB in einem Docker-Container auf meinem NAS zu installieren. Das hatte ich sowieso schon lange überlegt, das System umzuziehen. Die Installation hat auch geklappt, nur an der Konfiguration bin ich gescheitert. So ein System von Null aufzusetzen, ist wirklich nervig. Letztlich habe ich mich entschieden, doch den Raspberry Pi wieder in Betrieb zu nehmen. Nur wie?
Erstmal hole ich das Backup von der SD-Karte. Zum Glück habe ich in diesem Artikel gefunden, wo das Backup standardmäßig gespeichert wird: /var/lib/openhab/backups/openhab-backup-*datum*.zip. Also erstmal kopieren.
Dann muss ich die SD-Karte neu flashen, und openHAB neu installieren. Dazu habe ich zuerst ein Backup der gesamten SD-Karten gemacht. Da ich neuerdings Linux benutze, habe ich mir auch da erst eine Anleitung gesucht und gefunden.
Und dann folge ich dem normalen Installationsprogramm. Das führt gleichzeitig dazu, dass ich jetzt die aktuellste Version von openHAB installiert habe, nämlich 5.2.0. Ich erstelle den Admin-Account, wähle ein paar Bindings aus, und dann wird es Zeit, das Backup wieder einzuspielen. Jetzt werde ich nervös.
sudo systemctl stop openhab sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/openhab-backup-*datum*.zip
Das Ganze liefert mir folgenden Output:
##########################################
openHAB restore script
##########################################
Using '/etc/openhab' as conf folder...
Using '/var/lib/openhab' as userdata folder...
Making Temporary Directory
Extracting zip file to temporary folder.
Backup Information:
-------------------
Backup Version | 3.3.0 (You are on 5.2.0)
Backup Timestamp | 26_06_24-13_26_55
Config belongs to user | openhab
from group | openhab
Your current configuration will become owned by openhab:openhab.
Any existing files with the same name will be replaced.
Any file without a replacement will be deleted.
Okay to Continue? [y/N]: y
Moving system files in userdata to temporary folder
Deleting old userdata folder...
rm: cannot remove '/var/lib/openhab/persistence': Device or resource busy
Restoring system files in userdata...
Deleting old conf folder...
Restoring openHAB with backup configuration...
Deleting temporary files...
Backup successfully restored!
Nachdem das tatsächlich fehlerfrei durchgelaufen ist, wird es Zeit, openHAB wieder zu starten:
sudo systemctl start openhab
Aber das funktioniert irgendwie nicht. Seltsam, und beunruhigend. Vielleicht hilft ein Neustart.

Fantastisch, oder? Ich würde sagen, darum kümmere ich mich morgen.
Etwa eine Stunde später merke ich, dass ich einfach nur zu ungeduldig war. Ich weiß nicht, warum mein System etwas Zeit brauchte zum Starten (vielleicht hat es Bindings nach-installiert?), aber jetzt funktioniert alles. Und ich kann kaum fassen, wie einfach das war.