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

3 февр. 2019 г.

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

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

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


Мы в Telegram - t.me/soprut
  1. Александр Жабунин (OXOTH1K)

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

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

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

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

    Огонь!

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

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

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

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

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

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

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

  5. (Spirit)
    (Spirit) 2 месяца назад

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

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

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

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

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

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

      • (Spirit)
        (Spirit) 2 месяца назад

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

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

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


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

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

15 нояб. 2018 г.
Способы автоматизации механических ворот
15 июн. 2018 г.
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
27 авг. 2018 г.
Интегрируем ХА в HomeKit
24 авг. 2018 г.
Пошаговая установка HomeAssistant
1 нояб. 2018 г.
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
25 нояб. 2018 г.
Умное зеркало добавляем модули Airplay и Google Calendar
3 окт. 2018 г.
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.
4 апр. 2019 г.
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
20 окт. 2018 г.
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
24 авг. 2018 г.
Краткий экскурс в настройку Home Assistant