Home Assistant Recovery und Backup unter Windows

Heute war es soweit: Mein Home Asistant war nicht mehr erreichbar. Wenn ich nicht auf das UserInterface komme, komme ich auch nicht an meine BackUps. Was nun?! Ich will nicht alles neu einrichten müssen, nicht alle Automatisierungen neu schreiben. Da ich viel Suchen musste, was zu tun ist, will ich meinen Weg zur Home Assistant Recovery hier zusammenfassen und mit euch teilen.

Linux File Reader

Ich hab nach kurzer Recherche den Linux File Reader für Windows gefunden. Ich stecke also die SD-Karte vom Raspi in meinen Laptop und öffne das Programm. Das erkennt alle Partitionen auf allen Laufwerken.

Für Windows sieht die SD Karte z.B. nur so aus:

Das liegt daran, dass die anderen Partitionen auf der SD Karte in Dateisystemen formatiert sind, die Windows nicht lesen kann. Der Linux File Reader aber schon.

Um an die BackUp Files zu kommen navigiere ich zu:

/mnt/data/supervisor/backup

Hier sehen wir dann eine Liste mit .tar Files. Ich hab hier auf die Detailansicht gewechselt, so kann ich schnell erkennen, welches das letzte Backup war.

Ich markiere mir jetzt also die letzten beiden (oder vll auch die letzten 3 Backups, oder alle) und drücke oben den Speichern Button. Nun öffnet sich ein Wizard, der uns durch den Prozess führen möchte.

Wenn das speichern abgeschlossen ist, können wir die .tar File im Ordner entpacken. Dazu nutze ich immer 7zip.

Im Ordner sehen wir dann das eigentliche BackUp:

Die .tar.gz können wir wieder mit 7Zip entpacken:

Hier finden wir nun auch die yaml files und Datenbanken.

Bei mir gab es immer eine Fehlermeldung beim Entpacken, daher bin ich hier etwas skeptisch, ob die Files funktionieren. Ich mache daher zusätzlich auch ein Image von der SD Karte. Das geht auch mit dem Linux Reader. (Das ist bei mir leider immer wieder abgestürzt, daher leap of faith, die SD Karte wird nun einfach neu geflasht).

Homeassistant Recovery Variante 1: Dateien ersetzen

Die erste Variante wäre nun die Dateien aus dem Backup dort hin zu schieben, wo HomeAssistant diese benutzt. Das können wir z.B. mit Samba oder FTP machen. Das geht aber leider nur, wenn ihr vorher die notwendigen Plug-Ins installiert habt und euer Home Assistant noch erreichbar ist. Man muss in die /config gehen und auch den versteckten Ordner mit reinkopieren. Da ich leider nichts davon hab, muss ich hier direkt auf Weg 2 gehen.

Variante 2a, wäre mit einem USB Card Reader am RaspberryPi ein Image der SD Karte unter RaspiOS zu machen, bzw. hier die Daten zu kopieren.

Homeassistant Recovery Variante 2: Frische Installation auf SD-Karte

Ich hab nun auf eine neue SD Karte (hehe ofc not, erstmal auf die alte natürlich) einmal ein frisches Home Asisstant installiert. Das coole ist, auf dem Raspi-Imager gibt es nun schon ein HA-Image zur Auswahl. Man muss nur für den richtigen Raspi eins auswählen.

Wer auf eine SSD Festplatte wechseln möchte – jetzt ist der Zeitpunkt, statt auf eine SD-Karte auf eine SSD zu flashen. Je nach Raspi-Generation geht es dann unterschiedlich weiter.

Wenn die SD Karte erfolgreich geflasht wurde, kommt sie in unseren Raspi und wir verbinden den Kollegen mit dem Strom. Für den Start müssen wir ein Netzwerkkabel benutzen, um den Raspi ins Heimnetz zu bringen, denn der Dialog für die WiFi Zugangsdaten war hier im Imager nicht dabei.
Man kann auch einen Ordner „CONFIG“ und darin einen Ordner „network“ und in diesem dann eine Datei my-network (ohne Datei-Endung) anlegen. (auf Groß, Kleinschreibung achten). Dazu kann man zunächst eine .txt erzeugen und dann später umbennen. In die Datei muss ein Codeblock, den findet ihr bei meinem Getting Started Guide

Und da haben wir in meinem Fall auch den Übeltäter gefunden durchs flashen:

Meine SD-Karte ist also vermutlich defekt und meine BackUps wahrscheinlich auch… Das ist tatsächlich das erste mal, das mir eine SD Karte auf dem Raspi abrauscht. Nicht so schön.

Also merkt euch: BackUps gehören auf ein anderes Speichermedium, dazu weiter unten mehr.

Home Assistant Recovery

Wenn ihr also euren Raspi gebootet habt, könnt ihr die neue IP adresse eingeben (herauszufinden z.B: über das Webinterface eures WLan-Routers) und Port 8123. Oder über homeassistant.local:8123.

http://homeassistant.local:8123/onboarding.html

Hier klicken wir auf „Aus einem BackUp wiederherstellen“ und wählen danach unsere gesicherte .tar File. Nichts entpacktes, einfach die .tar file, die wir von der alten SD Karte gezogen haben. Und dann beten wir!

Ich hab bei mir die letzte .tar file gewält, leider war es nur ein partielles BackUp. Was ist nur los mit mir? Warum hab ich das nie gemacht?! Nehm ich aber gerne. Mal gucken was wird. Und dann warten….

Home Assistant Recovery auf SSD am RaspberryPi 3x

Wer auf die Kombination aus SSD und Raspi 3 gehen will, braucht neben der Festplatte auch eine SD-Karte. Wir flashen das HomeAssistant OS auf die SSD und ein Raspi OS Lite auf die SD Karte. Hier können wir dann wie gewohnt SSH aktivieren und auch schon die W-Lan Zugangsdaten hinterlegen.

Nun booten wir den Raspberry Pi 3 mit der SD Karte und verbinden ihn mit unserem Heimnetz. Als nächstes müssen wir uns mit ssh verbinden. Dazu nutzen wir z.B: Putty oder einfach unter Windows das Terminal (win + r – cmd – enter) und geben den Befehl zum verbinden ein. Die IP findet ihr wieder übers routerinterface, oder falls ihr beim flashen schon einen hostname eingegeben habt, sollte dieser auch funktionieren:

z.B. ssh pi@assistant.local
oder ssh pi@raspi.local

Wenn ihr einen anderen User angegeben habt, muss der Befehl natürlich angepasst werden. Nun müssen wir uns mit unserem passwort (was wir auch beim flashen festgelegt haben) authentifizieren und hacken den nächsten befehl ein:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Dieser aktiviert das booten von USB. Jetzt starten wir den Raspi neu:

sudo reboot

Natürlich wird die ssh verbindung jetzt getrennt. Wir warten etwas bis der Pi wieder online ist und verbinden uns wieder neu. Nun testen wir ob alles wie gewünscht funktioniert:

vcgencmd otp_dump | grep 17:

Nun sollten wir als response die folgende Zeile bekommen:

17:3020000a

Wenn das läuft, fahren wir den Raspi entweder sanft herunter oder ziehen brutal einfach den Strom ab. Dann kommt die SSD per USB Kabel ran, die SD Karte raus und wir booten wieder, diesmal Erfolgreich mit Home Assistant von der Festplatte. Ab hier gelten die Schritte von hier oben

Troubleshooting

Wenn die externe Festplatte zu lange braucht, kann man das TimeOut anheben. Dazu einfach wieder ssh verbindung aufbauen und den folgenden Command eingeben:

echo program_usb_timeout=1 | sudo tee -a /boot/config.txt

Oder falls die externe Festplatte zu viel Saft braucht, muss man einen aktiven USB Hub zwischenschalten. Ggf. hilf auch, die Begrenzung der Stromstärke für USB Ports anzuheben:

sudo nano /boot/config.txt
max_usb_current=1

Speichern und Exit und dann den Reboot nicht vergessen.

Bei mir hat die Home Assistant Recovery leider nicht funktioniert, daher setze ich jetzt alles neu auf. Gut das ich das meiste davon hier im Blog dokumentiert hab. Nervig ist es aber trotzdem. Wer auch frisch starten möchte, kann das in diesem Guide machen, den ich auf 2024 aktualisiert habe.

BackUps auf Remote Speicher

Damit wir den gleichen Fehler nicht nochmal machen und von 0 Anfangen müssen wenn etwas schiefgeht, speichern wir unsere BackUps ab jetzt automatisiert auf einem Remote speicher.

Hier gibt es bei GitHub diverse Plug-Ins für Samba oder Google Drive oder Dropbox. Manche werden jetzt den Kopfschütteln, aber ich bin Dropbox user, daher nehm ich das Add-on. Dieses findet ihr hier:

https://github.com/matthewhadley/homeassistant-dropback

Der weg ist aber für alle ungefähr gleich. Ihr müsst den Pfad zu den Add-On repos hinzufügen:

Dann müssen wir einen Moment warten, irgendwann erscheint dann das Add-On, welches wir dann wie gewohnt installieren:

Auf der GitHub Seite müsst ihr dann einfach der Anleitung folgen und schwupps, unsere Backups werden auf die Dropbox synchronisiert.

Home Assistant automatische Backups erstellen

Nun erstellen wir automatisch Backups mit einer Automation. Wir nutzen als Auslöser einen Helfer „Zeitplan“ den wir zunächst erstellen müssen:

Ich mach das nun immer Freitags um 00:00 Uhr. In der Automation tracken wir die Zustandsänderung des Helfers auf an und lösen dann ein Vollständiges Backup aus.

Unser Dropbox Synch schiebt es, wenn fertig, in unseren Dropbox Ordner.

Ich hoffe so konnte ich ein paar von Euch helfen.
Happy Restoring!

Schreibe einen Kommentar

Geb mir einen aus :)

Wenn du das Zeug hier magst, denk doch über eine Spende nach um Server und Domain zu finanzieren.

$ Die mit einem $ gekennzeichneten Links, sind Affiliate Links. Wenn du über diese in den Shop gelangst und etwas kaufst, bekomme ich eine kleine Provision.

Suche & Filter