Howto: FHEM Backup & Wiederherstellung

fhem backup wiederherstellung - Howto: FHEM Backup & Wiederherstellung

… denn Futsch ist Futsch!

Nachdem FHEM nun endlich komplett läuft, braucht man sich um nichts mehr kümmern – nicht ganz! Denn die Micro-SD Speicherkarten, mit denen der Raspberry Pi arbeitet, können nach vielen Schreib- und Lesevorgängen auch schnell die Grätsche machen. Und dann ist die gesamte Zeit, die man schon in die Programmierung von FHEM gesteckt hat: FUTSCH!
Einfacher noch: Durch Programmierversuche, gerade am Anfang, ist ebenso FHEM schnell mal zerschossen – ich spreche aus Erfahrung.

Um dem Ganzen vorzubeugen, sollte jeder FHEM’ler ein komplettes Backup erstellen. Dies wird nachfolgend Schritt-für-Schritt erklärt.

thumb spacer - Howto: FHEM Backup & Wiederherstellung
Angebot thumb spacer - Howto: FHEM Backup & Wiederherstellung
Angebot thumb spacer - Howto: FHEM Backup & Wiederherstellung

Letzte Aktualisierung am 19.05.2018 um 03:00 Uhr | Affiliate Links | Bilder: Amazon Product Advertising API

Backup erstellen

FHEM hat bereits eine eigene Backup-Option eingebaut. Um ein Backup zu erstellen, wird in die Commandozeile von FHEM lediglich backup eingegeben und mit Enter bestätigt. FHEM erstellt nun im Hintergrund das Backup, welches innerhalb von einigen Sekunden abgeschlossen sein sollte. Überprüft werden kann das Ganze im LogFile.

fhem backup - Howto: FHEM Backup & Wiederherstellung

Backup sichern

Intern

Das Backup befindet sich nun auf dem Raspberry unter dem Pfad: /opt/fhem/backup. Um an die Datei zu gelangen, erfolgt der Zugriff per FTP bspw. mit dem Programm FileZilla. Der Standard-Login hierfür lautet:

Benutzerpi
Passwortraspberry
Port22

Unter diesem Pfad findet sich dann eine (odere mehrere) Backup-Dateie(n) mit der Dateiendung “tar.gz”. Die aktuellste Datei wird nun auf den eigenen PC heruntergeladen.

fhem backup 2 - Howto: FHEM Backup & Wiederherstellung

 

Extern

Um das Backup auf einen externen Datenträger zu erstellen, müssen ein paar weitere Schritte ausgeführt werden. Das Backup auf einem externen Datenträger wie z.B. einem USB-Stick zu speichern hat den Vorteil, dass beim Kartendefekt die Daten noch vom USB-Stick gelesen und zurückgespielt werden können.

Den USB-Stick an dieser Stelle noch nicht an den Raspberry Pi anstecken.

Damit der Raspberry USB-Sticks im Format NTFS und HFS+ erkennen kann, müssen die nötigen Treiber installiert werden. Die Befehle werden direkt in der SSH-Konsole ausgeführt.

Im Anschluss wird auf dem Raspberry ein Ordner im Verzeichnis /media erstellt, in dem später der USB-Stick eingebunden wird. Der leere Ordner dient als Einhängepunkt um später das Dateisystem einhängen zu können. Der Name ist natürlich frei wählbar.

Und noch schnell die Rechte anpassen.

Nun den USB-Stick an den Raspberry Pi anschließen.
Jetzt muss der Pfad zum USB-Stick ausgelesen werden. Dieser wird mit dem Befehl

fdisk1117 - Howto: FHEM Backup & Wiederherstellung

ermittelt. Dieser lautet i.d.R. /dev/sda1

Danach wird dieser vorab manuell eingebunden. Wichtig ist nun, das richtige Dateiformat zu nehmen. USB-Sticks sind ab Werk meist auf FAT32 formatiert. Dies ist aus der Anzeige unter “Type” aber ganz einfach zu sehen, falls man sich unsicher ist.

DateisystemBefehl
NTFS
FAT32
Ext4
HFS+

An dieser Stelle kann in der Konsole mittels

schon auf den USB-Stick zugegriffen werden.
Natürlich soll der Stick auch nach einem Neustart des Raspberry Pi automatisch wieder eingebunden werden. Hierzu werden ein paar weitere Schritte benötigt.

