The error_rate graph showed all zeros after ~65535 receive errors had accumulated. Root cause was a two-part bug: 1. In MyMesh::updateStatsHistory(), recv_errors was clamped to 0xFFFF via min<uint32_t>(..., 0xFFFF). Once the counter reached 65535, every subsequent sample stored the same constant value, making the per-interval delta always zero and therefore error_rate always zero. 2. HistorySample::recv_errors was declared as uint16_t while the underlying counter (n_recv_errors) is uint32_t. parseSummaryLine() also truncated the restored value back to uint16_t. Fix: - Remove the clamp in MyMesh::updateStatsHistory(); assign getPacketsRecvErrors() (uint32_t) directly. - Change HistorySample::recv_errors from uint16_t to uint32_t, moving it next to the other uint32_t fields. - Update both parseSummaryLine() code paths to cast recv_errors to uint32_t instead of uint16_t. The archive format is unchanged: recv_errors is written as %u and read back into an unsigned local, which is correct for a 32-bit value on ESP32.
Прошивка MeshCore-репитеров с WEB и MQTT
Это форк прошивки MeshCore-EastMesh, в котором поддержка австралийского сервиса телеметрии EastMesh AU заменена на поддержку сервиса MeshCoreTel, а также выполнен ряд других доработок и адаптация.
В остальном прошивка базируется на официальных версиях прошивок МеshCore. Благодарность Scott Powell / Ripple Radios и всем контрибьюторам MeshCore за оригинальную прошивку и основу проекта, а также Jared Dohrman за доработки, выполненные в рамках EastMesh.
Ключевые особенности прошивки
Дополнения ретранслятора
- поддержка Wi-Fi в клиентском режиме
- автонастройка сети через DHCP
- синхронизация времени по NTP
- поддержка MQTT-брокеров:
meshcoretelletsmesh-euletsmesh-us
- транспорт plain TCP и WSS по пути
/mqtt - JWT-аутентификация с использованием идентификации устройства для WSS
- CLI-команды для:
- учётных данных WiFi
- энергосбережения WiFi
- отчётов о заряде батареи на поддерживаемых платформах
- включения конечной точки MQTT
- отправки пакетов MQTT и публикации сырых данных
- публичного ключа владельца и адреса электронной почты
- включения локальной веб-панели
- управления вентилятором на TBeam 1W
- все сетевые процессы (включая обработку MQTT и веб-панели) вынесены на отдельное ядро и не вносят задержек в обработку LoRa-пакетов и функционирование ретранслятора
Локальная веб-панель
Дополнительно на поддерживаемых устройствах (с достаточным количеством памяти) ретранслятор может предоставлять локальную панель конфигурации по HTTPS через WiFi.
Возможности:
- доступ по паролю, используя существующий административный пароль ретранслятора
- выполнение CLI-команд
- изменение основных настроек репитера и MQTT через веб-интерфейс
- сгруппированные быстрые действия
- вся ключевая статистика по репитеру
- список последних услышанных соседий с показателями качества сигнала
- хранение истории показателей за последние несколько часов (только на устройствах с PSRAM)
- безопасное обновление прошивки по HTTPS
- подгружаемые через API радио-пресеты и IATA-коды
- светлая и тёмная темы
- возможность отключения командой
set web off - адаптация для мобильных устройств
Подробнее в документации: Использование веб-панели ретранслятора
Веб-API по HTTPS
На устройствах с поддержкой веб-панели также возможно использование встроенного API по Wi-Fi.
Возможности:
- авторизация по паролю администратора с получением временного токена
- выполнение любых CLI-команд для управления, настройки и статуса
- получение всей доступной телеметрии
Данный API может быть использован для мониторинга с хранением долгосрочной истории (например с использованием таких инструментов как Prometheus и Grafana), а также автонастройки и управления устройством с помощью скриптов.
Подробнее в документации: Использование веб-API ретранслятора
Релизы
Готовые прошивки публикуются на GitHub Releases:
А также доступны в веб-прошивальщике от MeshCoreTel:
- https://meshcoretel.ru/ru/flasher (под заголовком Прошивки наблюдателя от VBart)
Документация
Основные разделы пользовательского руководства: