Files
MeshCore-Posadmesh/posadmesh-docs/web-panel.md
T
shade c86ae584ab
Build and deploy Docs site to GitHub Pages / github-pages (push) Canceled after 0s
PR Build Check / build (Heltec_v3_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_repeater) (push) Canceled after 0s
PR Build Check / build (Heltec_v3_room_server) (push) Canceled after 0s
PR Build Check / build (LilyGo_Tlora_C6_repeater_) (push) Canceled after 0s
PR Build Check / build (PicoW_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ble) (push) Canceled after 0s
PR Build Check / build (RAK_4631_companion_radio_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater) (push) Canceled after 0s
PR Build Check / build (RAK_4631_repeater_ethernet) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server) (push) Canceled after 0s
PR Build Check / build (RAK_4631_room_server_ethernet) (push) Canceled after 0s
PR Build Check / build (Tbeam_SX1276_repeater) (push) Canceled after 0s
PR Build Check / build (wio-e5-mini_repeater) (push) Canceled after 0s
PR Build Check / build (wio_wm1110_repeater) (push) Canceled after 0s
Run Unit Tests / test (push) Canceled after 0s
refactor: rebrand to PosadMesh, translate docs to Russian, drop legacy brokers
2026-10-07 19:04:39 +03:00

32 KiB
Raw Blame History

Веб-панель репитера

Эта страница предназначена для конечных пользователей, которые используют сборку PosadMesh *_repeater_observer с включённой локальной веб-панелью.

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

С чего начать

Для обычного первого использования:

  1. Подключите репитер к Wi-Fi.
  2. Выполните get wifi.status, чтобы узнать его IP-адрес.
  3. Откройте https://<repeater-ip>/ в браузере.
  4. Примите предупреждение о самоподписанном сертификате.
  5. Войдите с паролем администратора репитера.
  6. Используйте панель для настройки или диагностики.
  7. По завершении выполните set web off, если репитеру нужен максимальный запас heap для MQTT.

Большинству пользователей панель нужна только для первой настройки, редких изменений параметров и диагностики. Оставляйте её включённой только тогда, когда доступ из браузера стоит дополнительного расхода памяти.

Что это такое

Веб-панель репитера — это локальная страница настройки по HTTPS, которую репитер отдаёт напрямую по Wi-Fi.

Она предоставляет:

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

Рекомендации по эксплуатации:

  • используйте её для первоначальной настройки, редких изменений конфигурации и диагностики
  • по завершении предпочитайте set web off на обсерверах, которым нужен максимальный запас
  • это оставляет больше внутреннего heap для работы MQTT/WSS, особенно в конфигурациях с двумя брокерами

Типовые задачи

Проверить Wi-Fi и MQTT

  1. Откройте панель.
  2. Нажмите wifi.status в Quick get Commands.
  3. Нажмите mqtt.status в Quick get Commands.
  4. Откройте /stats из верхней навигации для просмотра исторической статистики.

Изменить имя устройства

  1. Отредактируйте Device Name.
  2. Нажмите Save.
  3. Подтвердите сгенерированную команду и ответ в поле терминала CLI.

Обновить владельца или email MQTT

  1. Перейдите в MQTT Settings.
  2. Введите новое значение.
  3. Нажмите Save.
  4. Используйте кнопку обновления, если хотите перечитать сохранённое значение из репитера.

Обзор скриншотов

Скриншоты ниже показывают текущее разделение между более лёгкой страницей администратора /app и отдельной страницей статуса /stats.

Скриншот /app

Обзор веб-панели репитера /app Обзор веб-панели репитера /app

Скриншот /stats

Обзор веб-панели репитера /stats Обзор веб-панели репитера /stats

Требования

Вам потребуется:

  • поддерживаемая сборка прошивки *_repeater_observer
  • настроенный на репитере Wi-Fi
  • репитер, подключённый к вашей локальной сети
  • пароль администратора репитера

Некоторые ограниченные по ресурсам таргеты отключают веб-панель, чтобы уложиться в лимиты flash. Если ваша плата её не поддерживает, get web.status не покажет её как доступную.

Как её открыть

  1. Подключите репитер к Wi-Fi.
  2. Узнайте его IP-адрес.
  3. Откройте https://<repeater-ip>/ в браузере.
  4. Примите предупреждение браузера о самоподписанном сертификате.
  5. Введите пароль администратора репитера.

Полезные команды CLI:

  • get wifi.status: показывает состояние Wi-Fi, IP-адрес, канал и уровень сигнала при подключении.
  • get web.status: показывает, запущена ли веб-панель и какой URL использовать.

Пример:

  • https://10.33.135.208/

Вход и безопасность

  • панель использует тот же пароль администратора, что и CLI репитера
  • соединение идёт по HTTPS, но сертификат самоподписанный
  • браузеры будут предупреждать при первом подключении
  • после входа панель открывает доступ к CLI репитера
  • браузер сохраняет токен сессии при переключении между /app и /stats; страница переключает представления на месте до выхода, блокировки по бездействию или перезапуска устройства
  • кратковременные пропадания Wi-Fi могут прервать загрузку страницы, но не должны требовать нового входа при перезапуске веб-панели
  • после перезапуска или перепрошивки устройства приложение проверяет сохранённый токен перед загрузкой настроек и возвращается к экрану входа, если сессия устарела

Это предназначено для локального административного использования в доверенной сети, а не для открытого доступа из интернета.

Примечания по производительности

Панель спроектирована так, чтобы загружаться мягче, чем более ранние версии. При входе она теперь запрашивает разделы последовательно, а не запрашивает сразу один большой bootstrap payload.

Даже с этим изменением панель по-прежнему использует HTTPS и внутренний heap. На платах с одним или двумя брокерами WSS MQTT открытие панели уменьшает запас MQTT на время активной сессии.

Рекомендуемая практика для развёртываний репитера:

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

Навигация и действия

У веб-консоли теперь две основные страницы:

  • /app: более лёгкое представление для управления и настройки
  • /stats: текущий статус, тренды, соседи и последние события

Обе страницы используют одну и ту же верхнюю навигацию и служебные действия.

/app

Страница /app — это основная область администрирования и настройки.

Она включает:

  • переход к App и Stats
  • Advert
  • Start OTA
  • Reboot
  • переключатель темы
  • Logout

Используйте Start OTA только тогда, когда собираетесь обновить прошивку.

Если браузер может получить манифест прошивки PosadMesh flasher, страница приложения сверяет версию релиза PosadMesh из mqtt.client_version с опубликованными релизами MeshCore-Posadmesh. Когда доступен более новый тег релиза PosadMesh, в верхней части страницы появляется уведомление об обновлении прошивки.

Для сборок, включающих CLIENT_ENV, уведомление может показывать Update now. Это скачивает соответствующий не объединённый .bin с зеркала прошивок PosadMesh flasher, показывает прогресс в баннере, загружает прошивку через веб-панель HTTPS и позволяет устройству перезагрузиться. Для этого требуются заголовки CORS на путях /firmwares/ flasher.

/stats

Страница /stats — это основное место для текущего статуса и исторического обзора.

Она включает:

  • переход к App и Stats
  • Refresh
  • Reboot
  • переключатель темы
  • Logout

Быстрые команды "get"

Этот раздел выполняет типовые команды только для чтения для:

  • Wi-Fi
  • MQTT

Они полезны для быстрых проверок без ввода в поле CLI. Быстрые действия MQTT включают mqtt.status, mqtt.client_version, mqtt.iata, mqtt.owner и mqtt.email.

Выполнить команду CLI

Это небольшой терминал для CLI репитера.

  • нажмите Enter, чтобы выполнить команду
  • история команд отображается в поле терминала ниже
  • кнопки сохранения в других частях страницы также показывают здесь сгенерированную команду и ответ
  • clock доступна здесь, если вы хотите проверить текущее время платы репитера
  • аутентифицированные сессии могут выполнять те же команды CLI, которые принимает репитер

Это позволяет легко увидеть, что именно панель отправила репитеру.

Настройки репитера

В этот раздел входят:

  • Device Name
  • Clock UTC
  • Latitude
  • Longitude
  • Guest Password
  • Private Key
  • Advert Interval
  • Flood Interval
  • Scoped Flood Max
  • Unscoped Flood Max
  • Owner Info

Примечания:

  • Latitude и Longitude по умолчанию равны 0.0 как заполнители
  • изменение приватного ключа требует перезагрузки для применения
  • кнопки обновления загружают текущее значение из репитера
  • кнопки сохранения немедленно отправляют соответствующую команду CLI

Настройки радио и регионы

Раздел Radio Settings включает селектор community-пресета радио, режим path hash и выпадающий список Region (Australia), построенный из групп штатов, используемых селектором MQTT IATA. Список предустанавливается только тогда, когда у репитера уже есть соответствующий разрешённый регион au-STATE. Нажатие кнопки Save для региона создаёт и разрешает базовый регион au вместе с выбранным регионом штата, а затем сохраняет карту регионов командой region save.

Информация

Этот раздел показывает:

  • Version: версия прошивки с датой сборки
  • Client Version: строка версии MQTT-клиента
  • Public Key

Режим Ghost Node

Режим Ghost Node — это удобное управление на странице /app для репитера, который должен оставаться в Wi-Fi и MQTT, но не должен активно вести себя как ещё один репитер поблизости.

Типичный сценарий использования:

  • MQTT-обсервер в помещении или в одном месте с другим устройством, когда соседний репитер уже выполняет работу по RF-ретрансляции
  • узел, который вы хотите использовать для передачи данных в MQTT, веб-статуса и диагностики, не добавляя при этом лишний трафик ретрансляции или advert-пакеты

Когда режим Ghost Node включён, он:

  • отключает repeat
  • устанавливает advert.interval в 0
  • устанавливает flood.advert.interval в 0
  • оставляет работающими локальную веб-панель и функции MQTT

Когда он отключён, панель восстанавливает предыдущие настройки repeat и advert, если она всё ещё знает их из текущей сессии браузера. Если нет, она возвращается к:

  • repeat on
  • advert.interval 60
  • flood.advert.interval 12

Этот режим полезен, когда вы хотите, чтобы устройство наблюдало и публиковало данные, а не выступало дополнительным RF-репитером. Он не создаёт отдельную роль прошивки; это просто сгруппированный ярлык веб-панели для этих существующих настроек.

Настройки MQTT

В этот раздел входят:

  • mqtt.iata: выбирается из подготовленного списка восточного побережья/юго-востока.
  • mqtt.owner: публичный ключ владельца.
  • mqtt.email: контактный email владельца.
  • Брокеры MQTT: переключатель MeshCoreTel RU и переключатель Custom broker, каждый включает или отключает свой брокер. Одновременно можно включить не более двух брокеров.
  • поля custom MQTT host:port, транспорт TCP/WSS, имя пользователя и пароль.

UNSET - To be configured — значение по умолчанию для новых установок обсервера, пока не появится реальное сохранённое значение.