Es wird nun die UUID des USB-Sticks benötigt. Diese wird mit dem folgenden Befehl ermittelt:

blkid1117 - Howto: FHEM Backup & Wiederherstellung

Hier den Pfad heraussuchen (z.B. /dev/sda1) und die UUID kopieren, ohne Anführungszeichen.

Nun die Datei fstab öffnen.

In dieser Datei muss der entsprechende Eintrag, je nach Dateisystem des USB-Sticks, am Ende der Datei eingetragen werden. Die UUID natürlich gegen die Eigene austauschen.

DateisystemBefehl
NTFSUUID=C3B2-AA0B /media/usbstick/ ntfs-3g defaults,umask=000,users 0 0
FAT32UUID=C3B2-AA0B /media/usbstick/ vfat defaults,umask=000,users 0 0
Ext4UUID=C3B2-AA0B /media/usbstick ext4 defaults 0 0
HFS+UUID=C3B2-AA0B /media/usbstick/ hfsplus defaults,umask=000,users 0 0

Mit STRG + X werden die Änderungen mit y bestätigt und die Datei wird automatisch wieder geschlossen.

Ab hier ist der USB-Stick vollständig in den Raspberry Pi eingebunden.

Angebot thumb spacer - Howto: FHEM Backup & Wiederherstellung
Angebot thumb spacer - Howto: FHEM Backup & Wiederherstellung
thumb spacer - Howto: FHEM Backup & Wiederherstellung

Letzte Aktualisierung am 19.05.2018 um 03:00 Uhr | Affiliate Links | Bilder: Amazon Product Advertising API

Nun muss in FHEM lediglich das Backup-Ziel angepasst werden. Den nachfolgenden Befehl dazu einfach in die Konsolenzeile eingeben.

Backup automatisieren

Wie FHEM das Backup nun automatisch ausführt, je nach gewünschter Zeit, erkläre ich nun an dieser Stelle. Alle genannten Befehle können direkt in die Konsolenzeile eingegeben werden.

Tägliches Backup um 23:59 Uhr
Jeden Sonntag um 23:59 Uhr

Die Tage sind wiefolgt definiert:

0: Sonntag, 1: Montag, 2: Dienstag, 3: Mittwoch, 4 Donnerstag, 5 Freitag, 6 Samstag

So hat man natürlich auch die Möglichkeit, das Backup jeden Freitag um 12:00 Uhr zu starten:

Stunde:Minute:Sekunde|Tag

FHEM neu aufsetzen

Um ein gesichertes Backup wieder einspielen zu können, wird immer eine frische Installation von FHEM benötigt.

Wer hierzu eine Anleitung benötigt, findet diese an dieser Stelle:

Howto: FHEM Server auf Raspberry einrichten

 

Howto: FHEM Grundeinstellung

 

Backup einspielen

Nachdem nun eine frische FHEM-Installation auf dem Raspberry läuft, wird nun die gesicherte Backup-Datei in die neue Installation eingespielt. Dazu wird die Backup-Datei in das Verzeichnis “/opt/fhem/backup” kopiert. Ggf. muss vorab das Verzeichnis “backup” erstellt werden.

Nun wird die laufende FHEM-Instanz gestoppt, …

… und das Backup anschließend entpackt.

Das Backup wird damit nun automatisch in die jeweiligen Verzeichnisse entpackt. Im Anschluss daran, muss FHEM wieder manuell gestartet werden.

Zum Abschluss wird sämtliche externe Hardware vom alten Raspberry an den neuen angesteckt und sollte problemlos funktionieren. Eventuell müssen noch zusätzliche Pakete (bspw. für die Sonos-Steuerung) manuell nachinstalliert werden, was allerdings die kleinste Hürde darstellen sollte.

Ebenso gilt zu beachten, dass eventuell installierte SSL Zertifikate nicht automatisch übernommen werden, auch diese müssen wieder manuell eingerichtet werden.

Alternative Sicherungsmethode per Image

Um den Backup-Aufwand noch geringer zu halten bzw. etwas einfacherer, kann auch direkt die ganze SD-Karte als Image-Datei gesichert werden. Der einzige Nachteil hier: Das Backup dauert länger und die SD-Karte muss am PC in einen Kartenleser eingelegt werden.

Mit dem Win32DiskImager kann dies sehr schnell realisiert werden.

  1. Den Raspberry mit dem Befehl sudo shutdown -h 0 herunterfahren.
  2. Speicherkarte aus dem Raspberry entfernen und in den Kartenleser am PC einlegen.
  3. Speicherort für das Backup-Image wählen, sowie den Laufwerksbuchstaben der Speicherkarte angeben.
  4. Mit einem Klick auf “Read” startet die Sicherung als Image-Datei.

Ein meiner Meinung nach zu vernachlässigender Nachteil ist, dass beim Wiederherstellen eine mindestens genauso große SD-Karte benötigt wird. Bedeutet: Wurde das Backup-Image von einer 4GB-Karte erstellt, muss die neue mindestens 4GB groß sein. Größer ist auch möglich, nur nicht kleiner.


Wie bei allem gilt:
Viele Wege führen nach Rom. Meiner Meinung nach sind diese beiden Varianten allerdings eine sichere Lösung, um nicht irgendwann ein böses Erwachen erleiden zu müssen.

Viel Erfolg bei deinem Backup! Hoffentlich wirst du es nie zwingend benötigen.

Howto: FHEM Backup & Wiederherstellung
4.9 ✭ (98.26%) 23 votes

Das könnte dich auch interessieren:
Howto: Loxberry Installation & Inbetriebnahme Was ist Loxberry? LoxBerry ist ein von Michael Schlenstedt initiiertes Projekt auf Open Source Basis. LoxBerry ist eine Toolbox, die ein Loxone Smarthome um viele smarte Features erweitert, die der Loxone Miniserver so nicht bietet. Zum Beispiel: Ko...
Howto: Loxone via FritzBox anrufen lassen Nachdem ich in dem vorherigen Post erklärt habe, wie die Installation von Loxberry funktioniert, möchte ich nun zeigen wie einfach es ist Loxone auf dem eigenen (oder fremden) Handy, Festnetz, oder intern anrufen zu lassen. Das Einzige was dazu benöt...
Sonoff mit Loxone, Homematic & Alexa nutzen Sonoff ist derzeit gefühlt in aller Munde. Deßhalb habe ich mich dazu entschlossen, diese Wunderwaffe auch zu testen und habe mir den Sonoff POW zugelegt, da dieser auch den Verbrauch/Leistung/Strom/Spannung messen kann. In diesem Blogpost möchte ...
Howto: FHEM Server auf Raspberry einrichten Alles von überall aus steuerbar, das wird die Zukunft sein, davon bin ich überzeugt. FHEM macht einen großen Schritt hierhin nicht zuletzt durch den Raspberry Pi. In diesem Post möchte ich euch nun zeigen, wie schnell die Installation vonstatten geh...
Loxone Taster als Wandthermostat für Homematic nutzen Mit FHEM das volle Potential ausschöpfen Das Homematic Heizkörperthermostat arbeitet als solches natürlich komplett autark, sofern man das möchte. Da sich das Thermometer allerdings unmittelbar am Wandthermostat und so in unmittelbarer Nähe des Heiz...

13 Gedanken zu “Howto: FHEM Backup & Wiederherstellung

13 Kommentare

  1. Moin Moin,
    vielen Dank für deine Anleitung 🙂
    Ich musste den Befehl
    sudo tar -xvzf /opt/fhem/backup/FHEM-20160305_203123.tar.gz -C /opt/fhem/
    übrigens auf
    sudo tar -xvzf /opt/fhem/backup/FHEM-20160305_203123.tar.gz -C /
    anpassen, damit es funktioniert.

  2. Hi Michael,
    danke für die tolle Anleitung. Frage: Wie kann ich überprüfen, ob das Backup auch funktioniert hat?

    • Hallo Tom,

      was meinst du genau mit “funktioniert hat”? Wenn du es erstellen lässt, wird das Backup im Verzeichnis angelegt. Falls du was anderes meinst, gib mir nochmal Bescheid.

      Viele Grüße
      Michael

  3. Hallo Michael,
    ich meine, wie ich überprüfen kann, ob das Backup auch auf dem USB Stick gelandet ist. Über list directory oder kann ich das auch im FHEM sehen? In irgendeiner Log- Datei?

    • Hi Tom,
      ich bin mir gerade nicht sicher in welcher Datei das geloggt wird. Das man es in FHEM direkt sehen könnte, ist mir nicht bekannt. Hast du denn das Problem, dass die Backups nicht auf deinem USB-Stick erstellt werden?

      Viele Grüße
      Michael

  4. Hi Michael,
    ich habe das grundsätzliche Problem, dass mein raspberry mit dem Anschluss eines USB- Sticks Probleme hat. Wahrscheinlich, weil ich den Homatic Stick herausgenommen habe und stattdessen an diesem Anschluss den für das Backup vorgesehenene Stick verwendet habe.
    Ich werde jetzt, da meine FHEM Installation noch auf einer 1er Version läuft, dies zum Anlass nehmen, mit FHEM auf einen Raspberrry 3 umzuziehen. Das Backup habe ich nun über Filezilla direkt vom Raspberry geholt. Ich hoffe, dass ich nach der Grundinstallation auf dem 3er nur das Backup einspielen muss und fertig?

    • Hi Tom,
      okay, das mag natürlich sein – auch für mich wäre das schwer reproduzierbar. Daher klingt die Idee des Umzugs schon mal sehr gut.
      Hast du schon von dem neuem Modell Pi 3 B+ (Affiliate Link) gehört? Der ist nochmal etwas schneller als das “normale” 3er Modell.

      Das Backup solltest du so 1:1 zurück spielen können, ja. Lediglich abhängige Pakete musst du neu installieren, die werden nicht im Backup hinterlegt. Der Sicherheit halber würde ich dir aber empfehlen (sofern vorhanden) eine zweite Speicherkarte zu verwenden. Falls doch etwas nicht funktioniert, hast du so noch dein laufendes System.

      Viele Grüße
      Michael

  5. Hallo Michael,

    danke für den tollen Blog-Beitrag. Ich versuche gerade von meinem alten Raspi2 auf einen Raspi3 die FHEM-Installation umzuziehen. Dabei funktioniert auch FHEM selber nach dem Einspielen auf den Raspi3 wie gewünscht.

    Ich habe aber das Problem, dass ich nach dem Einspielen des Backups nicht mehr per https auf das Webfrontend zugreifen kann. Ich vermute, dass der alte base64 Hash aus der alten Installation auf dem neuen Raspi nicht mehr klappt? Hast Du eine Idee wo ich anfangen kann zu suchen?

    Vielen Dank und beste Grüße
    vom Willi

    • Hey, ich antworte mir mal selber, da dass sicher vielen auch so geht ^^
      1.) ich habe anhand dieser Seite https://wiki.fhem.de/wiki/Raspberry_Pi_%26_HTTPS die hem Installation wieder für https fit gemacht – das hatte ich vorher vergessen und wird auch m.W. nicht über die fhem Backup-Funktion abgedeckt
      2.) fhem stoppen: sudo invoke-rc.d fhem stop
      3.) Neuen Hash generieren: sudo echo -n user:passwort | base64
      4.) Neuen Hash in fhem.cfg ersetzen: sudo nano /opt/fhem/fhem.cfg (hilfreich ist es wenn man den alten Hash kennt und mit CTRL+W danach sucht)
      5.) fhem starten: sudo invoke-rc.d fhem start

      Und es geht wieder 🙂

      Also: Erfolgreich vom Raspi2 auf den Raspi3 umgezogen. Als nächstes kümmere ich mich um die Sprachsteuerung mit Siri ^^

      Vielen Dank und beste Grüße
      vom Willi

    • Hallo Willi,

      du bist ja schneller als die Polizei erlaubt 😛
      Besten Dank für deine Beschreibung, vielleicht hilft es ja dem ein- oder anderen.

      Viele Grüße
      Michael

  6. Hey Michael,
    kann es sein dass wir uns aus Aachen her kennen? Hast Du da so in der Zeit von 2000-2010 studiert? Und kann es sein dass Du zufällig auch bei der JJ-Sporttruppe warst?
    In diesem Fall: Viele Grüße von einem dicken Schwarzgurt ^^

    • Da muss ich dich enttäuschen.
      Mit Aachen hatte ich bisher nichts am Hut.

      Grüße

Schreibe einen Kommentar

Do NOT follow this link or you will be banned from the site!