Home Assistant занял всё место: Recorder, backups и storage — что проверить
Home Assistant · Recorder · backup · storage · SQLite

Home Assistant занял всё место: как найти, что разрослось — Recorder, backups, apps или media

Home Assistant может месяцами работать нормально, а потом внезапно показать почти заполненный диск, начать дольше создавать резервные копии или вообще перестать обновляться. Частая причина — разросшийся Recorder, но не единственная: место могут занимать локальные backups, приложения, ESPHome build-файлы, media, базы отдельных сервисов и временные данные. Сначала нужно понять, какая категория съела storage, и только потом очищать.

Recorder по умолчанию хранит 10 дней Но тысячи часто меняющихся сущностей способны раздувать базу даже при коротком retention
Большой backup не всегда = большая база HA В полный backup могут попадать config, apps, share, ssl, media и другие данные
Repack требует свободное место Нельзя запускать тяжёлую перестройку SQLite на почти полностью забитом диске без запаса
Первая диагностика

Сначала выясните, что именно занимает диск

01

Settings → System → Storage

Посмотрите общий объём диска и свободное место. Если используется HAOS, это базовая точка для оценки заполнения локального накопителя.

02

Settings → System → Repairs → System information

В блоке Recorder есть Estimated Database Size. Там же для Supervisor можно увидеть общий Disk used.

03

Settings → System → Backups

Проверьте количество локальных копий, их размеры и retention.

04

Посмотрите установленные apps

Некоторые приложения хранят собственные базы, кэш, логи, модели, build-файлы или архивы.

05

Только потом чистите

Не удаляйте базу или системные файлы вслепую. Сначала определите источник роста.

Самый частый подозреваемый

Recorder хранит историю состояний и событий

Recorder записывает изменения сущностей и событий, которые затем используют History, Activity, графики и статистика. По умолчанию Home Assistant использует SQLite и файл home-assistant_v2.db в каталоге конфигурации.

Текущий default для purge_keep_days — 10 дней. Auto purge включён по умолчанию и запускается ночью. Home Assistant также автоматически выполняет periodic repack, чтобы SQLite действительно уменьшала размер файла после очистки.

10 дней не гарантируют маленькую базу.

Если у вас тысячи сущностей или часть датчиков меняет состояние каждую секунду, десять дней могут дать гигабайты записей.

Особенно быстро растут

  • энергомониторы с частыми обновлениями мощности;
  • Modbus-сенсоры с коротким polling interval;
  • MQTT-сущности, публикующие постоянно меняющиеся значения;
  • GPS/device_tracker;
  • счётчики качества сети, RSSI, latency, uptime;
  • датчики, у которых шумит последнее десятичное значение;
  • интеграции с ошибкой, создающие слишком много state changes;
  • тысячи сущностей, которые вообще не нужны в History.
Как понять, что виноват именно Recorder

Сравните размер базы с общим занятым storage

Disk used 25 ГБ, Recorder 18 ГБ Главный источник очевиден: сначала работаете с Recorder.
Disk used 25 ГБ, Recorder 700 МБ Проблема почти наверняка в другом месте: backups, app data, media, ESPHome или другой сервис.

Именно поэтому не стоит автоматически удалять базу Home Assistant при любом сообщении «storage full».

Вторая частая причина

Локальные backups могут незаметно занять весь накопитель

Home Assistant хранит локальные резервные копии на том же устройстве, если не выбрано другое место. Полный backup может включать:

  • config;
  • share;
  • apps и их данные;
  • ssl;
  • media;
  • базу Home Assistant, если она не исключена.

Поэтому одна крупная папка media, тяжёлое приложение или Recorder способны сделать каждую ежедневную копию огромной.

2 ГБ backup × 7 локальных копий = около 14 ГБ занятого диска

Что проверить

  • сколько backups хранится локально;
  • какой размер у последних копий;
  • не увеличился ли backup резко после установки нового app;
  • нужно ли включать media и share в каждую копию;
  • есть ли внешнее место хранения — NAS или другое backup location;
  • настроена ли retention policy.

Официальная документация Home Assistant рекомендует при необходимости отключать media и share из backup, потому что они могут сильно увеличивать размер и время восстановления.

Огромный backup

Если резервная копия внезапно выросла в два-три раза

В свежих обсуждениях 2026 пользователи регулярно сталкиваются с ситуацией, когда backup за короткое время растёт с сотен мегабайт до нескольких гигабайт.

Проверяйте по порядку:

Что выросло Что подозревать
Recorder database Слишком много state changes, retention, интеграция-шумогенератор
App backup MariaDB, InfluxDB, ESPHome, Frigate, Grafana, voice-модели и другие app data
Media / share Фото, аудио, видео, временные файлы и пользовательские данные
Несколько локальных backups Даже нормальный размер одной копии умножается на retention
Не только Home Assistant Core

Apps могут занимать больше места, чем сам Recorder

ESPHome Device Builder

Сборки firmware и build artifacts способны накапливаться. Если storage растёт после частых compile, проверьте встроенную очистку build files.

MariaDB / PostgreSQL / InfluxDB

Если Recorder вынесен во внешнюю базу или отдельный app, размер SQLite уже не показывает весь объём исторических данных.

Frigate / камеры

Snapshots, clips и recordings могут быстро превратить небольшое HA-хранилище в видеорегистратор.

Whisper / Piper / voice

Локальные голосовые компоненты могут хранить модели и дополнительные данные.

Grafana / InfluxDB

История метрик в отдельной базе живёт по собственным retention-настройкам.

File editor / Samba / utility apps

Обычно небольшие, но ошибочные логи или временные данные тоже нужно исключить из диагностики.

Media и share

Папки, которые забывают проверить

Пользователь часто смотрит только Recorder, но Home Assistant может хранить локальные media, voice-файлы, camera snapshots, downloaded content, временные экспорты и данные приложений.

Если эти данные попадают ещё и в регулярные backups, один и тот же объём начинает расходовать место дважды: как рабочие файлы и как несколько резервных копий.

Не превращайте системный SSD Home Assistant в основной архив камер и медиатеку без осознанной архитектуры.

Для больших архивов лучше отдельное NAS/NVR/storage, а Home Assistant оставить контроллером и интерфейсом.

Purge и repack

Почему база не уменьшается сразу после очистки истории

В SQLite удаление старых строк из базы и уменьшение самого файла на диске — не одно и то же.

Home Assistant предоставляет действие Purge Recorder database. У него есть параметры:

  • Days to keep — сколько дней подробной истории оставить;
  • Apply filter — применить текущие include/exclude правила Recorder;
  • Repack — физически переписать базу, чтобы вернуть освобождённые страницы диску.
Repack — тяжёлая операция и может временно потребовать дополнительное место.

Официальная документация Recorder требует иметь свободного пространства как минимум не меньше размера базы. На почти полностью заполненном диске сначала безопасно освобождают место другими способами.

По умолчанию Home Assistant выполняет auto purge каждую ночь и auto repack периодически. Поэтому если стандартные настройки не менялись, бесконечный рост базы обычно означает либо очень интенсивный поток данных, либо отдельную проблему.

Как уменьшить рост базы

Не записывайте историю того, что вам не нужно

Recorder поддерживает include/exclude по сущностям, доменам и шаблонам. Это полезнее, чем регулярно чистить гигантскую базу уже после роста.

Кандидаты на исключение

  • служебные uptime-сенсоры;
  • RSSI/LQI, если подробная история не нужна;
  • часто меняющиеся диагностические значения;
  • entities, которые никто никогда не смотрит в History;
  • одноразовые debug-сенсоры;
  • вспомогательные датчики интеграций с очень высокой частотой изменений.
Не исключайте важные энергетические и инженерные данные вслепую.

Сначала решите, что нужно для History и долгосрочной аналитики, а что является техническим шумом.

Long-term statistics

Чтобы видеть годовой график, не обязательно хранить каждое состояние год

Одна из частых ошибок — увеличить purge_keep_days до 365 только ради долгосрочных графиков энергопотребления или температуры.

Home Assistant умеет хранить долгосрочную статистику для поддерживаемых сенсоров отдельно от подробной краткосрочной истории. Поэтому перед увеличением retention в десятки раз стоит проверить, действительно ли вам нужны все raw state changes за год.

Для датчика мощности, который меняется каждые несколько секунд, год подробной истории может дать огромное количество записей без реальной пользы.

SQLite или MariaDB

Не переносите Recorder на MariaDB только потому, что SQLite стала большой

В актуальной документации Home Assistant именно SQLite остаётся default и recommended database engine. Современные версии оптимизированы для неё.

MariaDB, MySQL и PostgreSQL поддерживаются, но переход на другую СУБД не является автоматическим «ускорителем» и не решает плохую retention-политику.

