Как наглядно увидеть свою сеть Meshtastic с помощью MeshSense

16 авг 2026

Репозиторий давно не обновлялся

Последнее обновление было 10 месяцев назад.

531
72
17
10 месяцев

Если вы когда-нибудь собирали автономную сеть на платах вроде Heltec или TTGO T-Beam с прошивкой Meshtastic, то наверняка сталкивались с типичной проблемой наблюдаемости. Ноды разбросаны по крышам, балконам или рюкзакам, а смотреть на крошечный экранчик 0.96 дюйма или тыкать мобильное приложение ради оценки маршрутов быстро надоедает. Хочется нормальный дашборд с картой, графиками уровня сигнала и трассировкой пакетов.

Проект MeshSense как раз решает эту задачу. Это легковесное приложение с открытым исходным кодом, которое подключается к вашей ноде Meshtastic и рисует живую карту со всеми параметрами сети.

Что умеет приложение

Главная фишка MeshSense — сбор статистики в реальном времени без костылей и сложных интеграций. Вы просто подключаете его к базовой ноде через Bluetooth или обычный Wi-Fi, после чего интерфейс начинает аккумулировать данные со всей округи.

Вот основные сценарии, где дашборд экономит время:

Реклама
  • Карта топологии и узлов. Приложение наглядно показывает, какие ноды сейчас в эфире, где они физически находятся по GPS и как давно выходили на связь.
  • Трассировка маршрутов. Функция traceroute помогает сразу понять, через сколько промежуточных ретрансляторов прошел пакет и какой путь оказался оптимальным.
  • Отчеты о качестве сигнала. Можно отслеживать SNR и уровень приема от каждого узла, чтобы точнее юстировать направленные антенны или искать мертвые зоны в городе.
  • Контроль состояния железа. Выводятся данные о заряде аккумулятора, температуре и телеметрии удаленных устройств.

Запуск на сервере и в headless-режиме

Помимо десктопного варианта на Electron, проект отлично чувствует себя на одноплатниках вроде Raspberry Pi, стоящих рядом с базовой радиостанцией.

Для работы без графической оболочки предусмотрен headless-режим. MeshSense запускает локальный веб-сервер, к которому можно подключиться из любого браузера в локальной сети, закрыв доступ секретным ключом:

export ADDRESS=10.0.1.20  # IP-адрес вашей Meshtastic ноды
export PORT=5920          # Порт веб-интерфейса

ACCESS_KEY=mySecretKey ./meshsense-x86_64.AppImage --headless

Если гоняете приложение на ARM64-плате без монитора, разработчики предлагают запускать AppImage через виртуальный фреймбуфер:

dbus-run-session xvfb-run ./meshsense-arm64.AppImage --headless \
 --disable-gpu --in-process-gpu --disable-software-rasterizer

Для систем на базе Debian или Ubuntu перед стартом AppImage нужно поставить пару пакетов: libfuse2 для работы самого контейнера и fonts-noto-color-emoji, чтобы корректно отображались иконки в интерфейсе.

Что под капотом

Архитектура проекта разделена на три части: фронтенд на Vite, API-бэкенд на Node.js и обвязка Electron.

В коде есть интересная деталь: для прямого взаимодействия с радиомодулями через Bluetooth ребята собрали собственный модуль webbluetooth, завязанный на системный libdbus-1-dev и cmake. Из-за этого при локальной сборке из исходников сначала придется скомпилировать бинарный биндинг:

git clone --recurse-submodules https://github.com/Affirmatech/MeshSense.git
cd MeshSense

# Сборка нативной зависимости для Bluetooth
cd api/webbluetooth
npm i
npm run build:all
cd ../..

# Установка остальных пакетов
./update.mjs

Для разработки запуск разделен на два независимых процесса. Фронтенд стартует на порту 5921, а бэкенд на порту 5920 автоматически проксирует необработанные маршруты в Vite:

# В первом терминале (UI)
cd ui
PORT=5921 npm run dev

# Во втором терминале (API)
cd api
export DEV_UI_URL=http://localhost:5921
PORT=5920 npm run dev

В README авторы честно предупреждают о баге в дев-режиме: при горячей перезагрузке Vite иногда дублируются подписки на события стейта, из-за чего строки в логах могут двоиться. Лечится обычной перезагрузкой страницы в браузере.

Кому проект пригодится

MeshSense — удобная утилита для радиолюбителей, энтузиастов LoRa и тех, кто строит децентрализованные сети связи для походов, дачи или резервного городского обмена сообщениями. Она избавляет от необходимости вручную парсить логи через serial-порт или гадать, почему пакет не долетает до соседнего холма.

Если у вас уже крутится домашний сервер или Raspberry Pi с подключенной LoRa-нодой, имеет смысл закинуть MeshSense в автозагрузку и получить аккуратную карту эфира перед глазами.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.