Где хранятся файлы home assistant
Продолжаю изучать и настраивать Home Assistant.
В этой заметке рассмотрим перевод базы данных с SQLite на MySQL (MariaDB).
Данный материал подойдет для интеграции различных установок Home Assisstant:
По этой причине все можно будет повторить в операционных системах Linux и FreeBSD.
Если есть кто ставит HA на Windows, то и для них это подойдет:)
MySQL сервер для Home Assistant
Я буду использовать операционную систему Ubuntu 20.04.
Базу данных MariaDB, но это не принципиально, можно использовать MySQL.
Для чего нужно использовать MySQL базу данных?
По умолчанию HA использует SQLite базу данных, в чем плюсы и минусы такого решения?
Плюсы SQLite:
Минусы SQLite:
- Производительность
- Масштабируемость
- Нет возможности (простой) базу на другую ноду
Многие устанавливают Home Assistant на одноплатники Raspberry Pi.
В которых накопителем является MicroSD карата, которая часто выходит из строя из-за частых операций записи.
База данных как раз является основным потребителем записи:)
Сейчас конечно есть возможность установить HA не на карту памяти, а например на внешний жесткий диск или сменить MicroSD карту на eMMC
На мой взгляд проще выделить место на домашнем сервере или даже на любой VDS или VPS сервере.
Т.е. базу MySQL нет необходимости хранить на том же хосте, где установлен Home Assistant.
Установка базы данных MiraDB
Ubuntu:
FreeBSD:
Настройка MySQL базы данных
По умолчанию MariaDB и MySQL серверы принимают соединения на localhost 3306 порту:
Если у вас HA установлен с помощью виртуального окружения Python, то вы спокойно можете использовать MariaDB с такими параметрами.
Если Home Assistant установлен в Docker, то до 127.0.0.1 в хост системе достучаться не получится.
Нам надо изменить сетевой адрес работы MariaDB с localhost на адрес сервера.
FreeBSD:
Ubuntu:
Про root пароль и безопасность MariaDB, можно узнать в этом материале
Перезапустим MariaDB:
FreeBSD:
Ubuntu:
Проверим на каком IP адресе теперь работает SQL сервер:
Создаем базу данных для Home Assistant и пользователя:
Верхнем командой мы создали:
- Базу с именем hass_db с кодировкой utf8mb4 и представлением utf8mb4_general_ci
- Пользователя hassuser с паролем StrongPassword
- Добавили разрешения пользователю hassuser на базу hass_db
- Перезагрузили таблицы предоставления (Не уверен, что это действие нужно)
Настраиваем Home Assistant на работу с новой базой
Нам необходимо в конфигурационном файле HA указать коннект с базой данных.
Все настройки внешнего вида, конфигураций и сценариев в Home Assistant можно выполнить как через web-интерфейс, так и вручную, прописывая все в конфигурационных файлах. Очень рекомендую пользоваться именно вторым способом.
Для написания всего и вся в Home Assistant используется язык YAML. Тут важно запомнить два момента:
Установка File Editor
Выбираем его, нажимаем Install, ожидаем завершения установки, после чего запускаем нажатием на кнопку Start и включаем Show in sidebar (выносит иконку запуска редактора в сайдбар слева).
После установки можно переходить к первоначальной настройке. Основной файл, в котором описаны все настройки – Configuration.yaml. Так что запускаем File Editor и открываем данный файл (скорее всего он откроется по умолчанию).
Configuration.yaml
Для создания файлов и папок, а также перехода между ними, нажимаем Browse Filesystem в File Editor:
Я создал папку myconfig (имя может быть любое) и уже в ней буду создавать все файлы конфигурации. Удаляем все стандартные файлы (groups.yaml, scenes.yaml, automations.yaml, scripts.yaml) из корневой папки и создаем новую папку и уже в ней файлы groups.yaml, scenes.yaml и папки sensor и automation.
Далее открываем файл configuration.yaml и добавляем туда строчки, как показано в примере ниже (выделил красным). Первый блок открывает возможность конфигурировать интерфейс через конфигурационный файл, второй – указывает пути до новых файлов и папок (myconfig меняем на название Вашей папки).
Добавление сенсоров
Первое, что можно сделать – вывести различную информация о состоянии сервера на главный экран. Для этого переходим в папку sensor и создаем там файл sysmonitor.yaml (название может быть любым). В нем – прописываем нужные нам сенсоры, список которых можно взять тут. Прописываем со всеми пробелами, как в примере ниже:
Настройка интерфейса
В итоге получился вот такой вот главный экран:
Вам также может понравиться
Добавление Xiaomi Gateway 2 в Home Assistant
Home Assistant Backup. Настраиваем резервное копирование
Mi Home
Установка HACS в Home Assistant OS
Итак, сервер установлен, можно начинать подключать к нему всё, что под руку подвернётся. Но прежде не помешает облегчить себе дальнейшую работу, установив магазин компонентов HACS, удобный редактор конфигураций и немножко допилив интерфейсы.
UPD: немного изменил концепцию разделения конфигурации для удобства работы со встроенными редакторами.
Доработка интерфейса
В первую очередь включим расширенное меню управления сервером. Без расширенного управления меню Настройки - Сервер выглядит так:
Идём в настройки профиля и включаем Расширенный режим:
После этого управление сервером выглядит так:
Кроме этого, добавляется меню Кастомизация, в котором можно будет удобно менять параметры подключенных элементов:
Конфигуратор
Теперь подключим удобный редактор конфигураций.
Переключаемся на пользователя homeassistant:
Переходим в папку установки сервера и активируем виртуальное окружение:
После установки конфигуратора - делаем первый запуск:
И проверяем через браузер, что конфигуратор запустился и работает, заходим на адрес сервера по порту 3218, например:
Видим пустую панель конфигуратора:
Значит всё нормально, останавливаем в консоли службу (Ctrl+C) и добавляем службу в автозапуск.
В первую очередь выходим из виртуального окружения:
Создаём файл для запуска службы:
И вставляем текст:
[Service]
Type=simple
User=homeassistant
WorkingDirectory=/home/homeassistant/.homeassistant
ExecStart=/srv/homeassistant/bin/hass-configurator
Restart=always
Сохраняем (Ctrl+O) и выходим из редактора (Ctrl+X). Обновляем список служб, активируем и запускаем новую службу:
sudo systemctl --system daemon-reload
sudo systemctl enable hass-configurator.service
sudo systemctl start hass-configurator.service
Проверяем, что служба успешно запустилась:
Если видим, что статус active, значит служба успешно создана и запущена:
Теперь для полноценной работы нужно добавить конфигуратор в боковую панель HomeAssistant. Открываем конфигуратор в браузере:
В автозапуске мы уже указали нашу рабочую папку HomeAssistant, поэтому конфигуратор сразу же попадает в неё. Нажимаем на значок папки и выбираем файл configuration.yaml. Там уже присутствуют какие-то базовые настройки, нам же нужно добавить секцию panel_iframe, в которой мы будем перечислять все дополнительные компоненты для боковой панели. Добавим туда конфигуратор и, сразу же, справочник иконок, которыми мы будем пользоваться при добавлении разных датчиков и сенсоров. Внимательно следим за отступами! Язык размети yaml очень чувствителен к уровням вложения параметров (как и язык python). Если где-то отступы будут не на том месте, конфигуратор сообщит об этом красным значком с восклицательным знаком в правом верхнем углу.
Сохраняем изменения кнопкой с дискетой или нажатием Ctrl+S, переходим на страницу HomeAssistant, идём в Настройки - Сервер и проверяем конфигурацию. Если ошибок нет - перезапускаем сервер. После перезагрузки на боковой панели добавились две новые кнопки - Иконки и Конфигуратор.
Краткое описание:
Система домашней автоматизации Home Assistant.
Описание:
Home Assistant-это open-source платформа для автоматизации, работающая на Python 3. Позволяет отслеживать и контролировать все устройства в доме и автоматизировать действия. Идеально может работать на одноплатном компьютере Raspberry PI. Так же может работать на платформах Windows, Linux. Интерфейс построен через браузер работа возможно на любом устройстве Android, iOS.
Личный опыт:
Свою домашнюю систему я строю на данной платформе. Уже больше полугода система находится в штатном режиме и все функционирует.
Не получается настроить присутствие устройств (членов семьи). Использую компонент device_tracker: Keenetic NDMS2 Routers (У меня Zyxel keenetic lite с прошивкой NDMS 2). Ошибка при загрузке в логе (home-assistant.log):
Denn1982, Приложи файл конфигурации посмотрю что делаешь ни так. У тебя тут жалуется еще на плагин yahoo_finance. В своем случае я настроил с помощью SNMP модуля. HA SNMP
Да не знаю, что тут можно делать не так.
Все как в мануале:
- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
хост в секретах: 192.168.1.1
Еще тут одна проблема нарисовалась, после некоторого времени невозможно подключиться по ssh к апельсинке, причем HASS работает, но например некоторые выключатели не работают.
device_tracker:- platform: keenetic_ndms2
host: !secret router_ip
username: !secret router_username
password: !secret router_password
interval_seconds: 10
consider_home: 180
track_new_devices: yes
Так же смотри после запуска в папке появится known_devices.yaml в нем тоже нужно настроить устройства которые будешь отслеживать. Вот мой пример одного из устройств.
bhughes_nexus6:
name: Phone
mac: AC:CF:85:D4:2B:93
icon: mdi:ninja
track: yes
hide_if_away: no В том то и дело, что файл не появляется автоматически, я его пробовал в ручную создавать, но тоже не прокатило. Еще интересно, что когда вставляю эти строчки в configuration.yaml, судя по логу еще и розетки не может найти, хотя в HASS они работают.
А если удалить секцию device_tracker то лог чистый.
UPD: Не, наврал - с розетками все время такая фигня.
Читайте также: