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.

Vilros Raspberry Pi 3 Model B Complete Starter Kit --mit 5...
Angebot Transcend USB 3.0 / 3.1 Gen 1 Multifunktionskartenleser...
Angebot SanDisk Ultra 32GB microSDHC Speicherkarte + Adapter bis zu...

Letzte Aktualisierung am 18.05.2019 um 16:13 Uhr | Werbung | 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.

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:

Benutzer pi
Passwort raspberry
Port 22

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.

 

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.

sudo apt-get -y install ntfs-3g hfsutils hfsprogs exfat-fuse

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.

sudo mkdir /media/usbstick

Und noch schnell die Rechte anpassen.

sudo chown pi /media/usbstick

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

sudo fdisk -l

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.

50€ sparen
FHEM Grundlagen Kurs
FHEM Grundlagen Kurs
Spare 50€ bei dem FHEM Grundlagen Kurs!

Anzeige

Spare 50€ bei dem FHEM Grundlagen Kurs!

Anzeige

Weniger anzeigen
Dateisystem Befehl
NTFS
sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/usbstick/
FAT32
sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/usbstick/
Ext4
sudo mount /dev/sda1 /media/usbstick
HFS+
sudo mount -t hfsplus -o force.uid=pi,gid=pi /dev/sda1 /media/usbstick/

An dieser Stelle kann in der Konsole mittels

cd /media/usbstick/

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:

sudo blkid

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

Nun die Datei fstab öffnen.

sudo nano /etc/fstab

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.

Dateisystem Befehl
NTFS UUID=C3B2-AA0B /media/usbstick/ ntfs-3g defaults,umask=000,users 0 0
FAT32 UUID=C3B2-AA0B /media/usbstick/ vfat defaults,umask=000,users 0 0
Ext4 UUID=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 SanDisk Ultra 64GB USB-Flash-Laufwerk USB 3.0 bis zu...
Angebot Seagate Expansion Portable 1 TB externe tragbare Festplatte...
Raspberry Pi 3 Model B ARM-Cortex-A53 4x 1,2GHz, 1GB RAM,...

Letzte Aktualisierung am 18.05.2019 um 16:24 Uhr | Werbung | Bilder: Amazon Product Advertising API

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

attr global backupdir /media/usbstick

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
define startBackup at *23:59:00 backup
Jeden Sonntag um 23:59 Uhr
define startBackup DOIF ([23:59:30|0]) (backup)

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:

define startBackup DOIF ([12:00:00|5]) (backup)

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.

sudo mkdir /opt/fhem/backup

Nun wird die laufende FHEM-Instanz gestoppt, …

invoke-rc.d fhem stop

… und das Backup anschließend entpackt.

sudo tar -xvzf /opt/fhem/backup/FHEM-20160305_203123.tar.gz -C /opt/fhem/

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

sudo invoke-rc.d fhem start

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.4%) 25 vote[s]

Das könnte dich auch interessieren:
Anleitung: Tasmota Firmware auf Sonoff flashen Als Anknüpfung an den vergangen Blogbeitrag "Sonoff mit Loxone, Homematic & Alexa nutzen" möchte ich nun die Tasmota Firmware vorstellen. Einigen mag die Firmware Tasmota sicherlich schon bekannt sein. Für alle anderen: Tasmota ist eine alternat...
Die Xiaomi Yeelight Generation 2 im Test Xiaomi ist auf dem Markt schon längst kein unbekannter Name mehr. Die Xiaomi Yeelight wird von dem chinesische Hersteller hergestellt. Sie stellt nicht nur die bekannten Smartphones her, sondern auch eine inzwischen recht breite Produktpalette an Sma...
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 Beis...
Howto: FHEM Grundeinstellung Wie im vorherigen Post versprochen, geht es nun mit der Grundeinrichtung von FHEM weiter. Zwar wäre FHEM nun schon voll lauffähig und nutzbar, nichtsdestotrotz ist die nachfolgende Grundeinrichtung unabdinglich. Nachfolgend wird erklärt, welche Einst...
Howto: FHEM mit Loxone erweitern Ein (Loxone) Smart Home - was ist das eigentlich genau? Alles was zu Hause in irgendeiner Weise steuerbar ist, bestenfalls mittels Smartphone, wird als Smart Home betitelt. Doch was ist nun genau ein Smart Home? Für mich persönlich ist es erst dann e...

17 Gedanken zu “Howto: FHEM Backup & Wiederherstellung”

17 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

  7. Hi, danke fuer deinen Blog Eintrag.
    Ich habs versucht mit einem USB Stick und Fat32 umzusetzen. Leider erhalte ich immer:

    sh: 1: cannot create /media/usbstick/FHEM-20190123_154445.tar.gz: Permission denied

    Ich bin mir nicht sicher welche Berechtigungen ihm fehlen, hab ja alles wie im Blog erstellt.
    Hast du noch einen Tipp?

    • Hallo Marv,

      laut dieser Meldung fehlen Schreibrechte, damit auf den USB-Stick geschrieben werden darf.
      So direkt habe ich leider keinen Tipp für dich, ich müsste das selbst nochmal ausprobieren. Dann kann ich dir mehr dazu sagen.

      Viele Grüße
      Michael

  8. Hi,
    ich habe ein ähnliche Berechtigungsproblem.

    Hatte die Rechte mit “sudo chown pi /media/usbstick” gemäß Anleitung geändert. Hatte auch via Filezilla nachgeschaut und die Rechte wurden geändert.

    Nach einem Neustart am Ende Deiner Anleitung (also auch mit dem automatischen Einbinden des Stick) sind die Recht nun wieder auf root. Und FHEM kann nicht darauf schreiben. Mit “sudo chown pi /media/usbstick” lassen sich die Recht auch nicht wieder ändern.

    Gibt es hierzu einen Rat?

    Gruß aus Dortmund
    Jörg

    • Hi Jörg,

      werde ich am Wochenende mal testen woran es liegt und dann Rückmeldung geben.

      Viele Grüße
      Michael

Schreibe einen Kommentar

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

SPARE 20%!

Trage dich in unseren Newsletter ein und erhalte 20% Rabatt für
unseren Loxone Basics Kurs auf Udemy!
EINTRAGEN & GUTSCHEIN ERHALTEN
close-link