Как подключить к Home Assistant удаленную база данных MariaDB

Как вам известно, что Home Assistant пишет в свою базу и использует по умолчанию СУБД LiteSQL. На шлюзе из-за малого количества места, все пишется в память и история хранится 2 дня. Это сильно ограничивает запись истории в базу. Если у нас есть внешний сервер с предустановленной СУБД MariaDB, то можно в конфигурации указать, чтобы Home Assistant писал не во внутреннюю базу, а на внешнюю, но такой способ имеет плюсы и минусы. Плюс в том, что можно писать историю без ограничении и все зависит от объема жесткого диска на внешнем сервере. Минус в том, что если внешний сервер будет недоступен или WiFi будет выключен, то Home Assistant на шлюзе не сможет писать в историю и вероятно просто упадет.

В /etc/homeassistant/configuration.yaml есть запись, которая имеется после установки Home Assistant

recorder:
  purge_keep_days: 2
  db_url: 'sqlite:///:memory:'

Для того, чтобы подключить Home Assistant к внешней СУБД MariaDB, необходимо сделать следующее:

1) Установить через LucI пакет python3-pymysql

2) В /etc/homeassistant/configuration.yaml изменить строку db_url

recorder:
  db_url: 'mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4'
  purge_keep_days: 2

Рекомендуется путь db_url хранить в secrets.yaml

В /etc/homeassistant/configuration.yaml указываем таким образом

recorder:
  db_url: !secret db_link #URL-адрес, который указывает на вашу базу данных
  purge_keep_days: указываем количество дней

в secrets.yaml добавить db_url: ‘mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4’

3) Перезагрузить Home Assistant