395 lines
27 KiB
Markdown
395 lines
27 KiB
Markdown
# Веб-панель ретранслятора
|
||
|
||
Эта страница предназначена для конечных пользователей, использующих сборку MeshCoreTel-firmware с включённой локальной веб-панелью.
|
||
|
||
Здесь описано, как открыть панель, за что отвечает каждый раздел и чего ожидать при использовании на компьютере или мобильном устройстве.
|
||
|
||
## Что это такое
|
||
|
||
Веб-панель ретранслятора — это локальная страница конфигурации по HTTPS, обслуживаемая непосредственно самим ретранслятором через Wi-Fi.
|
||
|
||
Она предоставляет:
|
||
|
||
- защищённую паролем страницу локального администратора по адресу `/app`
|
||
- отдельную страницу статистики и трендов по адресу `/stats`
|
||
- быстрые команды `get` для типовых проверок ретранслятора и MQTT
|
||
- панель CLI в стиле терминала для полного доступа к командной строке ретранслятора
|
||
- редактируемые настройки ретранслятора
|
||
- редактируемые настройки MQTT
|
||
- исторический обзор статистики с трендами, соседями и недавними событиями
|
||
|
||
Рекомендации по использованию:
|
||
|
||
- используйте панель для первоначальной настройки, эпизодических изменений конфигурации и устранения неполадок
|
||
- после завершения работы отдавайте предпочтение команде `set web off` на MQTT-ретрансляторах, где важен максимальный запас ресурсов
|
||
- это оставляет больше памяти, доступной для работы MQTT/WSS, особенно в конфигурациях с двумя WSS-брокерами
|
||
|
||
## Обзор скриншотов
|
||
|
||
Скриншоты ниже показывают текущее разделение на облегчённую страницу администратора `/app` и отдельную страницу статуса `/stats`.
|
||
|
||
### Скриншот `/app`
|
||
|
||

|
||

|
||
|
||
### Скриншот `/stats`
|
||
|
||

|
||

|
||
|
||
## Требования
|
||
|
||
Вам потребуется:
|
||
|
||
- поддерживаемая сборка прошивки MeshCoreTel
|
||
- настроенный Wi-Fi на ретрансляторе
|
||
- ретранслятор, подключённый к вашей локальной сети
|
||
- пароль администратора ретранслятора
|
||
|
||
На некоторых платформах с ограниченными ресурсами веб-панель отключена, чтобы уложиться в лимиты флеш-памяти. Если ваше устройство её не поддерживает, `get web.status` не покажет её как доступную.
|
||
|
||
## Как открыть панель
|
||
|
||
1. Подключите ретранслятор к Wi-Fi.
|
||
2. Узнайте его IP-адрес.
|
||
3. Откройте `https://<IP-репитера>/` в браузере.
|
||
4. Примите предупреждение браузера о самоподписанном сертификате.
|
||
5. Введите пароль администратора ретранслятора.
|
||
|
||
Полезные команды CLI:
|
||
|
||
- `get wifi.status`: показывает состояние Wi-Fi и IP-адрес при подключении.
|
||
- `get web.status`: показывает, запущена ли веб-панель и по какому URL она доступна.
|
||
|
||
Пример:
|
||
|
||
- `https://10.33.135.208/`
|
||
|
||
## Вход и безопасность
|
||
|
||
- панель использует тот же пароль администратора, что и CLI ретранслятора
|
||
- соединение по HTTPS, но сертификат самоподписанный
|
||
- браузеры будут выдавать предупреждение при первом подключении
|
||
- после входа панель открывает доступ к CLI ретранслятора
|
||
|
||
Панель предназначена для локального администрирования в доверенной сети и не рассчитана на использование в открытом интернете.
|
||
|
||
## Замечания по производительности
|
||
|
||
Панель использует HTTPS и расходует память. На устройствах, работающих с одним или двумя WSS MQTT-брокерами, открытие панели уменьшает запас ресурсов для MQTT, пока сессия активна.
|
||
|
||
Рекомендуемая практика для развёртывания ретрансляторов:
|
||
|
||
- включайте панель для первоначальной настройки
|
||
- используйте её снова для периодических проверок или устранения неполадок
|
||
- отключайте командой `set web off` после завершения, чтобы у MQTT был максимальный запас ресурсов
|
||
|
||
## Навигация и действия
|
||
|
||
Веб-панель состоит из двух основных страниц:
|
||
|
||
- `/app`: облегчённый вид для управления и конфигурации
|
||
- `/stats`: текущий статус, тренды, соседи и недавние события
|
||
|
||
Обе страницы имеют одинаковую верхнюю навигацию и служебные действия.
|
||
|
||
### `/app`
|
||
|
||
Страница `/app` — это основной интерфейс администратора и конфигурации.
|
||
|
||
Она включает:
|
||
|
||
- навигацию: `App` и `Stats`
|
||
- `Advert` (Объявление)
|
||
- `Reboot` (Перезагрузка)
|
||
- переключатель темы
|
||
- `Logout` (Выход)
|
||
|
||
Используйте `Start OTA` только тогда, когда намереваетесь обновить прошивку дистанционно.
|
||
|
||
### `/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, которые принимает ретранслятор
|
||
|
||
Это позволяет легко увидеть, что именно панель отправила ретранслятору.
|
||
|
||
## Информация
|
||
|
||
В этом разделе отображается:
|
||
|
||
- `Hardware`: модель устройства
|
||
- `Firmware`: версия прошивки с датой сборки
|
||
- `Public Key` (Публичный ключ)
|
||
|
||
## Обновление прошивки (OTA)
|
||
|
||
Этот раздел позволяет безопасно загружать прошивку на устройство по Wi-Fi.
|
||
|
||
Чтобы перепрошить устройство, нажмите на поле выбора файла и выберите файл прошивки с расширением `.bin`, при этом кнопка `Upload` активируется.
|
||
Нажмите кнопку `Upload` и после подтверждения начнётся загрузка прошивки с индикацией в процентах.
|
||
|
||
После успешного завершения устройство автоматически перезагрузится с новой прошивкой.
|
||
|
||
## Настройки ретранслятора
|
||
|
||
Этот раздел включает:
|
||
|
||
- Имя устройства (Device Name)
|
||
- UTC часы (Clock UTC)
|
||
- Широта (Latitude)
|
||
- Долгота (Longitude)
|
||
- Гостевой пароль (Guest Password)
|
||
- Приватный ключ (Private Key)
|
||
- Интервал объявлений (Advert Interval)
|
||
- Интервал массовой рассылки (Flood Interval)
|
||
- Макс. массовых сообщений (Flood Max)
|
||
- Информация о владельце (Owner Info)
|
||
|
||
Примечания:
|
||
|
||
- `Latitude` и `Longitude` по умолчанию равны `0.0` как заполнители
|
||
- изменение приватного ключа требует перезагрузки для применения
|
||
- кнопки обновления загружают текущее значение с ретранслятора
|
||
- кнопки сохранения немедленно отправляют соответствующую команду CLI
|
||
|
||
## Режим скрытого узла (Ghost Node Mode)
|
||
|
||
Режим скрытого узла — это удобный элемент управления на `/app` для ретранслятора, который должен оставаться в Wi-Fi и MQTT, но не должен активно вести себя как ещё один близлежащий ретранслятор.
|
||
|
||
Типичный сценарий использования:
|
||
|
||
- комнатный или расположенный рядом MQTT-наблюдатель, когда другой ретранслятор поблизости уже выполняет радио-ретрансляцию
|
||
- узел, который должен передавать данные MQTT, веб-статус и диагностику, не добавляя лишнего ретрансляционного трафика или объявлений
|
||
|
||
При включении Режим скрытого узла:
|
||
|
||
- выключает `repeat`
|
||
- устанавливает `advert.interval` в `0`
|
||
- устанавливает `flood.advert.interval` в `0`
|
||
- оставляет локальную веб-панель и функции MQTT работающими
|
||
|
||
При отключении панель восстанавливает предыдущие настройки повтора и объявлений, если они ещё известны из текущей сессии браузера. Если нет, она возвращается к:
|
||
|
||
- `repeat on`
|
||
- `advert.interval 60`
|
||
- `flood.advert.interval 12`
|
||
|
||
Этот режим полезен, когда нужно, чтобы устройство наблюдало и публиковало данные, а не действовало как дополнительный передающий ретранслятор. Он не создаёт отдельную роль прошивки; это просто сгруппированное сокращение в веб-панели для существующих настроек.
|
||
|
||
## Настройки MQTT
|
||
|
||
Этот раздел включает:
|
||
|
||
- `mqtt.iata`: выбирается из подготовленного списка.
|
||
- `mqtt.owner`: публичный ключ владельца.
|
||
- `mqtt.email`: контактный email владельца.
|
||
- Переключатели MQTT-брокеров: `meshcoretel`, `letsmesh-eu` и `letsmesh-us`.
|
||
|
||
`UNSET - To be configured` — значение по умолчанию для новых установок MQTT ретранслятора, пока не появится реальное сохранённое значение.
|
||
|
||
Примечания:
|
||
|
||
- если `mqtt.iata` имеет значение `UNSET`, панель показывает баннер вверху с напоминанием задать его в разделе MQTT Settings
|
||
- пока `mqtt.iata` имеет значение `UNSET`, включённые MQTT-брокеры не пытаются подключиться
|
||
- состояние MQTT-брокер загружается при открытии страницы
|
||
- вы можете включать или выключать каждый MQTT-брокер из этой панели
|
||
- включить можно не более двух MQTT-брокеров одновременно
|
||
|
||
## Обзор `/stats`
|
||
|
||
Страница статистики загружается отдельно от `/app` и предназначена для того, чтобы основная страница администратора оставалась легче.
|
||
|
||
Страница `/stats` в настоящее время показывает:
|
||
|
||
- `Services`: MQTT, web, архив, количество соседей и, если SD-карта смонтирована, ёмкость карты и архива
|
||
- опциональную полноширинную сводную карточку `Environment` на платах, передающих GPS или данные телеметрии окружающей среды
|
||
- `Trends`: заряд батареи, свободная память, пакетная активность (RX/TX в виде составного графика), частота ошибок приёма (RX error rate), сигнал, уровень шума, загрузка ядра процессора, температура MCU (с цветовой индикацией теплового порога) и, если включён GPS, спутники; карточки графиков показывают диапазон `min`/`max`, подсветка при наведении синхронизирована по всем графикам
|
||
- `Neighbours`: текущая таблица соседей с ID, SNR, возрастом последнего приёма и возрастом объявления
|
||
- `Events`: события текущей загрузки/сессии
|
||
|
||
Для устройств, передающих дополнительную телеметрию, опциональная сводная карточка `Environment` может показывать текущие значения, такие как состояние GPS-фиксации, широту, долготу, высоту по GPS, напряжение, температуру с датчика, влажность, давление, высоту по давлению и температуру MCU.
|
||
|
||
Метрики, не имеющие текущего значения, скрываются, а не показывают строки-заполнители, поэтому карточки меняются в зависимости от устройства и текущего состояния датчиков.
|
||
|
||
Индикатор батареи `Core` предпочитает отображаемый устройством процент заряда, если устройство его предоставляет. На таких устройствах детализация показывает только текущее напряжение батареи в милливольтах. В противном случае отображаемый процент вычисляется из настроенного диапазона напряжения батареи устройства, и этот диапазон показывается в детализации, а не предполагается фиксированный одноэлементный диапазон `3000-4200 мВ`.
|
||
|
||
Графики трендов загружаются последовательно, а не одним большим пакетом:
|
||
|
||
1. сводка / статус
|
||
2. батарея
|
||
3. память
|
||
4. пакетная активность
|
||
5. частота ошибок приёма
|
||
6. загрузка ядра процессора
|
||
7. сигнал
|
||
8. спутники, когда GPS включён
|
||
|
||
Это позволяет снизить потребление памяти как на стороне браузера, так и на устройстве по сравнению с предыдущим внутристраничным просмотром статистики.
|
||
|
||
Если `web.stats` включён и SD-архив смонтирован, тренды могут восстанавливать архивные сводные точки после перезагрузки из последнего снимка на SD. Недавние актуальные точки по-прежнему добавляются из истории в памяти.
|
||
|
||
### Объём истории статистики
|
||
|
||
Сэмплы статистики собираются раз в минуту.
|
||
|
||
Текущие лимиты истории в памяти:
|
||
|
||
| Класс устройства | Лимит сэмплов | Лимит событий | Период истории |
|
||
| -------------------------------- | ------------: | ------------: | -------------------------- |
|
||
| Без PSRAM | `24` | `8` | Только недавняя оперативная история |
|
||
| Менее `4 Мб` PSRAM | `240` | `96` | Примерно `4` часа |
|
||
| От `4 Мб` до менее `8 Мб` PSRAM | `480` | `192` | Примерно `8` часов |
|
||
| `8 Мб` PSRAM или больше | `720` | `288` | Примерно `12` часов |
|
||
|
||
На устройствах с объёмом PSRAM примерно от `2 Мб` и выше история статистики начинает записываться с момента загрузки, когда `web.stats` включён, даже если `/stats` ещё не открывали.
|
||
|
||
Для восстановления из архива требуется включённый `web.stats` и смонтированная SD-карта на платах, которые поддерживают архивацию на MeshCoreTel-firmware.
|
||
|
||
Основное назначение SD-карты — позволить ретранслятору сохранять и восстанавливать историю для `/stats`. Архив хранит файлы снимков `.latest` для быстрого восстановления и ежедневные файлы `.log` с датой по UTC для долгосрочной истории. В качестве дополнительной опции эти файлы также можно извлечь и проанализировать на компьютере для более глубокого ручного анализа.
|
||
|
||
На устройствах без PSRAM `/stats` всё ещё может показывать недавние графики, пока активен просмотр статистики, но история меньше и не поддерживает такое же поведение с резервным копированием в архив, как на платах с PSRAM.
|
||
|
||
Полезные команды CLI:
|
||
|
||
- `set web.stats on`
|
||
- `set web.stats off`
|
||
- `get web.stats.status`
|
||
|
||
## Использование на мобильных устройствах
|
||
|
||
Страница адаптивна и должна корректно работать на телефоне.
|
||
|
||
На мобильных устройствах:
|
||
|
||
- кнопки быстрых команд сворачиваются в двухколоночный макет
|
||
- верхняя навигация и группы действий остаются компактными и удобными для касаний
|
||
- строки ввода остаются пригодными для сенсорного взаимодействия
|
||
- карточки трендов перестраиваются в одноколоночные секции, где это необходимо
|
||
|
||
## Типовые задачи
|
||
|
||
### Проверка Wi-Fi и MQTT
|
||
|
||
1. Откройте панель.
|
||
2. Нажмите `wifi.status` в быстрых командах `get`.
|
||
3. Нажмите `mqtt.status` в быстрых командах `get`.
|
||
4. Откройте `/stats` из верхней навигации для просмотра истории статистики.
|
||
|
||
### Изменение имени устройства
|
||
|
||
1. Отредактируйте `Device Name`.
|
||
2. Нажмите `Save`.
|
||
3. Проверьте сгенерированную команду и ответ в окне терминала CLI.
|
||
|
||
### Обновление MQTT Owner или Email
|
||
|
||
1. Перейдите в `MQTT Settings`.
|
||
2. Введите новое значение.
|
||
3. Нажмите `Save`.
|
||
4. Используйте кнопку обновления, если хотите перечитать сохранённое значение с ретранслятора.
|
||
|
||
### Дистанционное обновление прошивки (OTA)
|
||
|
||
1. Откройте панель
|
||
2. Найдите `Firmware Update` и нажмите на поле выбора файла
|
||
3. Выберите файл с прошивкой `.bin`
|
||
4. Нажмите `Upload` и подтвердите действие
|
||
5. Дождитесь загрузки прошивки и перезагрузки устройства
|
||
|
||
### Использование истории статистики
|
||
|
||
1. При необходимости включите статистику командой `set web.stats on`.
|
||
2. Откройте `/stats` из верхней навигации.
|
||
3. Проверьте `Services` на предмет состояния архива и среды выполнения.
|
||
4. Просмотрите `Trends` для недавней истории графиков.
|
||
5. Используйте `Refresh` для перезагрузки страницы статистики.
|
||
|
||
## Устранение неполадок
|
||
|
||
### Браузер предупреждает о сертификате
|
||
|
||
Это ожидаемо. Панель использует самоподписанный сертификат, сгенерированный для локального использования.
|
||
|
||
### Не могу открыть страницу
|
||
|
||
Проверьте:
|
||
|
||
- подключён ли ретранслятор к Wi-Fi
|
||
- IP-адрес из `get wifi.status`
|
||
- `get web.status` сообщает, что панель запущена
|
||
- ваше устройство / сборка прошивки поддерживает веб-панель
|
||
|
||
### Панель открывается, но не удаётся войти
|
||
|
||
Используйте пароль администратора ретранслятора, а не гостевой пароль.
|
||
|
||
### MQTT становится нестабильным при входе
|
||
|
||
Веб-панель загружает настройки посекционно, чтобы снизить нагрузку при запуске, но HTTPS всё ещё потребляет внутреннюю память.
|
||
|
||
Проверьте:
|
||
|
||
- сколько 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` останется отключённой, и запросы истории графиков выполняться не будут.
|
||
|
||
## Связанная документация
|
||
|
||
- [Пользовательские команды CLI](./custom-cli.md)
|
||
- [Загрузка и прошивка релизов](./releases.md)
|
||
- [Локальная сборка с помощью uv](./local-builds.md)
|