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”, кликаем по нему и видим следующую картину:
Безопасный доступ к Конфигуратору
Итак доступ к 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 можно посмотреть здесь..