Replace the hardcoded 24-city <select id="mqttIata"> with an <input list="mqttIataList"> + <datalist id="mqttIataList"> pair. The datalist is populated at runtime from the same conf.json endpoint used for radio presets, so the city list stays in sync with the API without requiring firmware updates. The <input> allows the user to type any IATA code directly, including codes not present in the preset list. onfocus="this.select()" selects all text on focus so the user can immediately type to replace the current value without manually clearing it first. Disable the Save button in HTML and enable it only when the field is non-empty. The <input> event handler updates the button state as the user types so Save is disabled immediately when the field is cleared. refreshMqttIataWarning() also updates the button state after a Refresh or Save, ensuring the button is re-enabled when the device value is loaded. The warning banner and inline warning are not updated while the user is typing — the <input> event handler does not call refreshMqttIataWarning(). The warning only reflects the device's saved state, updated on Refresh and after a successful Save. Switch the event listener from "change" to "input" so the Save button responds to every keystroke rather than only on blur.
Прошивка 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)
- светлая и тёмная темы
- возможность отключения командой
set web off
Подробнее в документации: Использование веб-панели ретранслятора
Веб-API по HTTPS
На устройствах с поддержкой веб-панели также возможно использование встроенного API по Wi-Fi.
Возможности:
- авторизация по паролю администратора с получением временного токена
- выполнение любых CLI-команд для управления, настройки и статуса
- получение всей доступной телеметрии
Данный API может быть использован для мониторинга с хранением долгосрочной истории (например с использованием таких инструментов как Prometheus и Grafana), а также автонастройки и управления устройством с помощью скриптов.
Подробнее в документации: Использование веб-API ретранслятора
Релизы
Готовые прошивки публикуются на GitHub Releases:
А также доступны в веб-прошивальщике от MeshCoreTel:
- https://meshcoretel.ru/ru/flasher (под заголовком Прошивки наблюдателя от VBart)
Документация
Основные разделы пользовательского руководства: