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

03 февраля 2019, 16:57

Я человек ленивый и когда необходимо пофиксить несколько строк конфигов (или даже больше) мне проще не доставая ноутбук сделать это с планшета или смартфона (знаю, что это извращение, но лень двигатель прогресса =) ) или, даже если достал ноутбук, сделать все в браузере не выходя из самого 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"]

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

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


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Александр Жабунин (OXOTH1K)

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

  2. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 2 года назад

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

  3. Сергей Цыганов (Tsvdonsk)

    Огонь!

  4. Виталий Никольский (bigmanekb)

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

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

    • Georgy Grigoryev (iamkarlson)
      Georgy Grigoryev (iamkarlson) отредактировано 2 года назад

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

    • Алексей Леонтьев (c_ache)
      Алексей Леонтьев (c_ache) отредактировано 2 года назад

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

  5. Владислав Масенков (Spirit)

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

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

    • Алексей Леонтьев (c_ache)

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

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

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

  6. Andrey Grigorev (AndyGree)
    Andrey Grigorev (AndyGree) отредактировано 2 года назад

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


  7. (LL250)
    (LL250) 2 года назад

    Все делал по вашему рецепту.  Пункт "Configurator" появился на панели НА, Но при нажатии на него пишет:  Не удалось найти IP-адрес сервера xn--ip%20-8ve0darijp. По адресу  http://ip малинки:3218 конфигуратор работает. Не подскажите в чем проблема?

  8. (LL250)
    (LL250) 2 года назад

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

  9. (Sur)
    (Sur) год назад

    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

    Что делать?

  10. Андрей Лямкин (Lyamkin)

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

    1000x_image.png?1583083864
  11. Alexander Mextner (invntrm)
    Alexander Mextner (invntrm) год назад

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

    • (Sur)
      (Sur) год назад

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

      • Alexander Mextner (invntrm)
        Alexander Mextner (invntrm) год назад

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

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

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

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

  12. (lexeyka)
    (lexeyka) отредактировано 9 месяцев назад
    Комментарий удален
  13. (dambo-nn)
    (dambo-nn) отредактировано 9 месяцев назад
    Комментарий удален
  14. (tox@)
    (tox@) отредактировано 8 месяцев назад

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

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

К списку статей

Похожие статьи

17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
29 октября 2019, 07:59
Умный домофон на базе nodeMCU с прошивкой ESPHome.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
01 октября 2019, 07:07
"У всякого в умном дому неведомо никому" (с) Народная мудрость
11 мая 2019, 19:57
Как активировать русский язык в Google Assistant для Google Home