Valentin V. Bartenev ac33787de5 Web: replace ElegantOTA UI with native HTTPS firmware upload
OTA firmware updates previously required starting a separate plain-HTTP
AsyncWebServer on port 80 via ElegantOTA.  This meant stopping the
redirect server, spinning up a new server instance, and transmitting
the firmware binary unencrypted without authentication enforced.

Add a POST /api/ota endpoint directly to WebPanelServer.  The handler
authenticates via the existing X-Auth-Token session token, resets the
idle timeout via noteActivity(), and streams the request body in
4096-byte chunks into Update.write() (matching the ESP32 flash sector
size). Update.begin() is called with the exact Content-Length so the
library can verify partition space upfront.  Update.abort() is called
on any read or write error to leave the device on the current firmware.
On success the handler sends a 200 response and reboots after 1s.
The endpoint runs over the existing HTTPS server on port 443.

Replace the "Start OTA" button in the actions bar with an inline
"Firmware Update" card on the app page.  The card contains a .bin file
picker and an upload button.  Upload progress is tracked via
XMLHttpRequest's upload.onprogress event and shown with a progress bar.
A 401 response redirects to the login page; other failures re-enable
the file picker so the user can retry without reloading the page.

The old ElegantOTA infrastructure (ESP32Board::startOTAUpdate,
WebService::prepareForOTAStart, the /update redirect handler) is not
yet removed and remains accessible via the `start ota` CLI command.
2026-05-11 09:18:12 +03:00
2025-01-13 14:07:48 +11:00
2025-01-13 14:07:48 +11:00
2025-06-05 20:35:40 +12:00
2026-03-20 10:23:51 +11:00
2026-03-23 14:26:56 +01:00
2025-01-25 23:09:09 +11:00
2026-05-02 21:43:36 +03:00
2026-04-10 18:01:38 +10:00
2026-04-23 09:49:51 +10:00
2026-04-10 18:01:38 +10:00

Прошивка MeshCore-репитеров с WEB и MQTT

Это форк прошивки MeshCore-EastMesh, в котором поддержка австралийского сервиса телеметрии EastMesh AU заменена на поддержку сервиса MeshCoreTel, а также выполнен ряд других доработок и адаптация.

В остальном прошивка базируется на официальных версиях прошивок МеshCore. Благодарность Scott Powell / Ripple Radios и всем контрибьюторам MeshCore за оригинальную прошивку и основу проекта, а также Jared Dohrman за доработки, выполненные в рамках EastMesh.

Ключевые особенности прошивки

Дополнения ретранслятора

  • поддержка Wi-Fi в клиентском режиме
  • автонастройка сети через DHCP
  • синхронизация времени по NTP
  • поддержка MQTT-брокеров:
    • meshcoretel
    • letsmesh-eu
    • letsmesh-us
  • транспорт plain TCP и WSS по пути /mqtt
  • JWT-аутентификация с использованием идентификации устройства для WSS
  • CLI-команды для:
    • учётных данных WiFi
    • энергосбережения WiFi
    • отчётов о заряде батареи на поддерживаемых платформах
    • включения конечной точки MQTT
    • отправки пакетов MQTT и публикации сырых данных
    • публичного ключа владельца и адреса электронной почты
    • включения локальной веб-панели
    • управления вентилятором на TBeam 1W
  • все сетевые процессы (включая обработку MQTT и веб-панели) вынесены на отдельное ядро и не вносят задержек в обработку LoRa-пакетов и функционирование ретранслятора

Локальная веб-панель

Дополнительно на поддерживаемых устройствах (с достаточным количеством памяти) ретранслятор может предоставлять локальную панель конфигурации по HTTPS через WiFi.

Возможности:

  • доступ по паролю, используя существующий административный пароль ретранслятора
  • выполнение CLI-команд
  • изменение основных настроек репитера и MQTT через веб-интерфейс
  • сгруппированные быстрые действия
  • вся ключевая статистика по репитеру
  • список последних услышанных соседий с показателями качества сигнала
  • хранение истории показателей за последние несколько часов (только на устройствах с PSRAM)
  • светлая и тёмная темы
  • возможность отключения командой set web off

Подробнее в документации: Использование веб-панели ретранслятора

Веб-API по HTTPS

На устройствах с поддержкой веб-панели также возможно использование встроенного API по Wi-Fi.

Возможности:

  • авторизация по паролю администратора с получением временного токена
  • выполнение любых CLI-команд для управления, настройки и статуса
  • получение всей доступной телеметрии

Данный API может быть использован для мониторинга с хранением долгосрочной истории (например с использованием таких инструментов как Prometheus и Grafana), а также автонастройки и управления устройством с помощью скриптов.

Подробнее в документации: Использование веб-API ретранслятора

Релизы

Готовые прошивки публикуются на GitHub Releases:

А также доступны в веб-прошивальщике от MeshCoreTel:

Документация

Основные разделы пользовательского руководства:

S
Описание
Клон репозитория от VBart с моими добавлениями касательно устройств
Readme
11 MiB
Languages
C 55.2%
C++ 43.5%
Python 0.7%
Shell 0.3%
CSS 0.2%
Разное 0.1%