Proč zálohovat?
Zálohy bývají jedny z nejčastějších opomíjených nastaveních v mnoha případech. A přitom je to právě záloha, která může v případě havárie systému vést k zásadnímu rozdíl mezi tím ztratit veškeré nastavení a data a nebo mít systém opět funkční doslova za pár minut.
Bohužel k tomuto stavu částečně dopomáhá i samotný HomeAssistant, kde na zálohy není kladen nějaký větší důraz a dokumentace na toto téma je poměrně chudá.
Dneska si proto ukážeme dvě možnosti – jednu bez nutnosti cokoliv doinstalovávat a druhou promakanější ale taky složitější na nastavení.
1. Standardní zálohy v supervisoru
Pokud máte HomeAssistant nainstalovaný pomocí Hassio tak jednou z benefitů supervisoru je možnost vytvářit si tzv. snapshoty, což není nic jiného než zálohy jak samotného HomeAssistanta tak i všech addonů.
Možnost vytváření záloh najdeme v sekci Supervisor -> Snapshots a máme možnost vytvořit buď plnou zálohu a nebo pouze konkrétních částí.
Zálohu můžeme navíc zavolat pomocí služby hassio.snapshot_full
pro plnou zálohu a díky tomu lze tak zálohování naplánovat a automatizovat.
⚠️ Mějte na paměti, že kompletní záloha bude sice zkomprimovaná, ale i tak může zabrat poměrně velké množství na disku – standardně je uložena do adresáře backup
.
Vytvoříme si například automatizaci, která bude vytvářet plné automatické zálohy každé úterý:
alias: Záloha
description: 'Automatická týdenní plná záloha Hassio každé úterý'
trigger:
- platform: time
at: '02:00:00'
condition:
- condition: time
weekday:
- tue
action:
- service: hassio.snapshot_full
data_template:
name: 'Hassio ({{now().strftime(''%d.%m.%y'')}})'
mode: single
Tohle řešení má ale jednu poměrně zásadní nevýhodu a to že se nám zálohy budou časem pouze hromadit – chybí nějaké možnost uchovávání např. pouze určitého počtu záloh.
2. Zálohy pomocí HACS addonu Auto Backup
Pokud to se zálohováním myslíte opravdu vážně pak doporučuji si doinstalovat HACS addon AutoBackup, který má jednak velmi detailně zpracovanou dokumentaci a také mnohem širší možnosti.
? Jestliže zatím HACS v HomeAssistentovi nemáte, doporučuji se podívat do jednoho z mých starších článků jak ho doinstalovat.
Instalace
Nejprve si v HACS najdeme integraci s názvem Auto Backup tím, že klikneme na Community v levé liště, přepneme se na integrace, klikneme na velké modré tlačítko Explorer & Add Repositories a do hledacího pole napíšeme Auto Backup
.
Na nalezenou integraci klikneme a úplně dole klikneme na Instalovat tento repositář v HACS.
V dalším dialogu necháme poslední verzi a pokračujeme pomocí Nainstalovat.
Za pár sekund bychom už měli vidět v seznamu Integrací HACS novou položku s červeným rámečkem, která nám jasně říká, že bude potřeba ještě restart HomeAssistatanta a ten provedeme.
Tím instalace ale ještě nekončí a je potřeba udělat jeden další krok. Ten je bohužel formou zápisu do configuration.yaml.
V závilosti na vašem preferovaném způsobu editace tohoto souboru si jej otevřete a přidejte ještě tyto řádky:
auto_backup:
auto_purge: true
Další restart a jsme připraveni na konfiguraci záloh.
Použití v automatizacích
Jakmile máme Auto Backup připravený můžeme ho použít v automatizacích. Stejně jako v případě standardního hassio backupu máme k dipozici buď plnou zálohu a nebo částečnou (s vyjmenováním co chceme zazálohovat).
V prvním příkladu si uvedeme stejnou automatizaci jako výše, ale s jedním rozdílem – budeme uchovávat pouze zálohy ne starší než 4 týdny (28 dní) a specifikujeme, které addony a adresáře nechceme zálohovat.
alias: Záloha (Auto Backup)
description: 'Automatická týdenní plná záloha Hassio každé úterý'
trigger:
- platform: time
at: '02:00:00'
condition:
- condition: time
weekday:
- tue
action:
- service: auto_backup.snapshot_full
data_template:
name: 'WeeklyBackup: ({{now().strftime(''%d.%m.%y'')}})'
keep_days: 28
exclude:
addons:
- Portainer
folders:
- share
mode: single
Služba snapshot_full
a snapshot_partial
má tyto parametry (použijeme je v sekci data_template automatizace):
Parametr | Význam |
---|---|
name | název zálohy |
password | volitelně ochrana zálohy heslem |
keep_days | počet dnů po které chceme zálohu ponechat |
exclude | vyloučení addonů a nebo adresářů ze zálohy – pouze pro full snapshot |
addons | addony zahrnuté v záloze – pouze pro partial snapshot |
folders | adresáře zahrnuté v záloze – pouze pro partial snapshot |
backup_path | vlastní cesta k uložení zálohy |
? Služby auto_backup.snapshot_full
a auto_backup.snapshot_partial
byly přejmenovány na auto_backup.backup_full
resp. auto_backup.backup_partial
V HomeAssistantovi máme dostupnou i novou entitu sensor.auto_backup
, kde můžeme vidět průběh zálohy:
Obnova ze zálohy
Jak už jsem uváděl v sekci standardních záloh Hassio veškeré zálohy najdeme v sekci Supervisor > Snapshots:
Po kliknutí na jeden z dostupných snapshotů si můžeme vybrat zda chceme obnovit vše zahrnuté – výchozí stav a nebo jen některé části. Bohužel zde neexistuje rychlá volba obnovy např. jen jednoho addonu – musíte prostě vše ostatní odtrhnout. Jakmile máme vybráno co potřebujeme klikneme na Restore selected a pak už je potřeba jen počkat než se data ze zálohy obnoví.
Problém může nastat v případě, že jsme si totálně rozbili HomeAssistent a ten nám vůbec nenaběhne. Naštěstí i v tomhle případě nemusíme úplně zoufat.
Pokud máme stále SSH přístup do HomeAssistanta můžeme obnovu udělat i z příkazové řádky.
Seznam dostupných záloh dostaneme pomocí příkazu:
➜ /config ha snapshots list
snapshots:
- date: "2020-12-12T15:52:34.120721+00:00"
name: 'WeeklyBackup: (12.12.20)'
protected: false
slug: 74d2816c
type: partial
- date: "2020-06-20T13:47:59.034784+00:00"
name: Saturday, Jun 20, 2020
protected: false
slug: d064edf4
type: full
- date: "2020-11-30T19:19:36.094272+00:00"
name: Monday, Nov 30, 2020
protected: false
slug: 059e80da
type: full
.. a obnovu pak spustíme pomocí slug příslušné zálohy:
ha snapshots restore --slug 74d2816c
Dnešním postupem jsme si vytvořili nastavení záloh na stejný počítač na kterém běží HomeAssistant, což řeší jen část problémů. V případě např. chyby na disku se k záloze nemusí vůbec dostat a pro tyto případy se hodí mít aktualizaci i mimo samotný počítač HomeAssistenta. Ale o tom až někdy zase příště.
Nyní už máte lokální zálohu nastavenou a můžete se tak bez větších obav pustit do experimentování s HA a aktualizovat např. addony na novější verze.
Kompletní série o HomeAsistantovi obsahuje následující články:
- 1. část – Instalace HomeAsisstent
- 2. část –
Integrace Sonoff s firmware Sonoff-Tasmota - 3. část –
Integrace Homekit - 4. část –
Integrace Sonoff s firmware Sonoff-Tasmota – 2 část - 5. část –
Integrace s Wemos D1 asenzory teploty - 6. část –
Integrace Sonoff s firmware ESPHome - 7. část –
Integrace Sonoff POW s firmware ESPHome - 8. část –
Integrace LED Magic Home s firmware ESPHome - 9. část –
Integrace Xiaomi Mijia a Aqara - 10. část – Integrace vlastní Zigbee gateway
- 11. část – Vzdálený přístup do Hass.io z Internetu
- 12. část – zobrazení senzorových data pomocí InfluxDB a Grafany
- 13. část – Hass.io Add-ony, které používám
- 14. část – Integrace Xiaomi Mi Flora
- 15. část – Integrace Withings (Nokia)
- 16. část – náhrada SQLite databází MySQL
- 17. část – HACS Add-ony – instalace a konfigurace
- 18. část – Integrace Sonoff s firmware eWeLink
- 19. část – nová integrace Sonoff pro HA
- 20. část – měření spotřeby
- 21. část – automatické zálohy a obnovení ze zálohy
- 22. část – napojení hlasového asistenta Amazon Alexa
- 23. část – automatické zálohy na síťový sdílení disk (Samba)
- 24. část – Bluetooth zařízení a ESPHome proxy
- 25. část – nefunkční aktualizace HomeAssistanta
- 26. část – integrace SwitchBot produktů
- 27. část – integrace fotovoltaiky Growatt
Ahoj, já mám nainstalován doplněk Home Assistant Google Drive Backup a u něho mám nastaveno že vždy v 3:00 udělá zálohu, uloží na SD a tu z předchozího dne uploaduje na google drive (a tam tu nejstarší smaže). Tam jich mám posledních šest, takže zálohy za 7 dní dozadu.
Ale asi jak píšeš, „o tom až někdy zase příště.“
Martin
Martin mě předběhl. Ale používám stejný sw. Hlavní výhodou pro mě je, že zálohu dokáže vykopírovat i mimo zařízení a udržuje jen určitý počet záloh.
ještě přidávám link: Hass.io Google Drive Backup
https://github.com/sabeechen/hassio-google-drive-backup
Jinak Hass.IO od poslední verze, umí provést obnovení ze zálohy hned z úvodního okna po nové instalaci. Takže jestli často laborujete jako já, tak se to velmi vítaná a užitečná funkce.
Jinak pro zajímavost jakou velikost má vaše záloha? Já loguji data jen za posledních 48 h a to ještě jen některé, i tak má moje záloha cca 350-400 MB. Když jsem zálohoval vše tak jak je nastaveno v Hass.IO, byl jsem někde cca kolem 2.5-3.0 GB.
Tak to jsem žabař, mám tam pár zařízení a full záloha 330 MB.
Co ale je zajímavé, že čas od času se mi na google drive neodmaže ta nejstarší záloha, ale druhá nejstarší a třeba teď tam mám zálohu z 1. 12., která tam stále visí a označená pro smazání je ta z 9. 12.
Delku logovani omezenu nemam, loguji cca 50 hodnot a jsem na 120MB
A je to tu, aneb došlo na praktické využití 🙁
Po včerejším upgrade mi HA nenaběhl ani po třech hard restartech. Takže jsem na SD kartu nahrál nový image a při spuštění jsem natáhl poslední full zálohu. Sice se objevily chybky, které teď řeším, ale jako celek opět funguji. A časově: flashnutí SD karty a příprava zálohy z google drive zabralo tak 20 min, obnova trvala přes hodinu.
Takže jak říkal jeden soudruh: Zálohovat! Zálohovat! Zálohovat!
Nemáte někdo problém s automatickým mazání starčích záloh?
mám nastaveno – keep_days: 2
ale ani po 5 dnech záloha ,,nezmizí“ a musím jí odstranit ručně
Ahoj,
já mám keep_days: 5 a chová se mi to tak, že zůstane viset nejstarší a maže se vždy druhá nejstarší. Konkrétně teď tam mám zálohy z dneška (noc) a pak 1 den, 2 dny, 3 dny a 8 dní starou zálohu. A příznak budoucího smazání má ta 3denní. Občas tu nestarší smažu ručně, ale zase se to vrátí do chybného chování.
Taky nechápu.
U tebe je to v podstatě stejné chování.
M.
Jsem začátečník s HA a mám začátečnický dotaz:
Kam s výše uvedeným „skriptem“ pro definici zálohování.
Je to pro mě problém se všemi návody, kdy autoři návodu automaticky předpokládají kam co patři, což je pro zelenáče trošku problém…
Předem děkuji za nasměrování