Home Assistant: надёжный бэкап и восстановление — защищаем настройки умного дома

Пошаговое руководство по созданию, автоматизации и проверке бэкапов Home Assistant. Защитите настройки умного дома от сбоев. Снимки, Git, Google Drive, скрипты.
Введение
Представьте: вы потратили месяцы на тонкую настройку Home Assistant. Автоматизации, которые будит вас плавным светом, умные сценарии для экономии энергии, десятки интеграций с самодельными устройствами на ESP32 и Raspberry Pi. И вот в один не самый прекрасный день ваш мини-сервер на Orange Pi решает «уйти в отрыв» после неудачного обновления, или SD-карта, наконец, исчерпывает свой ресурс записи. Без рабочей резервной копии это означает десятки часов работы на восстановление, если вообще удастся всё воссоздать в точности. Лично я прошёл через это, и с тех пор бэкап — это не пункт в списке дел, а священный ритуал.
В этой статье мы разберём не только как делать бэкапы, но и как выстроить систему их создания, хранения и, что критически важно, регулярного тестирования восстановления. Потому что бэкап, который никогда не проверялся на восстановление, — это иллюзия безопасности.
Почему стандартного «Снимка» недостаточно?
Home Assistant имеет встроенную функцию Snapshot (Снимок) в разделе «Резервные копии». Это отличная отправная точка: одним кликом создаётся архив с конфигурацией, базой данных, дополнениями (Add-ons) и настройками операционной системы (если вы используете Home Assistant OS).
Однако у этого подхода есть ограничения: 1. Хранятся локально. Если сгорит SSD или «умрёт» SD-карта, пропадёт и бэкап. 2. Ручной процесс. Человек склонен забывать о регулярном создании копий. 3. Нет истории. Последний снимок может быть тоже битым, а предыдущей версии у вас нет.
Поэтому наша цель — автоматизировать создание снимков и их отправку в защищённое внешнее хранилище.
Часть 1: Встроенные инструменты и ручное копирование
Создание и загрузка снимка через интерфейс
В левом меню HA: Настройки → Система → Резервные копии. Нажмите «СОЗДАТЬ РЕЗЕРВНУЮ КОПИЮ». Выберите, что включать (рекомендую полный бэкап). Пароль — опционально, но крайне рекомендуется для защиты данных.
Типичная ошибка: Игнорирование поля «Пароль». Если ваш бэкап попадёт в чужие руки, злоумышленник получит все ключи и пароли вашей системы.
Где лежат файлы? Ручное резервное копирование
Иногда нужно скопировать только конфигурацию (/config). Это полезно при переходе на новую версию или для версионного контроля через Git.
Если у вас Home Assistant OS или Supervised, получить прямой доступ к файлам сложно. Но при использовании Home Assistant Container или Core (установленного, например, в Python venv) конфигурация лежит в указанной вами папке (часто ~/.homeassistant или /usr/share/hassio/homeassistant).
Быстрое ручное копирование через терминал (для HA Container/Core):
# Переходим в директорию с конфигурацией
cd ~/.homeassistant
# Создаём timestamp для имени архива
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
# Создаём сжатый архив, исключая кэш и временные файлы
tar czf /tmp/ha_backup_$TIMESTAMP.tar.gz . --exclude='*.db' --exclude='*.db-shm' --exclude='*.db-wal' --exclude='*.log' --exclude='deps' --exclude='*.pyc'
Комментарий: Мы исключаем файлы базы данных (*.db*), логи и кэш зависимостей, чтобы архив был меньше и содержал только важные конфигурационные файлы (YAML, configuration.yaml, папки www, custom_components и т.д.).
Часть 2: Автоматизация — сердце надёжного бэкапа
Способ 1: Используем дополнение «Google Drive Backup»
Это, пожалуй, самый популярный и простой способ для пользователей Home Assistant OS или Supervised.
- Установите дополнение «Samba share» (чтобы позже проверить файлы) и «Google Drive Backup» из магазина дополнений.
- Следуйте инструкциям в интерфейсе дополнения: вам потребуется создать проект в Google Cloud Console, получить OAuth-ключи и авторизовать доступ к вашему Google Диску.
- Настройте расписание в самом дополнении (например, каждую ночь в 2:00) и политику хранения (хранить последние 10 копий).
Преимущество: Бэкапы автоматически уезжают в облако, есть история.
Способ 2: Автоматизация через HA + скрипт в cron
Для более гибкого сценария (отправка на свой NAS, в S3-совместимое хранилище) создадим свою автоматизацию.
Сначала создадим скрипт создания снимка через службу HA API. Нам понадобится Long-Lived Access Token. Получить его: Профиль → Прокрутить вниз → Создать токен.
Создаём shell-скрипт (/config/scripts/create_backup.sh):
#!/bin/bash
# Скрипт создания бэкапа через API Home Assistant
HA_URL="http://localhost:8123"
HA_TOKEN="YOUR_LONG_LIVED_TOKEN_HERE" # ЗАМЕНИТЕ на свой токен!
BACKUP_DIR="/media/nas/ha_backups" # Или другую папку для хранения
# Создаём снимок через API
RESPONSE=$(curl -s -X POST -H "Authorization: Bearer ${HA_TOKEN}"
-H "Content-Type: application/json"
-d '{"name":"Auto Backup", "password":"YourStrongPassword123"}'
${HA_URL}/api/backups/new)
# Парсим ответ, чтобы получить slug (идентификатор) созданного снимка
SLUG=$(echo $RESPONSE | jq -r '.slug')
if [ "$SLUG" == "null" ]; then
echo "Ошибка создания снимка: $RESPONSE"
exit 1
fi
echo "Снимок создан: $SLUG"
# Даём время на запись (опционально)
sleep 30
# Скачиваем созданный файл снимка
curl -s -H "Authorization: Bearer ${HA_TOKEN}"
-o "${BACKUP_DIR}/ha_backup_$(date +"%Y%m%d_%H%M%S").tar"
${HA_URL}/api/backups/${SLUG}/download
echo "Бэкап сохранён в ${BACKUP_DIR}"
Важно: Сделайте скрипт исполняемым: chmod +x /config/scripts/create_backup.sh. И подставьте свой токен и пароль!
Теперь добавим задание в cron (если вы в контейнере или Core). Отредактируйте crontab: crontab -e.
# Каждый день в 3 ночи создаём бэкап
0 3 * * * /config/scripts/create_backup.sh >> /config/backup.log 2>&1
Способ 3: Резервное копирование только конфигурации в Git
Это метод для продвинутых пользователей, который даёт вам историю изменений каждого файла. Идеально подходит для управления конфигурацией как кодом.
Инициализируем репозиторий в папке конфигурации:
cd /config
git init
git config user.email "you@example.com"
git config user.name "Your Name"
# Игнорируем файлы, которые не нужно хранить в git
echo "*.db" >> .gitignore
echo "*.log" >> .gitignore
echo ".storage/" >> .gitignore
echo "deps/" >> .gitignore
git add .
git commit -m "Initial Home Assistant config"
Теперь можно подключить удалённый репозиторий (GitHub, GitLab, Gitea) и настроить автоматический пуш через cron. Крайне важно: если вы выкладываете в публичный репозиторий, используйте git-crypt или ansible-vault для шифрования секретов (паролей, токенов)!
Для Home Assistant внутри виртуальной машины добавьте второй уровень защиты: резервное копирование VM через Proxmox Backup Server. В инструкции есть подключение хранилища и пробное восстановление под новым VMID с изолированной сетью.
Часть 3: Восстановление — самый важный этап
Бэкап без проверки восстановления не существует. Проверяйте его хотя бы раз в квартал.
Восстановление из полного снимка (через интерфейс)
- Загрузите файл
.tarснимка на ваш компьютер. - В интерфейсе HA: Настройки → Система → Резервные копии.
- Нажмите «ЗАГРУЗИТЬ РЕЗЕРВНУЮ КОПИЮ», выберите файл и введите пароль, если он был установлен.
- После загрузки снимок появится в списке. Нажмите «ВОССТАНОВИТЬ» и подтвердите действие.
Типичная ошибка: Попытка восстановить снимок из более новой версии HA на более старую. Восстановление обычно работает только на той же или более новой версии системы.
Восстановление конфигурации из папки
Если вы переезжаете на новый сервер или разворачиваете HA с нуля (например, после поломки SD-карты на Raspberry Pi), можно использовать ручное копирование.
- Установите Home Assistant на новую систему (советую выбрать стабильную ОС, о чём я писал в статье /raspberry-pi-os-vs-ubuntu-vs-dietpi-vybor-os-dlya-domashnego-servera).
- Остановите HA:
sudo systemctl stop home-assistant@homeassistant(зависит от типа установки). - Удалите свежесозданную пустую папку конфигурации и замените её своей резервной копией.
- Запустите HA снова и внимательно смотрите логи на предмет ошибок.
Часть 4: Тестирование восстановления (Проверка результата)
Не доверяйте слепо процессу. План тестирования:
- На виртуальной машине или втором одноплатнике: Разверните чистую установку Home Assistant OS. Восстановите на неё последний снимок. Проверьте:
- Запускаются ли все интеграции?
- Работают ли ключевые автоматизации (можно проверить через сервис
automation.trigger)? - Доступны ли все устройства?
- Проверка целостности архива: Регулярно скачивайте один из бэкапов с облака или NAS и пробуйте его открыть архиватором.
- Сквозной тест раз в полгода: Выделите выходной, сделайте полный бэкап работающей системы, затем настройте новый сервер с нуля, восстановитесь и убедитесь, что умный дом работает как прежде. Это лучший способ выявить скрытые проблемы.
Заключение
Построение надёжной системы бэкапов для Home Assistant — это не разовое действие, а процесс. Начните с встроенных снимков и дополнения Google Drive Backup. По мере роста вашей системы добавьте резервное копирование конфигурации в Git. Самое главное — внедрите в привычку регулярное тестирование восстановления.
Помните, что ваш умный дом — это сложная экосистема. Защищая её конфигурацию, вы защищаете не только время, но и комфорт. А для того, чтобы удалённо управлять восстановлением или иметь безопасный доступ к вашему HA извне, вам пригодится настройка WireGuard для доступа к домашней сети. Удачи в настройке, и спите спокойно — ваши автоматизации в безопасности!
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.
Home Assistant: А есть ли аналоги?
Xiaomi Miot Auto в Home Assistant: установка, настройка и подключение устройств Xiaomi
Matter и Thread в Home Assistant: новый стандарт умного дома 2024
Как устанавливать репозитории из GitHub в Home Assistant: HACS, custom_components и ручной способ
LocalTuya. Перепрошивка розеток Tuya: Как отвязать розетку от облака.
Sonoff Zigbee 3.0 USB Dongle Plus в Home Assistant: настройка ZHA и Zigbee2MQTT