Home Assistantant: Automatisch Backup in 2 Schritten erstellen

Wie ich bereits in einem vorherigen Beitrag geschrieben habe, ist es sehr wichtig regelmรครŸig Backups von der eigenen hass.io-Instanz zu erstellen (hass.io Snapshot/Home Assistant Backup). Wie bei eigentlich allen wichtigen Dingen im Leben, ist es im schlimmsten Fall der Fรคlle nahezu unbezahlbar ein aktuelles Backup zu haben. Sollte aus irgendeinem Grund das eigene Smarthome defekt sein und eine Reparatur nicht mรถglich sein, ist ein aktuelles Backup (Wikipedia: Backup/Datensicherung) die einzige Rettung. Wer jedoch kein Backup hat, wird nicht umher kommen, das gesamte System neu aufzusetzen.

Aus einem ganz aktuellen Erlebnis kann ich bestรคtigen, dass ein Backup einem unzรคhlige Stunden ersparen kann, die anderenfalls – ohne Backup – notwendig wรคren, um das Smarthome wieder von Null auf hochzuziehen. Durch eine fehlerhafte Konfiguration und einen wirklich unbedachten Neustart des Raspberry Pi, hatte ich zuletzt mein hass.io unbrauchbar gemacht. Der Raspberry Pi bootet nicht mehr vollstรคndig, so dass ich keinen Zugriff auf das Webinterface, meine Ordner-Freigaben oder SSH hatte.

Mein Raspberry Pi mit hass.io darauf installiert war von der einen Minute zur anderen unbrauchbar. Mein mรผhevoll und in unzรคhligen Stunden aufgesetztes Smarthome war somit alles andere als smart. Es war mir nicht mรถglich auf die zuvor angepasste Datei configuration.yaml zuzugreifen um den Fehler zu korrigieren, so dass mir relativ schnell klar wurde, dass es nur eine wirkliche Option gibt: ein Backup muss aufgespielt werden!

Natรผrlich bedeutet ein Backup grundsรคtzlich, dass alle seit Erstellung des Backups vorgenommenen ร„nderungen verloren gehen. Jedoch bedeutet dies, sofern Backups regelmรครŸig erstellt werden, in der Regel nur einen geringen Verlust. Insbesondere, wenn die Alternative ein kompletter Neuaufbau von hass.io mit allen integrierten Komponenten, Scripten und Automatisierungen ist!

Da ich von mir erstellte Backups regelmรครŸig automatisch per FTP auf ein Netzwerklaufwerk kopiere, hatte ich trotz des Totalausfalls meiner hass.io-Installation Zugriff auf eines dieser Backups. Das Backup konnte ich dann nutzen, um eine neue hass.io-Instanz aufzusetzen um dann das gewรผnschte Backup wiederherzustellen. Diese Aktion hat mich (inkl. der Einrichtung der neuen hass.io-Instanz) in Summe keine zwei Stunden gekostet, wobei ich hiervon die meiste Zeit eigentlich nichts tun sondern lediglich auf hass.io warten musste.

hass.io Snapshot-Backup aufspielen

Dieses vermeintliche Horror-Szenario, mit letztendlich gutem Ausgang und relativ wenig verloren gegangenen Einstellungen/Anpassungen hat mich jedoch veranlasst meine Backup-Prozesse zu hinterfragen. Bislang habe ich manuell Snapshots erstellt und diese automatisch alle paar Tage per FTP von der SD-Karte des Raspberry Pi auf ein lokales Laufwerk kopiert. Ich habe versucht nach jeder grรถรŸeren Anpassung daran zu denken ein manuelles Backup zu erstellen. Natรผrlich habe ich dies aber auch immer wieder mal vergessen.

Solange das System (wie in meinem Fall) nicht abraucht, stellt ein fehlendes aktuelles Backup kein Problem dar. Jedoch verdeutlichte mir mein Backup-Erfahrung, dass ich mich bei den Backups meiner hass.io-Installation zukรผnftig weniger auf meine eigene Disziplin verlassen will! ๐Ÿ™‚

Genauso, wie die Snapshots automatisch per FTP auf das lokale Laufwerk gesichert werden, sollen zukรผnftig auch die Snapshots selbst in regelmรครŸigen Abstรคnden automatisch erstellt werden, so dass ich immer ein aktuelles Backup habe.

Home Assistant Backup

