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)
    Александр Жабунин (OXOTH1K) 20 дней назад

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

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

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

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

    Огонь!

  4. Виталий Никольский (bigmanekb)
    Виталий Никольский (bigmanekb) 20 дней назад

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

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

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

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

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

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

  5. (Spirit) 19 дней назад

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

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

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

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

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

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

      • (Spirit) 19 дней назад

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

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

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

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