Home Assistant

Home Assistant – Конфигуратор

Если говорить о установке оборудования в Home Assistant мы знаем как часто приходится редактировать конфигурационные файлы . Мы установим в Home Assistant – Конфигуратор позволяющий править конфигурационные файлы прямо в интерфейсе умного дома.

Устанавливаем Конфигуратор

Если нет прямого доступа к консоли, то подключаемся по SSH и заходим под юзером homeassistant:

sudo -u homeassistant -H -s

Итак идем в папку с конфигами Home Assistant и загружаем компонент:

cd /home/homeassistant/.homeassistant
wget https://raw.githubusercontent.com/danielperna84/hass-configurator/master/configurator.py

Выходим из под юзера homeassistant:

exit

После возвращаемся в папку с конфигами HA и назначаем файл компонента исполняемым:

cd /home/homeassistant/.homeassistant
sudo chmod 755 configurator.py

Аутентификация configurator.py в Home Assistant

Так как вход в API возможен только с аутентификацией и старый способ через указание пароля уже не работает, нам нужно настроить доступ используя долгосрочный токен. На официальном сайте можно прочитать  статью  про использование долгосрочных токенов.

В Home Assistant  в левом меню кликаем по самому нижнему пункту и заходим в профиль пользователя. В самом внизу страницы есть раздел “Долгосрочные токены доступа”.

После нажатия кнопки “СОЗДАТЬ ТОКЕН” нужно будет ввести название токена и нажать “Ok” . В следующем окне будет сгенерированный токен, его нужно скопировать и сохранить в надежное место, так как в интерфейсе “умного дома” вы его просмотреть не сможете.

Если посмотреть на код скрипта configurator.py, то мы видим переменную HASS_API_PASSWORD

Вот так скрипт configurator.py обращается к переменной HASS_API_PASSWORD

Очевидно, что если переменной присвоить значение сгенерированного ранее токена, все заработает.

После этого присваеваем этой переменной значение сгенерированного токена

Перезагружаем сервер:

sudo reboot

Затем подключаемся к серверу, и после этого переходим в папку в которой находится скрипт:

cd /home/homeassistant/.homeassistant

Запускаем Hass Configurator для проверки работоспособности:

sudo ./configurator.py

В итоге видим, что сервер запустился:

Открываем браузер по адресу:

http://ipAddress-OrangePi:3218

Если все ок, то видим следующий интерфейс:

Возвращаемся в терминал и завершаем процесс сочетанием клавиш “Ctrl-C“.

Если в процессе отладки вы запускаете скрипт configurator.ru и видите ошибку что порт занят, одним из способов закрыть работающий скрипт configurator.ru – найти его по занимаемому порту. Набираем:

lsof -i tcp:3218

Как видите сервер дал ответ что порт 3218 занимает приложение с идентификатором процесса “9405”. Этот процесс убьем командой:

kill -9 9405

А потом настраиваем автозапуск конфигуратора

Создадим файл hass-configurator.service:

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=/usr/bin/python3 /home/homeassistant/.homeassistant/configurator.py
Restart=always

[Install]
WantedBy=multi-user.target

Если файл configurator.py вы изначально положили в другое место, то значения “WorkingDirectory” и “ExecStart” необходимо заменить с /home/homeassistant/.homeassistant на ваш путь.

Затем закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и Enter.

Проверяем статус созданного сервиса:

systemctl status hass-configurator.service

Если видим в сообщении такую строку:

Перезапускаем его и снова проверяем статус:

sudo systemctl --system daemon-reload
sudo systemctl enable hass-configurator.service
sudo systemctl start hass-configurator.service
systemctl status hass-configurator.service

Если видим аналогичную картину, значит все ок:


Добавляем Конфигуратор в меню Home Assistant

Для быстрого доступа к компоненту добавим ссылку на левую панель в WEB интерфейсе умного дома . Открываем файл configuration.yaml :

sudo nano /home/homeassistant/.homeassistant/configuration.yaml

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

panel_iframe:
  configurator:
    title: Configurator
    icon: mdi:square-edit-outline
    url: http://ipAddress-OrangePi:3218

Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и Enter.

Далее идем в Home Assistant – Настройки – Общие, кликаем по кнопке “Проверить конфигурацию” и, если ошибок нет, перезагружаем Home Assistant (на этой же странице внизу Управление сервером – Перезагрузить). После перезагрузки в левом меню появится новый пункт “Configurator”, кликаем по нему и видим следующую картину:

Home Assistant Configurator

Безопасный доступ к Конфигуратору

Итак доступ к api Home Assistant с использованием долгосрочного токена мы уже настроили, осталось настроить авторизованный вход на страницу Конфигуратора.

Открываем файл configurator.py:

sudo nano /home/homeassistant/.homeassistant/configurator.py

Правим там следующие строки:

BASEPATH = "/home/homeassistant/.homeassistant"
HASS_API = "http://ipAddress-OrangePi:8123/api/"
USERNAME = "Придумываем логин для входа в конфигуратор"
PASSWORD = "Придумываем пароль для входа в конфигуратор"

“BASEPATH” указывает на директорию где лежит configurator.py, по умолчанию это /home/homeassistant/.homeassistant

“HASS_API указывает на путь к Home Assistant API. Если configurator.py находится на том же сервере что и Home Assistant путь будет  


HASS_API = "http://127.0.0.1:8123/api/"

Затем делаем перезагрузку:

sudo reboot

После перезагрузки кликаем в левом меню интерфейса по пункту Configurator и видим предложение ввести наш логин и пароль:

Вводим логин/пароль и попадаем в конфигуратор. Теперь можно править конфиги Home Assistant не выходя из интерфейса.


Дополнительные настройки Конфигуратора

Настройки в файле configurator.py позволяют сделать множество настроек связаных с безопасностью. Вот несколько наиболее важных параметров:


ENFORCE_BASEPATH = "/home/homeassistant/.homeassistant"
IGNORE_PATTERN - Позволяет скрыть из интерфейса HASS Configurator файлы (как по названию с расширением так и маской по расширению) и папки. Например, если мы не хотим чтобы была возможность посмотреть файлы с расширениями .log (Спрячем логи), .py (Скроем в том числе и configurator.py чтобы нельзя было поправить настройки и посмотреть логины/пароли без нашего ведома), файл secrets.yaml (по той же причине) и папку etc (просто для примера), то прописываем следующее вместо пустого значения "[]":

IGNORE_PATTERN = ["*.log", "*.py", "secrets.yaml", "etc"]

Внимание! Чтобы внесенные изменения вступили в силу требуется полная перезагрузка сервера. Для этого используйте команду:

sudo reboot

В итоге на этом все, теперь можно править конфиги не заходя в терминал!


Остальные статьи по теме умного дома  Home Assistant можно посмотреть  здесь..