В данной статье рассмотрена настройка создания автоматических резервных копий Home Assistant и сохранение их на облачное хранилище Google Drive. Крайне рекомендую сделать это сразу после установки системы, особенно если Вы используете MicroSD карточки для разворачивания системы, выход из строя которых просто вопрос времени.

Все, что нужно для решения данной задачи – установить и настроить расширение Home Assistant Google Drive Backup.

Установка расширения

  1. Открываем раздел Supervisor и переходим в Add-on Store. Далее нажимаем на троеточие справа вверху и выбираем Repositories.
    Установка расширения для резервного копирования
  2. В появившееся окно добавляем следующий адрес https://github.com/sabeechen/hassio-google-drive-backup, нажимаем ADD и закрываем, нажав CLOSE.
  3. После добавления внизу страницы появится новый аддон. Для установки – нажимаем на него, кликаем на INSTALL и ждем несколько минут.
  4. После установки будут доступны 3 переключателя:
    • автозапуск при загрузке;
    • Watchdog, позволяющий автоматически перезапустить аддон при его краше;
    • добавление аддона в сайдбар для быстрого доступа.
  1. Осталось привязать его к Google Drive. Для этого нажимаем START, далее OPEN WEB UI и AUTHENTICATE WITH GOOGLE DRIVE, после чего нас перебросит на страницу входа в Google Drive. Логинимся с предоставлением разрешений. На следующем окне копируем текст с нижнего окна, он может пригодиться, если при автоматической привязке выскочит ошибка и нажимаем SEND CREDENTIALS. Если выдало ошибку, то возвращаемся в аддон и вставляем скопированный ранее код. SAVE. Все готово.
    Привязка к Гуглу

Настройки резервного копирования

Чтобы перейти в настройки: в левом сайдбаре выбираем Snapshots и в открывшемся окне – Settings. Если Вы не выносили меню в сайдбар, то переходим в раздел с аддонами, заходим в Home Assistant Google Drive Backup, далее Open Web UI и оттуда уже в настройки.

Основные пункты, которые может потребоваться изменить:

  • Количество снапшотов, которое необходимо хранить на сервере и на Google Drive. При превышении данного значения, самые старые будут удаляться.
    Количество создаваемых резервных копий
  • В какое время и как часто (в днях) создавать снапшоты.
    Как часто создавать
  • При желании все резервные копии можно сохранять в созданную вручную папку на Гугл Диске. Для этого включаем Manually specify the snapshot folder, нажимаем CHOOSE FOLDER, выбираем папку, копируем появившейся ниже ID и вставляем его в поле Snapshot Folder ID.
    Выбираем папку для сохранения

После завершения настройки нажимаем SAVE.

Создание карточки на главном экране

И последнее, что стоит сделать – создать карточку со всей информацией на главном экране. В первом уроке мы уже вынесли различную техническую информацию на главный экран, так что теперь туда можно добавить информацию о создаваемых бэкапах.

Добавление сенсоров

Первым делом создаем в папке sensor (про вынос в нее файлов было рассказано в прошлом уроке) новый файл и называем его, например, GoogleBackup.yaml. В нем мы создадим сенсоры на основе атрибутов sensor.snapshot_backup.

Создаем новые сенсоры

Открываем созданный GoogleBackup.yaml и прописываем в него следующий код:

  - platform: template
    sensors:
      snapshots_in_google_drive:
        friendly_name: 'Резервных копий на Googe Drive'
        value_template: "{{ state_attr('sensor.snapshot_backup', 'snapshots_in_google_drive') }}"
        icon_template: mdi:folder-google-drive

      snapshots_in_ha:
        friendly_name: 'Резервных копий на сервере'
        value_template: "{{ state_attr('sensor.snapshot_backup', 'snapshots_in_home_assistant') }}"
        icon_template: mdi:home-assistant

      last_snapshot:
        friendly_name: 'Последняя резервная копия была создана'
        value_template: "{{ as_timestamp(state_attr('sensor.snapshot_backup', 'last_snapshot')) | timestamp_custom('%d.%m.%Y %H:%M') }}"
        icon_template: mdi:calendar-clock

Небольшие пояснения:

  1. Сначала мы задаем тип платформы – template, далее начинаем перечислять сенсоры (в примере их 3).
  2. Каждый сенсор начинается с имени. Оно может быть любое, только без заглавных букв, а вместо пробелов используем нижнее подчеркивание. После имени ставим двоеточие и прописываем атрибуты. Соблюдаем вложенность: после sensors: каждый сенсор должен начинаться со сдвигом на два пробела относительно sensors:, а все его атрибуты – со сдвигом на два пробела относительно имени сенсора.
  3. friendly_name: – задает имя, которое будет отображаться на главном экране. Можете написать любое.
  4. value_template: – значение создаваемого сенсора. Тут мы прописываем откуда ему брать данные. Вся информация есть в панели разработчика на вкладке “Состояния”:
    Данные для сенсора
  5. Разберем значение третьего сенсора:
    • as_timestamp – конвертируем значение в UNIX timestamp (необходимо для выполнения следующего пункта).
    • timestamp_custom – прописываем какая информация и в каком формате будет выводиться.
  1. Последняя строчка в атрибутах сенсора – его иконка.

При желании, на основе данных сенсоров можете создать и другие, например, сенсор занимаемого бэкапами места.

Правильность прописанных в value_template: значений можно проверить в редакторе шаблонов по пути: Панель разработчика – Шаблоны. Вставляем в окно код после двоеточия и получаем результат в окошке рядом:
Как проверить правильность написанного кода

Проверяем конфигурацию: Настройки – Сервер – Начать проверку. Если все ОК, то перезапускаем сервер и открываем панель разработчика. В ней должны появиться все созданные нами сенсоры.

Настройка интерфейса

Открываем ui-lovelace.yaml и создаем там карточку с сенсорами (или добавляем сенсоры в существующую карточку):

        - type: entities
          show_header_toggle: false
          entities:
              - entity: sensor.last_snapshot
              - entity: sensor.snapshots_in_google_drive
              - entity: sensor.snapshots_in_ha

home assistant резервное копирование

Ссылки на другие уроки по настройке Home Assistant.

У этой записи 4 комментариев

  1. vismuth

    У меня не работает, по трем пунктом пишет (неизвестно)
    до восстановления бэкапа все работало, а сейчас не работает эти три функции, куда копать как чинить без понятия

    1. Admin

      Три пункта, это кол-во бекапов и время последнего? Если зайти в «Панель разработчика» и найти там sensor.snapshot_backup, у него есть данные значения в атрибутах?

  2. slgeo

    sensor.snapshot_backup пуст в панели разработчика, атрибутов нет

  3. slgeo

    Название сенсора поменялось, актуальный код для GoogleBackup.yaml:
    — platform: template
    sensors:
    snapshots_in_google_drive:
    friendly_name: ‘Резервных копий на Googe Drive’
    value_template: «{{ state_attr(‘sensor.backup_state’, ‘backups_in_google_drive’) }}»
    icon_template: mdi:folder-google-drive

    snapshots_in_ha:
    friendly_name: ‘Резервных копий на сервере’
    value_template: «{{ state_attr(‘sensor.backup_state’, ‘backups_in_home_assistant’) }}»
    icon_template: mdi:home-assistant

    last_snapshot:
    friendly_name: ‘Последняя резервная копия была создана’
    value_template: «{{ as_timestamp(state_attr(‘sensor.backup_state’, ‘last_backup’)) | timestamp_custom(‘%d.%m.%Y %H:%M’) }}»
    icon_template: mdi:calendar-clock

Добавить комментарий