Примечания:

  • когда mqtt.iata имеет значение UNSET, панель показывает в верхней части баннер с напоминанием задать его в MQTT Settings
  • пока mqtt.iata имеет значение UNSET, включённые брокеры MQTT не пытаются подключиться
  • текущие состояния серверов MQTT загружаются при открытии страницы
  • вы можете включать или отключать каждый сервер MQTT из этой панели
  • custom MQTT использует настроенные имя пользователя и пароль, а не аутентификацию JWT
  • custom MQTT по умолчанию использует TCP; выберите WSS для MQTT через защищённые WebSockets с фиксированным websocket-путём /mqtt и корневым CA-бандлом x509 из ESP-IDF
  • отключение подключённого сервера MQTT публикует retained-статус offline до отключения клиента
  • изменение mqtt.iata с настроенного значения публикует retained-статус offline в старый топик статуса, перезапускает подключённых клиентов брокера и переподключается по новому пути топика
  • одновременно можно включить не более двух брокеров MQTT

Обзор /stats

Страница статистики загружается отдельно от /app и предназначена для того, чтобы основная страница администратора оставалась легче.

Страница /stats сейчас показывает:

  • Services: MQTT, web, архив, число соседей и, когда смонтирована, ёмкость карты и архива
  • необязательная сводная карточка Environment на всю ширину на платах, которые передают телеметрию GPS или параметров окружающей среды
  • Trends: батарея, свободный heap, активность пакетов, сигнал, уровень шума и, когда GPS активен, спутники
  • Neighbours: текущая таблица соседей с ID, SNR, давностью последнего приёма и давностью advert
  • Events: текущие события загрузки/сессии

Запланированные ротации MQTT JWT показываются как события mqtt_token_refreshed вместо короткой пары mqtt_disconnected / mqtt_connected.

Для плат, которые предоставляют дополнительную телеметрию, необязательная сводная карточка Environment может показывать текущие значения, такие как состояние активности/fix GPS, широта, долгота, высота по GPS, напряжение, температура датчика, влажность, барометр, высота по давлению и температура MCU.

Метрики без текущего значения скрываются, а не отображаются строками-заполнителями, поэтому карточки различаются в зависимости от платы и текущего состояния датчиков.

Индикатор батареи Core предпочитает процент батареи, сообщаемый платой, когда таргет его предоставляет. На таких платах детализация индикатора показывает только текущее значение напряжения батареи в милливольтах. В противном случае он масштабирует отображаемый процент из настроенного для платы диапазона напряжения батареи и показывает этот диапазон в тексте детализации, а не предполагает фиксированную однобаночную сборку 3000-4200 mV.

Графики трендов загружаются последовательно, а не одним большим payload:

  1. сводка/статус
  2. батарея
  3. память
  4. активность пакетов
  5. сигнал
  6. спутники, когда GPS активен

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

Если web.stats включён и архив на SD смонтирован, тренды могут восстановить архивные сводные точки после перезагрузки из последнего снимка SD. Недавние живые точки по-прежнему добавляются из истории в памяти.

Ёмкость истории статистики

Выборки статистики собираются раз в минуту.

Текущие лимиты истории в памяти:

Класс платы Лимит выборок Лимит событий Примерная история выборок
Без PSRAM 24 8 Только недавняя живая история
Менее 4 MB PSRAM 240 96 Около 4 часов
От 4 MB до менее 8 MB PSRAM 480 192 Около 8 часов
8 MB PSRAM или больше 720 288 Около 12 часов

Когда web.stats включён, история статистики начинает собираться с момента загрузки или с момента его включения, даже если /stats ещё не открывалась. Платы без PSRAM используют меньший буфер только с живыми данными, показанный выше.

Восстановление из архива требует включённого web.stats и смонтированной SD-карты на платах, которые поддерживают путь архива PosadMesh.

Если доступ к архиву пропадает во время работы, репитер периодически повторяет монтирование SD, пока web.stats остаётся включённым.

Основное назначение SD-карты — позволить репитеру сохранять и восстанавливать историю статистики для /stats. Архив хранит быстрые файлы снимков .latest для быстрого восстановления и ежедневные файлы .log с датой в UTC для более долгой истории. Как дополнительная возможность, эти файлы также можно извлечь и просмотреть на компьютере для более глубокого ручного анализа.

