Статья

HASS Configurator. Редактируем конфиги в браузере, не выходя из Home Assistant.

Я человек ленивый и когда необходимо пофиксить несколько строк конфигов (или даже больше) мне проще не доставая ноутбук сделать это с планшета или смартфона (знаю, что это извращение, но лень двигатель прогресса =) ) или, даже если достал ноутбук, сделать все в браузере не выходя из самого Home Assistant.

Пример установки, приведенный в этой статье, основан на Home Assistant, установленной по статьям OXOTH1Kа.

Ставим конфигуратор

Заходим под юзером homeassistant (пригодится нам в дальнейшем для возможности редактирования из браузера):

sudo -u homeassistant -H -s

Идем в папку с конфигами HA и копируем компонент:

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

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

sudo./configurator.py

Видим, что сервер стартанул:

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

http://ip малинки:3218

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

Возвращаемся в терминал и завершаем процесс сочетанием клавиш "CTRL+C".

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

Создадим файл 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 на ваш путь.

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

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

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

Настроим удобный доступ из меню HA

Теперь добавим для быстрого доступа к компоненту ссылку на левую панель HA и сделаем это сразу в Конфигураторе, не зря же мы его ставили =). Снова идем в браузер:

http://ip малинки:3218

Слева вверху кликаем на иконку папки и кликаем на файл configuration.yaml:

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

panel_iframe: configurator: title: Configurator icon: mdi:square-edit-outline url: http://ip малинки:3218

Сохраняем (Кликаем на красную дискетку в правом верхнем углу), идем в HA - Настройки - Общие, кликаем по кнопке "Проверить конфигурацию" и, если ошибок нет, перезагружаем HA (на этой же странице внизу Управление сервером - Перезагрузить). После перезагрузки кликаем на новый пункт "Configurator" и видим следующую картину:

Настроим безопасность

Для начала укажем пароль для api Home Assistant (Он добавит дополнительных функций конфигуратуру). Идем в файл configuration.yaml, добавляем и сохраняем:

http: api_password: !secret http_api_password

Придумываем пароль, указываем его в файле secrets.yaml и сохраняем: 

#http: http_api_password: пароль

Идем в файл configurator.py, правим следующие строки и сохраняем:

BASEPATH = "/home/homeassistant/.homeassistant" HASS_API = "http://ip малинки:8123/api/" HASS_API_PASSWORD = "Указыываем ранее придуманный пароль для API" USERNAME = "Придумываем логин для входа в конфигуратор" PASSWORD = "Придумываем пароль для входа в конфигуратор"

Если вы положили файл configurator.py в другую директорию, то в "BASEPATH" указываем ее. 

Теперь перезагружаем малину чтобы проверить, что все работает корректно, идем в терминал и указываем команду на перезагрузку:

sudo reboot

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

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

Маленький бонус

Т.к. ранее мы создали и указали api пароль, то теперь мы можем перезагружать, например, автоматизации или сам HA прямо из интерфейса HASS Configurator. Для этого кликаем на шестеренку в правом верхнем углу и кликаем на соответствующий пункт:

Что еще можно настроить по безопасности

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

ENFORCE_BASEPATH - Позволяет зафиксировать директорию для показа, чтобы при помощи HASS Configurator нельзя было попасть в другие папки директории малины. Например, если мы не хотим чтобы была возможность посмотреть файлы вне директории конфигов HA, то прописываем следующее значение вместо "False":

ENFORCE_BASEPATH = "/home/homeassistant/.homeassistant"

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

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

Важно! Для применения внесенных изменений необходима перезагрузка малины.

Вот и все, удачной правки ваших конфигов!


Отличная статья! Так держать! Надо бы себе на рабочей машине тоже поднять)

Я ждал эту статью! Спасибо)

Огонь!

Как все сложно то :)) но главное подробно

а с докером не зашло ? Или не стал заморачиваться ?

поставил сразу в докере, радует каждый день. плюс универсальный интерфейс запуска приложения через докер куда проще обсоуживать и поддерживать 

У меня все отлично и без нареканий работает без докера, нет желания переучиваться и переделывать)

Спасибо за статью! Как раз искал мануал по конфигуратору.

Но есть вопрос. Если настроен Let's encript, то url: http://ip малинки:3218 уже не работает. То ли вместо IP адрес внешний совать, но тогда нужно порт наружу открывать, или отдельно для конфигуратора свои SSL сертификаты и отдельный DDNS делать?

У меня нет установленного SSL (точно не могу сказать), но в теории:

- да, прописать https://белый ip или домен:3218 в конфиге, открыть порт, в настройках файла configurator.py заполнить поля: SSL_CERTIFICATE, SSL_KEY и поменять путь к HASS_API на "https://белый ip или домен:8123/api/"

- указать разрешенные IP в ALLOWED_NETWORKS, чтобы закрыть доступ случайным людям.

Ok, значит я правильно понял. Спасибо!

Спасибо за статью, лайк и подписка.



Все делал по вашему рецепту.  Пункт "Configurator" появился на панели НА, Но при нажатии на него пишет: 

Не удалось найти IP-адрес сервера xn--ip%20-8ve0darijp. По адресу 

http://ip малинки:3218 конфигуратор работает. Не подскажите в чем проблема?

Ошибку нашел, все работает. Спасибо за статью. Гениальное решение!!!

Hass в логах ругается, как только входишь в конфигуратор.


WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.1.100


И Event Observer в конфигураторе не пускает:


Socket closed


{"type": "auth_invalid", "message": "Invalid access token or password"}


{"type": "auth_required", "ha_version": "0.103.6"}


Socket connected


Что делать?



установил редактор по статье. все работает, но при каждом открытии конфигуратора появляется уведомление:

https://sprut.ai/static/media/cache/00/49/08/5/3071261/52472/1000x_image.png?1583083864" alt="1000x_image.png?1583083864" />

Сейчас всё проще. Ставится file editor addon без плясок с бубном прямо внутри ha и редактурются любые файлы в /config

Например при установке HA в виртуальной среде Питона, никаких аддонов hassio к сожалению нет.

меня докер в испоьзовании с ha уже достал

хочу просто вызывать команды на той машине, где установлен ha и никак не могу

разве что тоже пытаться всё как-то в образы завернуть написать композ и как-то всё что надо туда сюда пробросить, но это дофига работы...

но без аддонов я жить не хочу, хотя я и программист, ненавижу линуксовое многочасовое красноглазие с установкой и настройкой. Гораздо приятнее ввести в hacs название аддона и нажать «установить»

Добрый день! Статья полезная, спасибо!

Кто-нибудь может помочь мне?

Как на ESPHome прописать конфиг, чтобы на цифровые пины подавать 1 или 0 ?

В идеале мне нужно мигать светодиодом (например каждые 10 секунд).

В TASMOTA такая возможность реализована с помощью "Buzzer". Там можно к цифровому пину подключить пьезоизлучатель или светодиод, выбрать частоту мигания, а также длительность мигания. В ESPHome есть что-то подобное?

Добавляю в 

configuration.yaml:


http:
api_password: !secret http_api_password

Проверяю конфиг, получаю ошибку:


extra keys not allowed @ data['http']


Как победить?

Изучаю установку и работу HA  на питоне.


Хом ассистент установлен под пользователем  PI (под HA не стал его пока устанавливать) .  Конфигуратор прикрутил к HA , однако редактировать  конфиги не хотит.  Доступ говорит  доступ закрыт.  права на файл  configurator.py  вроде дал.      Как его правильно настроить ?



Вернуться назад
Вернуться назад