Итак, сервер установлен, можно начинать подключать к нему всё, что под руку подвернётся. Но прежде не помешает облегчить себе дальнейшую работу, установив магазин компонентов HACS, удобный редактор конфигураций и немножко допилив интерфейсы.
UPD: немного изменил концепцию разделения конфигурации для удобства работы со встроенными редакторами.
Доработка интерфейса
В первую очередь включим расширенное меню управления сервером. Без расширенного управления меню Настройки - Сервер выглядит так:
Идём в настройки профиля и включаем Расширенный режим:
После этого управление сервером выглядит так:
Кроме этого, добавляется меню Кастомизация, в котором можно будет удобно менять параметры подключенных элементов:
Конфигуратор
Теперь подключим удобный редактор конфигураций.
Переключаемся на пользователя homeassistant:
sudo -u homeassistant -H -s
Переходим в папку установки сервера и активируем виртуальное окружение:
cd /srv/homeassistant/
source /bin/activate
Устанавливаем hass-configurator:
pip3 install hass-configurator
После установки конфигуратора - делаем первый запуск:
hass-configurator
И проверяем через браузер, что конфигуратор запустился и работает, заходим на адрес сервера по порту 3218, например:
http://10.0.2.25:3218
Видим пустую панель конфигуратора:
Значит всё нормально, останавливаем в консоли службу (Ctrl+C) и добавляем службу в автозапуск.
В первую очередь выходим из виртуального окружения:
exit
Создаём файл для запуска службы:
sudo nano /etc/systemd/system/hass-configurator.service
И вставляем текст:
[Unit]
Description=HASS-Configurator
After=network.target
[Service]
Type=simple
User=homeassistant
WorkingDirectory=/home/homeassistant/.homeassistant
ExecStart=/srv/homeassistant/bin/hass-configurator
Restart=always
[Install]
WantedBy=multi-user.target
Сохраняем (Ctrl+O) и выходим из редактора (Ctrl+X). Обновляем список служб, активируем и запускаем новую службу:
sudo systemctl --system daemon-reload
sudo systemctl enable hass-configurator.service
sudo systemctl start hass-configurator.service
Проверяем, что служба успешно запустилась:
systemctl status hass-configurator.service
Если видим, что статус active, значит служба успешно создана и запущена:
Теперь для полноценной работы нужно добавить конфигуратор в боковую панель HomeAssistant. Открываем конфигуратор в браузере:
http://10.0.2.25:3218
В автозапуске мы уже указали нашу рабочую папку HomeAssistant, поэтому конфигуратор сразу же попадает в неё. Нажимаем на значок папки и выбираем файл configuration.yaml. Там уже присутствуют какие-то базовые настройки, нам же нужно добавить секцию panel_iframe, в которой мы будем перечислять все дополнительные компоненты для боковой панели. Добавим туда конфигуратор и, сразу же, справочник иконок, которыми мы будем пользоваться при добавлении разных датчиков и сенсоров. Внимательно следим за отступами! Язык размети yaml очень чувствителен к уровням вложения параметров (как и язык python). Если где-то отступы будут не на том месте, конфигуратор сообщит об этом красным значком с восклицательным знаком в правом верхнем углу.
panel_iframe:
configurator:
title: Конфигуратор
icon: mdi:square-edit-outline
url: http://10.0.2.25:3218
icons:
title: Иконки
icon: mdi:drawing
url: https://cdn.materialdesignicons.com/4.5.95/
Сохраняем изменения кнопкой с дискетой или нажатием Ctrl+S, переходим на страницу HomeAssistant, идём в Настройки - Сервер и проверяем конфигурацию. Если ошибок нет - перезапускаем сервер. После перезагрузки на боковой панели добавились две новые кнопки - Иконки и Конфигуратор.
Иконки:
Конфигуратор:
Теперь отдельную вкладку конфигуратора в браузере можно закрыть - всё доступно из боковой панели HomeAssistant.
Осталось добавить "магазин приложений" HACS.
HomeAssistant Community Store
HACS - это комьюнити HomeAssistant, в котором собраны все кастомные компоненты, доступные для сервера: расширения, карточки, плагины и темы (на самом деле, конечно, не все, но многие, а некоторые другие можно добавить в дополнительные репозитории в настройках HACS). В этом магазине удобно искать нужные компоненты, добавлять их к себе в конфигурацию и обновлять по мере необходимости.
Сначала нам надо создать новую папку для кастомных компонент:
cd /home/homeassistant/.homeassistant/
sudo mkdir custom_components
chmod 777 custom_components/
Устанавливаем unzip, потому что его нет в штатной поставке Ubuntu:
sudo apt install unzip
Запускаем скрипт установки:
curl -sfSL https://hacs.xyz/install | bash -
Установка должна завершиться надписью "Installation completed".
Теперь нам нужен токен GitHub. Для этого придётся создать свой аккаунт:
https://github.com/join?return_to=https%3A%2F%2Fgithub.com%2Fsettings%2Ftokens&source=login
Указываем свои логин, емейл и пароль, подтверждаем и, когда аккаунт создан, переходим на страницу https://github.com/settings/tokens. Создаём новый токен кнопкой "Generate new token", придумываем название в поле Note и нажимаем Generate token. Токен создан, не закрываем страницу!
Переходим на другой вкладке браузера в HomeAssistant, переходим в Настройки - Интеграции и нажимаем круглую кнопку с плюсиком. Ищем поиском HACS:
Если ничего не находится - надо обновить страницу с очисткой кеша (Ctrl+Shift+R) и попробовать поиск ещё раз.
Выбираем интеграцию HACS (Home Assistant Community Store) и подключаем:
Нам надо вставить токен доступа GitHub, который можно скопировать на странице с токеном:
Остальные настройки можно оставить как есть. Нажимаем Подтвердить и слева в боковой панели у нас добавится новый раздел HACS. Переходим в него и нажимаем Continue до тех пор, пока не появится панель с единственной карточкой:
Бегущая сверху оранжевая полоска сообщает нам, что магазин выкачивает все доступные компоненты и формирует списки.
Готово, теперь у нас есть все необходимые инструменты для того, чтобы начинать настраивать свою домашнюю автоматизацию. Но я рекомендую сделать ещё одну полезную манипуляцю: выделить секции конфигурационного файла в отдельную папку и создать новые, которые по умолчанию не созданы.
UPD: файлы в отдельной папке не работают при создании элементов из графического интерфейса. Я сам привыки прописывать всё сразу в коде yaml, но в данных заметках буду стараться показывать настройку штатными средствами, поэтому для своих рецептов конфигурационные файлы буду хранить в корне HomeAssistant, где они изначально и располагаются.
Ниже рецепт выделения конфигурационных файлов для тех, кто предпочитает работать в текстовом редакторе, чтобы они не смешивались в общую кучу.
Переходим в Конфигуратор и создаём новую папку:
Создаём папку, например, "includes":
Переходим в эту папку и создаём файлы:
- automation.yaml
- binarysensors.yaml
- customize.yaml
- devicetrackers.yaml
- groups.yaml
- scenes.yaml
- scripts.yaml
- sensors.yaml
- switches.yaml
Переходим обратно в корневую папку HomeAssistant и удаляем такие же файлы. Файл secrets.yaml лучше оставить в корневой папке. Потом открываем configuration.yaml и меняем/добавляем пути:
automation: !include includes/automations.yaml
binary_sensor: !include includes/binarysensors.yaml
device_tracker: !include includes/devicetrackers.yaml
group: !include includes/groups.yaml
scene: !include includes/scenes.yaml
script: !include includes/scripts.yaml
sensor: !include includes/sensors.yaml
switch: !include includes/switches.yaml
homeassistant:
customize: !include includes/customize.yaml
Секция customize обязательно должна быть в разделе homeassistant!
Теперь перезапускаем HomeAssistant и начинаем, наконец-то, добавлять свои устройства.