На платах без PSRAM /stats всё ещё может показывать недавние графики, но история меньше и не обеспечивает такого же поведения с опорой на архив, как платы с поддержкой PSRAM.

Полезные команды CLI:

  • set web.stats on
  • set web.stats off
  • get web.stats.status

Использование на мобильных устройствах

Страница адаптивная и должна нормально работать на телефоне.

На мобильном:

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

Дополнительные задачи

Start OTA

  1. Нажмите Start OTA.
  2. Подтвердите действие.
  3. Панель запускает OTA, ждёт, пока HTTP-слушатель OTA займёт порт 80, а затем открывает возвращённый URL http://.../update.
  4. Локальный HTTP-слушатель перенаправления на порту 80 освобождается, чтобы OTA мог занять этот порт.
  5. Продолжите по обычному сценарию OTA.

Если репитер уже подключён к Wi-Fi, OTA использует существующий адрес в локальной сети. Если Wi-Fi не подключён, репитер запускает точку доступа MeshCore-OTA и возвращает вместо этого адрес OTA. Если старый слушатель перенаправления не полностью освободил порт 80, слушатель OTA повторяет попытки примерно до 30 секунд, после чего сдаётся.

Если более старая сборка отправляет вас на странное перенаправление после start ota, используйте веб-кнопку Start OTA для запуска обновления. Эта проблема с перенаправлением исправлена в observer-eastmesh-v1.3.11.

Purge SD

Purge SD отображается красным встроенным текстом рядом с Archive Used в карточке Services на /stats. Запрашивает подтверждение, а затем выполняет аутентифицированную команду purge sd.

Это удаляет файлы и каталоги из архива на смонтированной SD-карте, после чего заново создаёт пустой каталог архива /stats для продолжения записи во время работы. Это не стирает внутреннюю файловую систему репитера, идентичность, prefs, регионы, настройки радио или настройки MQTT.

Использовать историческую статистику

  1. При необходимости включите статистику командой set web.stats on.
  2. Откройте /stats из верхней навигации.
  3. Просмотрите Services для состояния архива и работы.
  4. Просмотрите Trends для недавней истории графиков.
  5. Используйте Refresh, чтобы перезагрузить страницу статистики.

Диагностика

Браузер предупреждает о сертификате

Это ожидаемо. Панель использует самоподписанный сертификат, созданный для локального использования.

Я не могу открыть страницу

Проверьте:

  • репитер подключён к Wi-Fi
  • IP-адрес из get wifi.status
  • get web.status сообщает, что панель запущена
  • ваша плата/таргет прошивки поддерживает веб-панель

Панель открывается, но вход не удаётся

Используйте пароль администратора репитера, а не гостевой пароль.

MQTT становится нестабильным при входе

Веб-панель теперь загружает настройки раздел за разделом, чтобы снизить нагрузку при запуске, но HTTPS всё равно расходует внутренний heap.

Проверьте:

  • включён ли один или два брокера MQTT
  • memory до и после входа
  • улучшается ли стабильность после set web off

Для стационарных установок, где время работы MQTT важнее доступа из браузера, используйте панель недолго, а затем снова отключите её.

Открывается HTTP вместо HTTPS

Теперь репитер перенаправляет обычные запросы http:// на локальный URL панели https://. Если после перенаправления браузер всё ещё показывает проблему с подключением, откройте https://<repeater-ip>/ напрямую и сначала примите предупреждение о самоподписанном сертификате.

Статистика или настройки не обновляются

Попробуйте:

  • обновить вкладку браузера
  • использовать Refresh на /stats
  • выйти и войти снова
  • проверить стабильность Wi-Fi с помощью get wifi.status

/stats недоступна

Проверьте:

  • get web.status
  • get web.stats.status
  • была ли применена команда set web.stats on

Если web.stats отключён, /stats останется отключённой, и запросы исторических графиков выполняться не будут.

См. также