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 - @Soprut

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

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

  2. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 11 месяцев назад

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

  3. Сергей Цыганов (Tsvdonsk)
    Сергей Цыганов (Tsvdonsk) 11 месяцев назад

    Огонь!

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

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

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

    • Georgy Grigoryev (iamkarlson)
      Georgy Grigoryev (iamkarlson) отредактировано 11 месяцев назад

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

    • Алексей Леонтьев (c_ache)
      Алексей Леонтьев (c_ache) отредактировано 11 месяцев назад

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

  5. Владислав Масенков (Spirit)
    Владислав Масенков (Spirit) 11 месяцев назад

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

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

    • Алексей Леонтьев (c_ache)
      Алексей Леонтьев (c_ache) 11 месяцев назад

      У меня нет установленного 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) отредактировано 9 месяцев назад

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


  7. (LL250)
    (LL250) 8 месяцев назад

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

  8. (LL250)
    (LL250) 8 месяцев назад

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

  9. (Sur)
    (Sur) 7 дней назад

    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

    Что делать?

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

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

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