SQLite Проще, штатно, рекомендовано для большинства установок.
External DB Полезна при осознанной архитектуре, но требует отдельного обслуживания и backup.

Home Assistant отдельно предупреждает, что миграция существующей Recorder history между базами официально не поддерживается как простой штатный перенос.

Если осталось 0–2 ГБ

Не начинайте с repack огромной базы

Recorder documentation указывает: для SQLite желательно иметь свободного временного пространства как минимум столько же, сколько занимает база. При некоторых recovery-сценариях требуется ещё больше.

Если диск почти заполнен, безопаснее сначала:

1Удалить ненужные локальные backups

Через штатный интерфейс Backups.

2Удалить ненужные apps

Если вы уверены, что они больше не используются.

3Почистить build/cache штатными средствами apps

Например, ESPHome build files.

4Перенести большие media

На NAS или другое хранилище.

5Только после запаса разбираться с Recorder

Purge/repack без критического дефицита временного места.

Не удаляйте home-assistant_v2.db первым действием.

Так вы потеряете историю. Если база действительно повреждена, это отдельный recovery-сценарий, а не обычная очистка storage.

Чтобы проблема не вернулась

Нормальная storage-политика Home Assistant

  • оставить разумный purge_keep_days;
  • исключить из Recorder шумные ненужные entities;
  • контролировать размер Recorder через System information;
  • держать несколько backups, а не бесконечную историю локально;
  • сохранять хотя бы одну резервную копию вне самого HA-хоста;
  • не включать media/share в каждый backup без необходимости;
  • не хранить большой видеoархив на системном диске HA;
  • периодически чистить ESPHome build files;
  • следить за storage после установки новых apps;
  • оставлять запас свободного места для updates, database repack и recovery.
Home Assistant 2026.9

Не путайте локальный диск HA и Network Storage

В Home Assistant 2026.9 появилась более заметная индикация заполнения подключённых сетевых хранилищ. Для network mount Home Assistant показывает used/total и меняет индикацию при высокой заполненности.

Это полезно для NAS, куда отправляются backups или media, но не заменяет диагностику локального диска самого Home Assistant. Локальный Recorder, apps и backups всё равно нужно проверять отдельно.

Связанные материалы

Что ещё пригодится

Удалённый разбор Home Assistant

Storage почти заполнен и непонятно, что съело десятки гигабайт?

Пришлите скрин Settings → System → Storage и System information с блоками Supervisor и Recorder. Также полезны размеры последних backups и список установленных apps. Пароль Home Assistant, SSH-ключи и backup encryption key не нужны.

FAQ

Частые вопросы про заполненный диск Home Assistant

Почему Home Assistant занял 20–30 ГБ?

Причиной может быть Recorder, локальные backups, app data, media, ESPHome build-файлы или отдельная база вроде InfluxDB/MariaDB. Сначала сравните Estimated Database Size с общим Disk used.

Сколько дней истории хранит Recorder по умолчанию?

На текущих версиях default purge_keep_days равен 10. Это не означает, что база всегда будет маленькой: размер зависит от количества и частоты изменений сущностей.

Почему после purge размер home-assistant_v2.db не уменьшился?

Удаление строк не всегда уменьшает SQLite-файл физически. Для возврата пространства используется repack. Home Assistant также выполняет автоматический repack по расписанию.

Можно ли запустить repack при заполнении диска на 99%?

Это плохая идея. Repack временно требует дополнительное место. Сначала освободите безопасный запас за счёт старых backups, ненужных apps или других данных.

Почему backup Home Assistant стал 5–10 ГБ?

Проверьте Recorder, apps и включённые folders. Full backup может содержать config, apps, share, ssl, media и базу данных. Один крупный компонент увеличивает каждую копию.

Стоит ли перейти с SQLite на MariaDB?

Не только из-за размера базы. SQLite сейчас является штатным и рекомендованным вариантом. Сначала оптимизируйте Recorder и retention.

Можно ли просто удалить home-assistant_v2.db?

Технически Home Assistant может создать новую базу, но вы потеряете историю. Для обычной очистки storage это не должно быть первым действием.

Как не потерять годовую статистику, если хранить подробную историю только 10 дней?

Поддерживаемые сенсоры могут использовать long-term statistics. Поэтому raw history и долгосрочная агрегированная статистика — не одно и то же.