Zum Glรผck bietet hass.io hierfรผr eine Funktion, die das automatische Erstellen von Backups ermรถglicht und sehr einfach macht. Warum diese Funktion nicht prominent kommuniziert wird verstehe ich leider nicht – aber deswegen erzรคhle ich hier davon:

An Board bietet hass.io den Service hassio.backup_full mit dem ein kompletter Snapshot erstell wird. Kombiniert man diesen Service mit einer Mini-Automation, erstellt einem hass.io automatisch in den gewรผnschten Abstรคnden Backups/Snapshots. Hier meine Beispiel-Automation, mit der ich neuerdings jeden Donnerstag und Sonntag um 03:00 ein komplettes Backup erstelle:

- alias: '[System] - Make Hassio backup'
  trigger:
    - platform: time
      at: '03:00:00'
  condition:
    - condition: time
      weekday:
        - sun
        - thu
  action:
    - service: hassio.backup_full
      data_template:
        name: "DailyBackup: {{ now().strftime('%Y-%m-%d') }} Version {{ states('sensor.current_version') }}"

Dieses Backup ist identisch mit den manuell erstellten Backups also somit eine ideal Grundlage fรผr das eigene Backup-Konzept. Die so regelmรครŸig und automatisch erstellen Backups werden jeden Donnerstag und Sonntag um 04:00 Uhr per FTP auf ein lokales Laufwerk gesichert, so dass ich auch ohne hass.io in (funktionalem) Betrieb auf die Backups zugreifen kann.

Solltest du den Backup-Service von hass.io zuvor auch noch nicht gekannt haben, empfehle ich dir, sofort eine vergleichbare Backup-Automation aufzusetzen, um im schlimmsten Fall der Fรคlle kein Fiasko zu erleben!

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

7 Gedanken zu „Home Assistantant: Automatisch Backup in 2 Schritten erstellen“

  1. Du schreibest „…komplettes Backup erstelle ..“

    Und „Snapshot“.
    Ist damit eine Art „Abbild“ der Festplatte gemeint?
    Eher nicht, oder?

    Aber was ist letztlich alles drin in dem „kompletten Backup“?
    Alle Devices?
    Und auch Konfiguration und Daten einer Influx-DB und Grafana-Einstellungen?

    Antworten
    • Frรผher hieรŸen Backups in Home Assistant „Snapshots“. Aus dieser zeit stammt der Beitrag. Ich habe gerade den Beitrag aber dahingehend angepasst, dass es auch heute „korrekt“ ist. ๐Ÿ˜‰

      Ein komplettes Backup beinhaltet alles, was du an individuellen Anpassungen vorgenommen hast. Mit einem solchen kompletten Backup kannst du auf einem komplett neuen Gerรคt eine 1:1 Kopie durch Einspielen dieses Backups erstellen.

      Ich habe keine Erfahrungen diesbezรผglich mit Influx-DB und Grafana, unterstelle aber, dass dies ebenfalls in einem kompletten Backup enthalten sein wird!

      Antworten
  2. Vielen Dank, das Datum klappt. Jetzt habe ich weiter herumgebastelt und den abgesicherten Modus entdecken mรผssen ๐Ÿ™ . Wie geht das mit der Version wirklich? Wenn ich in der configuration.yaml den Wert „sensor: – platform: version“ eintrage, kommt eine Fehlermeldung, das „sensor“ bereits benutzt wurde. Trage ich es in den entsprechenden Abschnitt mit ein, klappen die Sensoren fรผr den Raspberry nicht mehr. Woher bekomme ich die Versionsinformationen?
    Quelle: https://www.home-assistant.io/integrations/version/

    Antworten
  3. Hallo, auch hier muss ich etwas fragen: Ich nehme an, das der Befehl „data_template:“ dazu dienen soll, der Datei einen vernรผnftigen Namen zu geben. In der Zeile „name: Backup {{ now().strftime(‚%Y-%m-%d‘) }“ stimmen die geschweiften Klammern nicht (2 auf, aber nur einmal zu). Lasse ich eine Klammer weg, kann ich diesen Teil zumindest ohne Fehler abspeichern. Allerdings รคndert sich mein Dateiname nicht.

    Antworten
    • Hi Sven, auch hier hast du recht! ๐Ÿ™‚ Ich habe den Code-Schnipsel soeben korrigiert und aktualisiert, da ich mittlerweile auch die aktuelle Version von Home Assistant im Dateinamen mit angebe.

      Antworten

Schreibe einen Kommentar