MeshRadar - веб-интерфейс для управления Meshtastic mesh-сетями 📡
MeshRadar - это современный веб-интерфейс для управления и мониторинга Meshtastic mesh-сетей, работающих поверх LoRa-радиоканала. Проект ориентирован на пользователей, которым требуется централизованный контроль сети, визуализация маршрутов и анализ работы узлов в реальном времени.
В отличие от мобильных приложений Meshtastic, MeshRadar предоставляет браузерный UI, backend на FastAPI и WebSocket-модель, что делает его удобным для серверов, NUC, домашних узлов и диспетчерских систем.
Оглавление
- Назначение MeshRadar в экосистеме Meshtastic 🧭
- Архитектура MeshRadar 🧩
- Общая схема работы
- Backend (FastAPI)
- Frontend (React + TypeScript)
- Способы подключения к Meshtastic 🔌
- USB (Serial)
- TCP / Wi-Fi
- BLE (Bluetooth)
- Основные функции MeshRadar ⚙️
- Список узлов (Node List)
- Чат и подтверждение доставки 💬
- Traceroute Meshtastic 🛤️
- Установка и развёртывание MeshRadar 🚀
- Ручной запуск
- Portable-версия (.exe)
- Docker-развёртывание 🐳
- Пример docker-compose.yml
- Лицензия и ограничения ⚖️
- Для кого предназначен MeshRadar 🎯
- Типовые ошибки при подключении MeshRadar ⚠️
- MeshRadar не видит USB-устройство 🔌
- Нет данных узлов или пустая карта 🗺️
- Сообщения отправляются, но не доходят 💬
- BLE-подключение нестабильно 📶
- Исходный код и документация MeshRadar 📁
- Скачивание portable-версии MeshRadar для Windows 📥
Назначение MeshRadar в экосистеме Meshtastic 🧭
MeshRadar не заменяет прошивку Meshtastic и не участвует в радиомаршрутизации. Его задача - управление, визуализация и анализ уже существующей mesh-сети.
- подключение к Meshtastic-узлам по USB, TCP и BLE;
- централизованный чат и история сообщений;
- карта сети и визуализация узлов;
- traceroute сообщений по mesh-маршрутам.
Архитектура MeshRadar 🧩
Общая схема работы
MeshRadar построен по классической клиент–серверной модели:
- Meshtastic-узел подключается к backend;
- backend обрабатывает пакеты и события;
- frontend получает обновления через WebSocket.
Backend (FastAPI)
- FastAPI - асинхронный REST API;
- meshtastic-python - взаимодействие с узлами;
- aiosqlite - хранение истории сообщений;
- WebSocket - события в реальном времени.
Frontend (React + TypeScript)
- React 18 + TypeScript;
- Zustand - управление состоянием;
- Tailwind CSS - оформление интерфейса;
- Radix UI - доступные UI-компоненты.
Способы подключения к Meshtastic 🔌
USB (Serial)
Прямое подключение Meshtastic-устройства по USB - самый стабильный вариант. Используется для стационарных узлов и серверов.
TCP / Wi-Fi
Подключение по IP позволяет вынести MeshRadar на отдельный сервер, не привязываясь к физическому USB-порту.
BLE (Bluetooth)
BLE-подключение поддерживается, но имеет ограничения по стабильности и версии прошивки Meshtastic. Статус - need testing.
Для постоянной работы рекомендуется использовать USB или TCP. BLE подходит для тестирования и мобильных сценариев.
Основные функции MeshRadar ⚙️
Список узлов (Node List)
- ID узла и имя пользователя;
- уровень батареи;
- SNR и качество связи;
- GPS-позиция.
Чат и подтверждение доставки 💬
MeshRadar поддерживает каналы и личные сообщения, включая ACK / NAK подтверждение доставки, что критично для анализа надёжности mesh-сети.
Traceroute Meshtastic 🛤️
Traceroute позволяет визуально увидеть маршрут сообщения через узлы, оценить количество hop'ов и качество линков.
Установка и развёртывание MeshRadar 🚀
Ручной запуск
Backend запускается на FastAPI (порт 8000), frontend - через Vite (порт 5173).
Portable-версия (.exe)
Подходит для Windows-систем без окружения Python и Node.js.
Docker-развёртывание 🐳
Рекомендуемый способ для серверов и постоянной работы. Поддерживается проброс USB-устройств.
Пример docker-compose.yml
version: '3.8'
services:
meshradar:
image: curlysasha/meshradar:latest
ports:
- "8000:8000"
- "5173:5173"
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
restart: unless-stopped
Лицензия и ограничения ⚖️
MeshRadar распространяется под лицензией GPLv3 + Commons Clause. Использование разрешено для некоммерческих и исследовательских целей, но запрещено предоставление как платного сервиса.
Для кого предназначен MeshRadar 🎯
- радиолюбители и LoRa-энтузиасты;
- полевые mesh-сети без интернета;
- диспетчерские и мониторинговые системы;
- исследование маршрутизации Meshtastic.
Типовые ошибки при подключении MeshRadar ⚠️
Большинство проблем при работе с MeshRadar связано не с самим проектом, а с особенностями подключения Meshtastic-узлов, окружения или сетевой изоляции. Ниже перечислены наиболее распространённые ошибки и их причины.
MeshRadar не видит USB-устройство 🔌
- отсутствуют права на доступ к serial-порту;
- устройство занято другим приложением (Meshtastic CLI, mobile app);
- USB не проброшен в Docker-контейнер.
Для Docker требуется явное указание devices: в docker-compose.yml.
Нет данных узлов или пустая карта 🗺️
- в сети отсутствуют GPS-координаты;
- узлы находятся в Client Mute и не ретранслируют данные;
- история ещё не накоплена (пустая SQLite).
Сообщения отправляются, но не доходят 💬
- недостаточный Hop Count;
- перегруженный эфир (слишком много Router-узлов);
- плохой SNR между ключевыми узлами.
BLE-подключение нестабильно 📶
BLE остаётся самым капризным способом подключения: многое зависит от версии прошивки Meshtastic, адаптера Bluetooth и ОС. Для постоянной работы рекомендуется использовать USB или TCP.
Перед использованием BLE убедитесь, что прошивка Meshtastic обновлена до последней стабильной версии.
Исходный код и документация MeshRadar 📁
MeshRadar является open-source проектом, активно развиваемым сообществом Meshtastic. Полный исходный код, инструкции по сборке, Docker-конфигурации и обновления доступны в официальном репозитории проекта.
🔗 GitHub: MeshRadar - Modern web interface for Meshtastic
Скачивание portable-версии MeshRadar для Windows 📥
Для пользователей Windows доступна portable-версия MeshRadar,
представляющая собой автономный .exe-файл.
Такой вариант не требует установки Python, Node.js или дополнительных зависимостей
и подходит для быстрого запуска на чистой системе.
- не требует установки окружения;
- удобен для тестирования и полевых условий;
- подходит для запуска на Windows без Docker.
Portable-версия собирается из актуального исходного кода проекта и распространяется через официальный раздел релизов.
📦 Скачать MeshRadar Portable (.exe) - официальный релиз v1.1
После запуска MeshRadar.exe backend и frontend стартуют автоматически.
Интерфейс доступен через браузер, обычно по адресу
http://localhost:5173.
При первом запуске portable-версии может потребоваться разрешение брандмауэра Windows на доступ к локальным портам.
```