Итак, вот мы пришли к некоторому “умному дому” с кучей датчиков температуры и влажности, показанием счетчиков электроэнергии и воды, показанием электропитания с встраиваемых и накладных розеток, а также различными бинарными сенсорами открытия двери, движения и так далее. К некоторым из этих данных вам наверняка захочется иметь доступ спустя какое-то время, может быть, даже продолжительное, а значит их надо как-то хранить.
Home Аssistant по умолчанию для хранения данных используют СУБД SQLite. Как настроить БД, написано в разделе официального сайта, посвященном интеграции recorder.
Однако для долгосрочного хранения данных это не подойдет. Возрастающий размер БД будет замедлять работу сервера и требовать все больше ресурсов и пространства. К тому же большинство инсталляций (во всяком случае, впервые) используют одноплатник Raspberry Pi с MicroSD картой в качестве дискового пространства, которая просто физически не предназначена для частой записи большого количества информации.
Какие же альтернативы?
Среди интеграций на сайте можно найти InfluxDB , а также одноименный аддон. Среди преимуществ это СУБД стоит отметить возможность хранить исторические данные практически бесконечно и гибко настраивать хранение определенных данных определенное время.
Перейдем к практике
Сначала необходимо установить Addon InfluxDB. Переходим в Supervisor - Addon Store и находим InfluxDB. Нажимаем “Установить”
Конфигурация аддона у меня выглядит следующим образом:
auth: true
reporting: true
ssl: true
certfile: fullchain.pem
keyfile: privkey.pem
envvars: []
Далее сохраняем конфигурацию, запускаем аддон и, если надо, устанавливаем переключатель “Показывать на боковой панели”. Далее необходимо дождаться загрузки аддона и перейти в его веб-интерфейс с боковой панели, или прямо со страницы аддона, нажав на кнопку “Открыть веб-интерфейс”
Первое, что нам нужно сделать - создать пользователя и базу данных, куда будут поступать наши данные с сервера умного дома на Home Assistant.
Нажимаем в боковом меню на эмблему с короной “InfluxDB Admin” - открываем вкладку Users и нажимаем кнопку Create User. Задаем имя пользователя и пароль. Своего пользователя я назвал homeassistant. После создания необходимо в графе Permissions выставить ALL.
Далее переходим на вкладку Databases для создания базы данных. Нажимаем Create Database и задаем имя базы данных. После создания базы данных по умолчанию создается так называемая Retention Policy с длительностью хранения - бесконечность. Рекомендую для начала установить это значение равным 7-14 дней. Далее можно будет создать отдельные Retention Policy с более длинным сроком хранения и распределять данные по этим разным срокам хранения, как это сделано у меня на скриншоте, но об этом позже.
Теперь можно настроить конфигурацию Home Assistant. Добавляем в файл конфигурации configuration.yaml интеграцию influxdb:
На странице интеграции подробно описана конфигурация интеграции, я лишь приведу свой конфиг для примера.
Как можно заметить, я не записываю в БД все подряд, только те сенсоры, которые мне действительно нужны и интересны. Для некоторых из них в разделе component_config переписаны единицы измерения. Сделано это прежде всего для того, чтобы нагрузка процессора в процентах не путалась рядом с влажностью в помещении, также измеряемой в процентах.
После перезагрузки сервера и по истечению некоторого времени, достаточного для накопления значений, в БД можно посмотреть, что получилось в разделе Explore. Для этого необходимо выбрать Retention Policy, единицы измерения и поле, в котором находятся интересующие вас данные. Чаще всего это поле value.
Получаем такой вот график.
Далее я расскажу, как настроить время хранения данных в разных Retention Policy и как подключить Grafana для отображения графиков, в том числе и с внедрением их в интерфейс Home Assistant.
Подписывайтесь на мой канал, чтобы не пропустить обновления.
#умный дом #home assistant #smart home #db #базы данных #influxdb #grafanf #интернет вещей #хранение #iot