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

Это форк прошивки [MeshCore-EastMesh](https://github.com/xJARiD/MeshCore-EastMesh), в котором поддержка австралийского сервиса телеметрии EastMesh AU заменена на поддержку сервиса [MeshCoreTel](https://meshcoretel.ru/), а также выполнен ряд других доработок и адаптация.

В остальном прошивка базируется на официальных версиях прошивок Ме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
  - включения и отключения внешнего LNA на Heltec v4.3
- все сетевые процессы (включая обработку MQTT и веб-панели) вынесены на отдельное ядро и не вносят задержек в обработку LoRa-пакетов и функционирование ретранслятора 

### Локальная веб-панель
<img align="right" width=128 src="meshcoretel-docs/_assets/repeater_web_panel_stats_light.webp">
<img align="right" width=128 src="meshcoretel-docs/_assets/repeater_web_panel_app_light.webp">
Дополнительно на поддерживаемых устройствах (с достаточным количеством памяти) ретранслятор может предоставлять локальную панель конфигурации по HTTPS через WiFi.

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

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

Подробнее в документации: [Использование веб-панели ретранслятора](https://vbart.github.io/MeshCoreTel-firmware/web-panel/)

### Веб-API по HTTPS

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

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

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

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

Подробнее в документации: [Использование веб-API ретранслятора](https://vbart.github.io/MeshCoreTel-firmware/api/)

## Релизы

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

- <https://github.com/VBart/MeshCoreTel-firmware/releases>

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

- <https://meshcoretel.ru/ru/flasher>  (под заголовком _Прошивки наблюдателя от VBart_)

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

- <https://vbart.github.io/MeshCoreTel-firmware/>

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

- [Сравнение устройств](https://vbart.github.io/MeshCoreTel-firmware/boards/)
- [Загрузка и прошивка релизов](https://vbart.github.io/MeshCoreTel-firmware/releases/)
- [Использование веб-панели ретранслятора](https://vbart.github.io/MeshCoreTel-firmware/web-panel/)
- [Использование веб-API ретранслятора](https://vbart.github.io/MeshCoreTel-firmware/api/)
- [Пользовательские команды CLI](https://vbart.github.io/MeshCoreTel-firmware/custom-cli/)
