Найти в Дзене
Smart Home 53

Как долго хранить историю и графики в умном доме? Home Assistant + InfluxDB

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

Итак, вот мы пришли к некоторому “умному дому” с кучей датчиков температуры и влажности, показанием счетчиков электроэнергии и воды, показанием электропитания с встраиваемых и накладных розеток, а также различными бинарными сенсорами открытия двери, движения и так далее. К некоторым из этих данных вам наверняка захочется иметь доступ спустя какое-то время, может быть, даже продолжительное, а значит их надо как-то хранить.

Home Аssistant по умолчанию для хранения данных используют СУБД SQLite. Как настроить БД, написано в разделе официального сайта, посвященном интеграции recorder.

Однако для долгосрочного хранения данных это не подойдет. Возрастающий размер БД будет замедлять работу сервера и требовать все больше ресурсов и пространства. К тому же большинство инсталляций (во всяком случае, впервые) используют одноплатник Raspberry Pi с MicroSD картой в качестве дискового пространства, которая просто физически не предназначена для частой записи большого количества информации.

Какие же альтернативы?

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

Перейдем к практике

Сначала необходимо установить Addon InfluxDB. Переходим в Supervisor - Addon Store и находим InfluxDB. Нажимаем “Установить”

-2

Конфигурация аддона у меня выглядит следующим образом:

auth: true
reporting: true
ssl: true
certfile: fullchain.pem
keyfile: privkey.pem
envvars: []

Далее сохраняем конфигурацию, запускаем аддон и, если надо, устанавливаем переключатель “Показывать на боковой панели”. Далее необходимо дождаться загрузки аддона и перейти в его веб-интерфейс с боковой панели, или прямо со страницы аддона, нажав на кнопку “Открыть веб-интерфейс”

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

Нажимаем в боковом меню на эмблему с короной “InfluxDB Admin” - открываем вкладку Users и нажимаем кнопку Create User. Задаем имя пользователя и пароль. Своего пользователя я назвал homeassistant. После создания необходимо в графе Permissions выставить ALL.

-3

Далее переходим на вкладку Databases для создания базы данных. Нажимаем Create Database и задаем имя базы данных. После создания базы данных по умолчанию создается так называемая Retention Policy с длительностью хранения - бесконечность. Рекомендую для начала установить это значение равным 7-14 дней. Далее можно будет создать отдельные Retention Policy с более длинным сроком хранения и распределять данные по этим разным срокам хранения, как это сделано у меня на скриншоте, но об этом позже.

-4

Теперь можно настроить конфигурацию Home Assistant. Добавляем в файл конфигурации configuration.yaml интеграцию influxdb:

На странице интеграции подробно описана конфигурация интеграции, я лишь приведу свой конфиг для примера.

-5
-6

Как можно заметить, я не записываю в БД все подряд, только те сенсоры, которые мне действительно нужны и интересны. Для некоторых из них в разделе component_config переписаны единицы измерения. Сделано это прежде всего для того, чтобы нагрузка процессора в процентах не путалась рядом с влажностью в помещении, также измеряемой в процентах.

После перезагрузки сервера и по истечению некоторого времени, достаточного для накопления значений, в БД можно посмотреть, что получилось в разделе Explore. Для этого необходимо выбрать Retention Policy, единицы измерения и поле, в котором находятся интересующие вас данные. Чаще всего это поле value.

-7

Получаем такой вот график.

Далее я расскажу, как настроить время хранения данных в разных Retention Policy и как подключить Grafana для отображения графиков, в том числе и с внедрением их в интерфейс Home Assistant.

Подписывайтесь на мой канал, чтобы не пропустить обновления.

#умный дом #home assistant #smart home #db #базы данных #influxdb #grafanf #интернет вещей #хранение #iot