Bereits seit der RaspberryMatic Version 2.27.8.20170410 gibt es die Möglichkeit, Backups nicht nur über die WebUI durchzuführen. Es ist seit dieser Version möglich über eine SSH-Verbindung ein Linux Programm per Kommando auszuführen. Hierbei wird eine Standard *.sbk Backupdatei auf der internen Micro-SD-Card erzeugt. Eine gute Idee wie ich finde, jedoch mit dem Problem, das der Backup auf der internen Micro-SD-Card erstellt wird. In diesem Artikel beschreibe ich, wie ihr mit Onboard Mitteln von RaspberryMatic eine automatische Sicherung auf einen an der Raspberry angeschlossenen USB-Stick realisieren könnt.

Bedeutung einer Sicherung

Viele Anwender von Computern oder SmartPhones haben schon die bittere Erfahrung gemacht was es bedeutet, wenn man seine Daten nicht gesichert hat. Das tut richtig weh und im schlimmsten Fall sind unwiederbringliche Dateien (Fotos) für immer verloren.

Da ich beruflich in der IT tätig bin und weiß wieviel Aufwand und Geld in eine sichere Backup-Lösung investiert wird, halte ich das auch für eine HomeMatic Installation für sehr wichtig.

Ich habe mir daher angewöhnt, vor allen Änderungen an meinem System (neue Aktoren oder Programme) eine Sicherung durchzuführen. Ebenso nach der durchgeführten Änderung. Somit habe ich immer einen Aufsetzpunkt, zu dem ich im Problemfall zurück kehren kann. Diese Vorgehensweise hat sich schon mehr als einmal bewährt.

Das eigentlich Problem dabei ist, immer daran zu Denken eine Sicherung durchzuführen. Hinzu kommt noch, das der Anwender die Sicherung manuell in der WebUI anstoßen muss.

Aus diesem Grund habe ich mir eine EINFACHE automatische Lösung erstellt und möchte euch diese hier beschreiben.


Voraussetzungen / Benötigte Hardware

Amazon eBay ELV
Raspberry Pi3 Link Link Link
Bausatz-Funkmodul Link Link Link
microSD Karte Link Link Link
Gehäuse Link Link Link
Gehäuse für HS Link Link Link
Netzteil für HS Link Link Link
USB für Netzteil HS Link Link Link
externe Antenne Link Link

Um die hier beschriebene Lösung umzusetzen benötigt ihr folgende Komponeten:

  • RaspberryMatic (ab Version 2.27.8.20170410)
  • USB Stick, USB SSD oder USB Festplatte
  • RaspberryMatic AddOn CuxD

Allgemeines

Es gibt im Netz bereits einige Lösungen um die Daten von HomeMatic automatisch auf einer NAS (Network Access Storage) zu sichern. Da nicht jeder Anwender von RaspberryMatic auch im Besitz einer NAS ist, habe ich hier eine einfache Möglichkeit für einen Backup der HomeMatic Daten anzubieten.

Es ist keine NAS erforderlich, lediglich ein USB Medium, welches einfach in einen der USB Steckplätze der Raspberry Pi einzustecken ist. Dann ein kleines WebUI Programm schreiben, in dem wir ein Skript aufrufen (CuxD) und schon wird die Sicherung auf das USB Medium zum gewünschten Zeitpunkt durchgeführt.

Vorbereitung USB Medium

Ihr könnt an die Raspberry Pi unterschiedliche USB Medien anschließen. Es können USB-Sticks, USB-Festplatten oder eine USB SSD sein.

Voraussetzungen

  • Der USB-Speicher muss mit dem Dateisystem FAT/FAT32 oder NTFS formatiert sein.
  • Wenn gewünscht, ein entsprechendes Verzeichnis nach dem Formatieren anlegen. Am Besten noch auf dem Windows PC, dann ist es nicht notwendig den Weg über SSH im Linux zu gehen.
  • Wenn kein Verzeichnis angelegt wird, werden die Backup Dateien im Wurzelverzeichis des USB Mediums geschrieben.

Backup und Restore via SSH

Seit der Version 2.27.8.20170410 existiert in RaspberryMatic die Möglichkeit Backups, sowie den Restore von Backupdateien nicht nur über die WebUI durchzuführen, sondern diese auch mittels Kommandozeilenprogrammen (z.b. über eine SSH Verbindung) durchzuführen.

