Files
2026-10-11 01:27:15 +03:00

9.8 KiB
Raw Permalink Blame History

Интерфейс настройки контроллера

Источник: Wiki LightHub (lazyhome.ru), страница «интерфейс_настройки». Снапшот от 2026-10-02.

Интерфейс настройки контроллера

Постоянная память контроллера слишком мала, чтобы на ней можно было разместить полноценный интерфейс по его настройке. Точнее, это можно сделать, но в ущерб функциональности, занимая ценную память и ресурсы для веб содержимого, совершенно бесполезного, когда контроллер уже настроен и просто работает

Поэтому Страница настройки изначально отсутствовала, вместо этого конфигурацию можно задавать через "портал" - https://lazyhome.ru/portal - Это описано тут как LightHub работает с файлом конфигурации, простой метод настройки - через портал lazyhome.ru

Но это не единственный способ После того, как у контроллера появился HTTP API, стало возможным использование браузера для настройки

Для настройки контроллера, можно обратиться на его адрес. Например

контроллер отрабатывая этот запрос, подгрузит страницу управления с публичного ресурса, а уже она будет использовать API контроллера в вашей локальной сети

  • Первый недостаток - адрес надо знать и помнить
  • Второй - зависимость от интернета и внешнего ресурса
  • Главный недостаток: Начиная с последних версий браузера chrome данный способ перестал работать, так как google ужесточила требования к безопасности и запретила страницам, загруженным из интернета, обращаться к ресурсам локальной сети

Тем не менее, метод продолжает работать на браузере fireFox

Недавно я исследовал еще одну возможность сделать удобной настройку контроллеров в локальной сети - установив плагин для браузера chrome (для fireFox, также, это возможно)

Плагин для браузера

Преимущества:

  • Весь веб-контент лежит внутри плагина, в вашем браузере. Кроме того, что не требуется доступ в интернет, решается и вопрос безопасности - chrome позволяет браузеру использовать API контроллера в локальной сети
  • Появляется возможность поиска контроллеров в вашей локальной сети, так как в них давно реализован протокол MDNS

Недостаток тут только один - надо потратить 5 минут на установку этого плагина. Так как браузер не имеет прав просканировать локальную сеть на предмет наличия контроллеров, плагин использует утилиту zeroconf_lookup которая была разработана в рамках открытого проекта https://github.com/railduino/zeroconf-lookup

На базе этого проекта, я сделал прототип плагина для конфигурирования контроллеров lighthub https://github.com/anklimov/zeroconf-lighthub

Плагин состоит из двух частей:

  • Собственно плагин браузера
  • Утилита поиска zeroconf-lookup

Скачивание проекта

Скачивание и разархивирование надо сделать перед началом всех последующих действий

  • На странице проекта https://github.com/anklimov/zeroconf-lighthub скачиваем архив (нажать зеленую кнопку Code и выбрать download ZIP)
  • Разархивируем в какую-либо папку, которую вы в дальнейшем не будете удалять (например \Users\youName\plugin)
  • (если вы разработчик - вместо предыдущих двух пунктов, вы, конечно, предпочтете использовать утилиту git) git clone https://github.com/anklimov/zeroconf-lighthub

Как установить плагин:

  • Установить из магазина приложений Chrome (чуть позже выложу)
  • Установить из папки, скачанной с ГитХаб в режиме разработчика. Это не сильно сложнее, но позволит дорабатывать плагин (очень надеюсь на то, что кто-то будет его дорабатывать, я не веб разработчик).
    • Для этого открываем браузер chrome, в меню "расширения" выбираем "управление расширениями".
    • Включаем переключатель "режим разработчика",
    • нажимаем кнопку"Загрузить распакованное расширение".
    • Выбираем папку _zeroconf-lighthub-master/Chrome_ в распакованном на предыдущем этапе архиве
    • Расширение устанавливается, заглядываем на страницу его свойств и копируем идентификатор расширения (например gepnlbipogackhpjkojhkonkijdgpgji ) это нам пригодится чуть позже

Как установить утилиту:

Windows

  • Переходите в каталог _zeroconf-lighthub-master\Windows_Go_
  • Из командной строки запускаете - zeroconf_lookup.exe -i -с gepnlbipogackhpjkojhkonkijdgpgji (тут укажите ваш идентификатор расширения, скопированный на предыдущем этапе)
  • После этого переносить данный файл с этого места или удалять папку нельзя
  • Если ставили плагин из магазина приложений - можно при запуске не указывать идентификатор расширения. zeroconf_lookup.exe -i

MacOS

то же самое, только выполнимый файл лежит в директории _zeroconf-lighthub/Apple_Go_

Использование

Теперь все просто - нажимаем на иконку расширения - оно сканирует сеть и выдает перечень всех контроллеров онлайн в локальной сети (и не только контроллеров - любых устройств, которые заявляют о себе)

Для входа в настройки контроллера надо нажать Edit напротив него в списке

Сверка с кодом (2026-10-02)

  • Корректно: обращение по адресу контроллера (http://<ip> / http://<имя>.local) приводит к 301-редиректу на страницу управления с публичного ресурса: httpHandler в lighthub/main.cpp:264-286 отвечает Location: http://<REDIRECTION_URL>?mac=...&ip=...&port=...&name=.... По умолчанию REDIRECTION_URL для esp32-wifi задан как http://lazyhome.ru/pwa (build-flags/build_flags_esp32-wifi), то есть «портал» подгружается с lazyhome.ru и дальше использует HTTP API контроллера.
  • Корректно: MDNS-анонс контроллера реализован (MDNS.addService("http", "tcp", OTA_PORT), main.cpp:650; на STM — mdns.addServiceRecord, main.cpp:1332), на этом основан поиск плагина через zeroconf_lookup.
  • Корректно: веб-контент не размещается в памяти контроллера — в коде есть только HTTP API: GET/POST /item/<имя>, GET /ram/[<имя>], POST /command/<команда> (подача CLI-команд по HTTP), POST /config.json (локальное изменение конфига отключает загрузку с портала, main.cpp:368-374).
  • Примечание: ограничение Chrome на доступ внешних страниц к локальной сети — особенность браузеров, описана верно; рекомендация по fireFox/плагину актуальна.