9.8 KiB
Интерфейс настройки контроллера
Источник: 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/плагину актуальна.