Backup Datei erstellen

Hierbei kann man eine Standard *.sbk Backupdatei mit folgendem Kommando erstellen: /bin/createBackup.sh <BACKUPDIR>

Standardmäßig wird ohne Angabe von <BACKUPDIR> durch diesen Aufruf dann im Verzeichnis /usr/local/tmp eine *.sbk Datei angelegt die man z.B. mit WINSCP von RaspberryMatic runterladen und entsprechend verwahren kann und die sich auch über das normale WebUI zurückladen lässt. Gibt man als ein anderes Verzeichnis an, so wird die Backupdatei dort abgelegt.

Restore einer Sicherung einspielen

Auch ein Restore der *.sbk Datei kann über die Kommandozeile (SSH) durchgeführt werden. Dazu kann man folgende Vorgehensweise anwenden:

  • Über SSH als root anmelden
  • Die gewünschte *.sbk Datei in das Verzeichnis /usr/local/tmp kopieren
  • Den folgenden Befehl ausführen:  /bin/restoreBackup.sh /usr/local/tmp/
  • RaspberryMatic neustarten (mit dem Befehl „reboot“ oder über die WebUI.

Nach dem Neustart funktioniert eure RaspberryMatic mit dem zurück gespielten Stand. Ich habe diesen Weg getestet, verwende aber die Lösung über WebUI für den Restore.

 Zusatzfunktionen in RaspberryMatic

Mit den beiden oben beschriebenen Programmen „createBackup“ und „restoreBackup“ habt ihr bereits zwei der zusätzlichen Funktionen in RaspberryMatic kennen gelernt. Damit funktioniert der Backup und das Restoren einwandfrei. Was ich ebenfalls sehr gut finde ist die Tatsache, das die Backupdatei mit den gleichen Namenskonventionen angelegt wird, wie es bei der Sicherung über die WebUI üblich ist.

Eine weitere sehr tolle Erweiterung ist das Programm „usbmount„. Dieses Feature ist seit März 2017 in RaspberryMatic eingebaut.

Auch bei einem Raspberry Pi macht es Sinn den Speicher erweitern zu können. Am besten eignen sich dafür USB-Sticks. Standardmäßig werden diese aber von Raspbian nicht automatisch erkannt und eingebunden. Mit „usbmount“ bekommen wir in RaspberryMatic die Möglichkeit, dass USB-Sticks automatisch eingebunden werden und dass darauf auch Dateien gespeichert werden können.

Mit Hilfe von „usbmount“ werden im Verzeichnis /media, wie im nachfolgenden Screenshot zu sehen ist, neue Verzeichnisse angelegt. Diese heißen von USB0 bis USB7.

Diese Verzeichnisse sind leer, solange sich dahinter kein USB-Stick verbirgt. Sobald wir einen USB-Stick in einen der USB-Slots einstecken, ändert sich das und wir können sehen, was sich auf dem USB-Stick befindet. Bei einem formatiertem Stick finden wir nur die „System Volume Information“.

Wenn wir den USB-Stick in den linken oberen USB-Slot stecken, erkennt RaspberryMatic automatisch, das in USB0 ein Stick eingesteckt wurde und wir bekommen den Inhalt im WINSCP angezeigt:

In den Screenshots könnt ihr auch sehen, das ein Raspberry Pi standardmäßig nicht über eine RealTimeClock (RTC) verfügt. Dadurch kommt es beim Hochfahren dazu, dass das Datum bis zur erfolgreichen Synchronisation mit einem NTP Server auf den 1.1.1970 gestellt ist. Dadurch kommt es teilweise dazu, das CCU Funktionen nur eingeschränkt funktionieren. Wie man ein solches RTC-Modul in einem Raspberry Pi innerhalb von RaspberryMatic in Betrieb nehmen kann, werde ich in einem separaten Artikel beschreiben

Voraussetzung CUx-Daemon

Da zur Steuerung des Backups Skripte verwendet werden, empfehle ich das AddOn CUx-Daemon (CUxD) zu verwenden. Es ist die deutlich bessere Methode um Systembefehle aufzurufen. Weil die Methode über „system.exec“ bei so etwas sehr schnell zu Problemen führt. Wie ihr das AddOn CUxD installiert und ein virtuelles Gerät einrichten könnt, habe ich im Artikel „AddOn CUx-Daemon (CUxD) – system.exec ersetzen“ beschrieben. Keine Sorge, das ist recht einfach.

Sicherung über WebUI Programm starten

Wie bereits aus anderen Artikeln bekannt, können wir über CuxD sehr unterschiedliche Befehle ausführen. So zum Beispiel „HTTP-Befehle“, aber eben auch den Aufruf von Programmen im Linux System.

Diese Fähigkeiten machen wir uns auch hier zu Eigen. Wir können dadurch die mächtigen Planungsmöglichkeiten der WebUI als Startbedingung nutzen und müssen das nicht über einen „cronjob“ im Linux einrichten.

Nachfolgend seht ihr das Programm, mit welchem ich täglich nachts um 2 Uhr eine Sicherung meiner HomeMatic Zentrale auf den USB-Stick durchführe.

Wie ihr oben sehen könnt, ist das Programm wirklich sehr einfach gehalten. Ausgelöst wird es täglich um 2 Uhr. Die Verzögerung von 30 Sekunden habe ich eingebaut, weil ich zur vollen Stunde bestimmte Aktionen in RaspberryMatic durchführe. Als Aktion wird ein kleines Skript ausgeführt mit nur einem CuxD Befehl. Wir rufen das Programm „createBackup“ auf und geben als Zielverzeichnis wie oben beschrieben über /media/usb0 den entsprechenden USB-Stick an.

Nachfolgend das Skript zum kopieren:

Test der Sicherung

Wir können natürlich diesen Befehl auch testweise über SSH absetzen. Ich verwende dazu nicht PUTTY, sondern lieber WINSCP, da ich dort eine angenehmere Benutzeroberfläche habe. Dazu bitte den folgenden Befehl absetzen:

/bin/createBackup.sh /media/usb0

Es dauert dann je nach Umfang der Installation ein paar Sekunden. Dann könnt ihr über WINSCP im Verzeichnis /media/usb0 nachschauen und seht dort die erstellte Sicherung:

Wie oben schon mal beschrieben hat die Sicherungsdatei die gleiche Namenskonvetion wie die Sicherungen, welche über die WebUI erstellt werden.

Auslastung des USB-Sticks

Ich habe in meinem Fall einen USB-Stick mit einer Kapazität von 16GB im Einsatz.

Nach Erstellung von 40 Sicherungen (bei täglich einer Sicherung) über Mit „usbmount„twas mehr als einen Monat habe ich mal eine Abfrage gemacht, um die Auslastung des USB-Sticks anzuzeigen. Dies könnt ihr mit dem nachfolgenden Befehl selbst durchführen:

df -h /dev/sda1

Wie ihr sehen könnt, habe ich nach der täglichen Sicherung von etwas mehr als einem Monat lediglich eine Auslastung von 1%. Damit sollte die Speicherkapazität kein Problem darstellen und es lassen sich viele Monate sichern.

Restore über WebUI durchführen

Wenn ihr den Restore nicht über SSH durchführen möchtet, dann ist es auch keinerlei Problem den USB-Stick aus der Raspberry Pi zu entnehmen und in euren PC einzustecken. Damit habt ihr die Möglichkeit über den gewohnten Weg mittels WebUI die gewünschte Sicherung zurück zuspielen.


Danach könnt ihr den USB-Stick wieder in die Raspberry Pi stecken und euer Backup Szenario läuft wie geplant weiter.

Weitere Optionen

Zur Zeit teste ich noch zwei weitere Skripte. Zum einen um die Auslastung des USB-Sticks in eine HomeMatic Variable zu schreiben. Diese möchte ich dann auswerten und eventuell auch auf dem Startbildschirm anzeigen.

Mit dem zweiten Skipt möchte ich Sicherungsdateien, welche ein bestimmtes Alter erreicht  haben, automatisch gelöscht werden. Damit kann dann sicher gestellt werden, das der Backup nicht mehr funktioniert, weil der USB-Stick voll ist.

Sobald ich diese Skripte produktionsreif habe, werde ich im Blog darüber berichten.

Wichtiger Hinweis

Wenn ihr den Firmware Update über das AddOn rmupdate durchgeführt habt, ist es sehr wichtig, dass ihr nach dem erfolgreichen Update die Download Datei, welche im Rahmen der Updates gebraucht wurde, über das AddOn zu löschen (siehe Screenshot):

Solltet ihr dies nicht durchführen, wird euer nächster Backup eurer HomeMatic Daten sehr viel größer sein. Da die Download Datei mitgesichert wird. Dadurch wird die Backup Datei nicht nur größer, sondern auch die Laufzeit für den Backup ist erheblich länger.

Fazit

Ich führe auf diese Art und Weise nun schon eine Weile täglich meine Sicherung der HomeMatic Zentrale durch. Bisher hat es alles perfekt funktioniert und ich habe auch testweise schon mehrfach einen Restore durchgeführt.

Sicherheit USB-Stick

Da auf dem USB-Stick ja keine hohe Anzahl von Schreibvorgängen stattfindet, sollte das auch keinerlei Problem darstellen. Aus meiner Sicht ist für diese Anwendung ein USB-Stick völlig ausreichend. Eine Festplatte oder eine SSD ist glaube ich überproportioniert.

Doppelte Sicherung

Wenn jemand auf absolute Sicherheit setzen möchte, könnte er beispielsweise auch einen zweiten USB-Stick in einen weiteren Slot der Raspberry stecken und dort eine weitere Sicherung ablegen. Somit hat man dann quasi eine doppelte Sicherung auf unterschiedlichen Medien realisiert und erfüllt damit dann sehr hohe Sicherheits Anforderungen.

Was mich an dieser Lösung wirklich begeistert ist die Tatsache, das bis auf einen USB-Stick keine weitere (teure) Hardware benötigt wird und auch die komplette Software bereits im RaspberryMatic vorhanden ist. Vielen Dank dafür.

Viel Spass beim Ausprobieren und dem guten Gefühl, eure Daten gesichert zu haben.

Das könnte Dich auch interessieren

Raspberrymatic – EINFACHE automatische Sicherung auf USB-Medium – al...
Aufrufe 1294
In meinem letzten Artikel "Raspberrymatic - Einfache automatische Sicherung auf USB Medium" habe ich beschrieben, wie es möglich ist mit RaspberryMati...
Details – Homematic IP Netzausfallüberwachung HmIP-PMFS
Aufrufe 1473
Es muss nicht immer der komplette Stromausfall sein. Schon ein lokaler unbemerkter Stromausfall kann enorme Schäden verursachen. Dies könnte beispiels...
Homematic IP Rauchwarnmelder HmIP-SWSD zusätzlich als Alarmsirene nutzen
Aufrufe 2216
In den meisten Bundesländern sind Rauchwarnmelder bereits gesetzlich vorgeschrieben. Unabhängig davon sind Rauchwarnmelder immer eine gute Entscheidun...
NEUHEIT – Homematic IP Funk-Klingeltaster HmIP-DBB, ARR-Bausatz
Aufrufe 2113
Bereits am 25.07.2018 habe ich euch in dem Artikel "Vorschau - Neuigkeiten 09.2018" über diesen Aktor informiert. Nun ist er verfügbar und ich möchte...
Homematic IP – Alarmsirene Außen ab sofort bestellbar
Aufrufe 1947
Ende Mai habe ich euch informiert, das eQ-3 eine Alarmsirene  Außen plant und interessierte Kunden zu einer Design Abstimmung einlädt. Hier könnt ihr...
VORSCHAU – Neuigkeiten 09.2018 – Homematic IP Kombisignalgeber
Aufrufe 2435
Aktuell hat ELV einige Neuigkeiten vorgestellt. Wie üblich wird noch nicht allzu viel verraten, aber es sind aus meiner Sicht trotzdem interessante Sa...
13 Kommentare
  1. fullcane sagte:

    Hallo,

    seit neuestem verlangt die CCU den Anschluss eines USB-Sticks, um Diagrammdaten speichern zu können. Ich habe also einen FAT32-formatierten Stick in den Raspberry gesteckt, aber die CCU erkennt den offenbar nicht. Meine Konfiguration:
    Raspberry Pi 3 Modell B, piVCCU3-Image vom 26.09.2018. Woran könnte das liegen?

    Gruß
    fullcane

    Antworten
  2. Joachim sagte:

    In der neuen Version 3.37.8.20180929 von RaspberryMatic ist einautomatisches Backup auf USB-Stick enthalten. Es lässt sich sogar die Anzahl der Backups einstellen. Für das Backup ist zwingend ein USB-Stick notwendig, ebenso werden Diagrammdaten nur noch auf USB-Stick bzw. ein gemountetes Speichervolumen geschrieben.

    Antworten
  3. Thorsten sagte:

    Hallo zusammen,

    ist in der Backup-Datei alles enthalten?
    Also sowas wie Node-Red wenn es auf dem RasPi läuft?
    Mein File ist 52mb groß, da könnte schon einiges enthalten sein.

    Gruß
    Thorsten

    Antworten
    • Werner
      Werner sagte:

      Hallo Thorsten,

      Der Backup umfasst genau den gleichen Umfang als würdest du via WebUI eine Sicherung anstoßen. Ich habe aktuell auch Node Red installiert und von dem Tag an hat sich die Größe der Backup Datei von 4.540 KB auf 52.310 KB verändert. Wenn Node Red wieder deinstalliert wird, reduziert sich sowohl die Größe der Backup Datei wie auch logischerweise die Laufzeit der Sicherung.

      Gruss
      Werner

      Antworten
  4. Werner
    Werner sagte:

    Wichtiger Hinweis

    Wenn ihr den Firmware Update über das AddOn rmupdate durchgeführt habt, ist es sehr wichtig, dass ihr nach dem erfolgreichen Update die Download Datei, welche im Rahmen der Updates gebraucht wurde, über das AddOn löscht.
    Solltet ihr dies nicht durchführen, wird euer nächster Backup eurer HomeMatic Daten sehr viel größer sein. Da die Download Datei mitgesichert wird. Dadurch wird die Backup Datei nicht nur größer, sondern auch die Laufzeit für den Backup ist erheblich länger.

    Ich habe einen entsprechenden Eintrag mit Screenshot in diesem Artikel eingefügt.

    Werner

    Antworten
  5. Michael sagte:

    Hallo!

    Zwei Fragen zu den Sicherungskopie-Dateien:
    1. Die „normale“ Systemsicherung über das das WebGUI der Homematic („Backup erstellen“) hat eine Grüße von 7 bis 8 MB, die „automatische“ Systemsicherung über das Skript ist 15 MB groß. Beide sind heute erstellt.
    Woran liegt es?

    2. Auf dem MAC ist das Dateisymbol der „normale“ Systemsicherung ein Blatt mit Faltecke, das Dateisymbol der „automatischen“ Systemsicherung sieht aus wie das Terminal-Fenster.
    Was ist der Unterschied?

    Vielen Dank und viele Grüße
    Michael

    Antworten
    • Werner
      Werner sagte:

      Hallo Michael,

      das kann ich leider nicht beantworten, da bei mir die Backups die gleiche Größe aufweisen. Ich schicke dir nachher mal per Mail einen Screenshot zu.

      Zu den Dateisymbolen auf der MAC Seite muss ich ebenfalls passen, da ich keinen MAC besitze und die Mimik nicht nachvollziehen kann.

      Grüße
      Werner

      Antworten
  6. Tom sagte:

    Hallo Werner vielen Dank für deinen tollen Beitrag. Hast du das kleine Script auch als „Text“ zum kopieren. Dann muss man diesen nicht abtipppen und vermeidet Fehler.
    Vielen DANK TOM

    Antworten
  7. Mathias sagte:

    Hi Werner,
    vielen Dank für die Info!
    genau so habe ich es auch gemacht.
    Ich habe nur zusätzlich die CuxD devlogfile auf dem gleichen USB-Stick abgelegt.
    Mir wäre es lieber, wenn man nur 3 oder 4 Backups auf dem Stick hätte. Die vorgehenden sollten automatisch gelöscht werden. Es wird ja bei einem crash oder bei einem Update sowieso das letzte Backup eingespielt.

    Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend. Dieses Formular speichert Ihren Namen, Ihre Email Adresse sowie den Inhalt, damit wir die Kommentare auf unsere Seite auswerten können. Weitere Informationen finden Sie auf unserer Seite der Datenschutzbestimmungen.

Ich akzeptiere die Speicherung der Daten.