Найти в Дзене
SAV LABS

Оптимизируем мозги. Умный дом Home Assistant

Продолжим "эксперименты" с умным домом. Сделаем некоторые настройки, дабы облегчить ему работу.... По-умолчанию в HA данные хранятся в базе SQLite - с ней и поработаем, не рассматривая варианты с другими базами данных. Сама база хранится в файле home-assistant_v2.db, находящимся в корне папки HA. В моем случае чуть больше, чем за пол-года она разрослась до 44Mb. В-принципе размер не большой, но мало ли... Чутка оптимизируем базу данных. Для этого нам нужно задействовать в configuration.yaml интеграцию recorder. Идем в File Editor, открываем файл configuration.yaml, прописываем соответствующую строчку, проверяем конфигурацию и "быстро перезагружаемся".... Вообще, все параметры этой интеграции можно найти на ее страничке. Рассмотрим некоторые из них, сразу бросающиеся в глаза. В-итоге у меня получилось ПОКА совсем небольшое изменение в configuration.yaml. Так как чистка и перепаковка как таковые включены по-умолчанию, сделал две рекомендованные автоматизации очистки и перепаковки (точнее
Оглавление

Продолжим "эксперименты" с умным домом. Сделаем некоторые настройки, дабы облегчить ему работу....

Основная база данных (по-дефолту)

По-умолчанию в HA данные хранятся в базе SQLite - с ней и поработаем, не рассматривая варианты с другими базами данных. Сама база хранится в файле home-assistant_v2.db, находящимся в корне папки HA.

В моем случае чуть больше, чем за пол-года она разрослась до 44Mb. В-принципе размер не большой, но мало ли... Чутка оптимизируем базу данных. Для этого нам нужно задействовать в configuration.yaml интеграцию recorder. Идем в File Editor, открываем файл configuration.yaml, прописываем соответствующую строчку, проверяем конфигурацию и "быстро перезагружаемся"....

Вообще, все параметры этой интеграции можно найти на ее страничке. Рассмотрим некоторые из них, сразу бросающиеся в глаза.

  • include - список сущностей, данные по которым надо записывать в базу.
  • exclude - список сущностей, данные по которым НЕ надо записывать в базу.
  • auto_purge логическое значение - автоматическая очистка базы данных. По умолчанию она включена (true). Рекомендуется создать автоматизацию для запуска очистки, например, раз в сутки в наименее нагруженное время.
  • auto_repack логическое значение - автоматическая перепаковка базы данных после автоматической очистки. По умолчанию она включена (true). Рекомендуется создать автоматизацию для запуска очистки, например, раз в неделю/месяц в наименее нагруженное время.
  • purge_keep_days целое число - количество дней истории, которые следует хранить в базе данных регистратора после очистки. По-умолчанию 10. Меня устраивает, не менял.
  • commit_interval целое число - интервал (в секундах) фиксации события в базе данных. По-умолчанию равен пяти секундам. Увеличение этого параметра немного облегчит жизнь, например, SD-карте, но данные в базу будут попадать позже. Поменял на 15.

В-итоге у меня получилось ПОКА совсем небольшое изменение в configuration.yaml.

-3

Так как чистка и перепаковка как таковые включены по-умолчанию, сделал две рекомендованные автоматизации очистки и перепаковки (точнее одну общую). Можно это было прописать ручками в файле automations.yaml, но я решил через UI - там можно легко переопределить параметры по-умолчанию.

<<< Подборка статей на этом канале про Home Assistant >>>

В итоге в файле automations.yaml появилась следующая автоматизация, запускаемая в три часа ночи.

-5

После принудительного запуска база данных с 44Mb сжалась до 38Mb. Уже лучше. Но я решил параметрах интеграции указать сущности, данные о которых меня точно интересовать не будут. Исключив их, можно уменьшить прирост размера базы данных. Для примера возьму реле света в прихожей. Находим реле в списке объектов, чтобы определить идентификатор, и вносим в его в параметр exclude в файле configuration.yaml. После успешной проверки конфигурации, производим быструю перезагрузку - после этого данные о событиях этого устройства не будут записываться в базу данных, а уже записанные данные будут подчищены созданной выше автоматизацией.

Примеры создания фильтров можно найти на соответствующей страничке.

Лезем внутрь базы

Чтобы доползти непосредственно до таблиц базы и т.п., можно установить дополнение SQLite Web из магазина дополнений. Автозагрузка нам незачем, настраивать ничего не надо - запускаем и переходим в web-интерфейс, где можно делать с базой практически что угодно (правда разработчики предупреждают об опасности изменений базы подобным способом).

На закладке Query можно ввести SQL-запрос, чтобы получить, к примеру список 50ти сущностей, которые занимают больше всего места в базе и, если нет необходимости хранить данные этих сущностей, можно включить их в список exclude, который описывался выше.

Я только упомянул про существование подобного способа работы с базой напрямую - работа с SQL-базой и конкретно с данной это вообще другая огромная тема...

Журнал событий (LOG-файл HA)

Когда база была 44Mb, log-файл был ненамного меньше - 38Mb... Поэтому нашел вариант решения вопроса по его уменьшению... Один из вариантов - изменить режим журналирования на debug. Делается просто с помощью добавления четырех строчек (11-14) в файл configuration.yaml. и быстрой перезагрузки.

-9

LOG-файл я удалил с помощью File Editor и он создался заново.

Но мы не привыкли останавливаться и будем экспериментировать дальше, поэтому ставьте лайки, оставляйте комментарии, страница в VK, подписывайтесь на канал, присоединяйтесь в Telegram чтобы ничего не пропустить!

Поддержите канал донатом так или другим способом

-10

#умныйдом #календарь #HA #HomeAssistant #сделайсам #минипк #неттоп #nettop #HACS #nodered #node-red #nodered #dwainsdashboard #dwains #dashboard #планшет #ibeacon #bluetooth #ssl #защита #визуализация #3D #ping #мониторинг #звук #авария #контроль #narodmon