>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
TypeScript

So überwachen Sie Ihr Meshtastic-Netzwerk visuell mit MeshSense

Wenn Sie jemals ein autonomes Netzwerk mit Boards wie Heltec oder TTGO T-Beam und Meshtastic-Firmware aufgebaut haben, sind Sie wahrscheinlich auf das typische Observability-Problem gestoßen. Knoten sind auf Dächern, Balkonen oder Rucksäcken verteilt, und stundenlanges Starren auf einen winzigen 0,96-Zoll-Bildschirm oder das Durchtippen einer mobilen App, nur um Routen schnell auszuwerten, wird schnell alt. Sie möchten ein richtiges Dashboard mit einer Karte, Signalstärkegraphen und Paketverfolgung.

Das MeshSense-Projekt löst genau dieses Problem. Es ist eine leichtgewichtige Open-Source-Anwendung, die sich mit Ihrem Meshtastic-Knoten verbindet und eine Live-Karte mit allen Netzwerkparametern rendert.

Was die Anwendung kann

Die Hauptfunktion von MeshSense ist die Echtzeit-Statistiksammlung ohne Workarounds und komplexe Integrationen. Sie verbinden sie einfach über Bluetooth oder reguläres Wi-Fi mit dem Basisknoten, und die Oberfläche beginnt, Daten aus der Umgebung zu sammeln.

Hier sind die wichtigsten Szenarien, in denen das Dashboard Zeit spart:

  • Topologie und Knotenkarte. Die Anwendung zeigt klar, welche Knoten gerade aktiv sind, ihre physischen GPS-Standorte und wann sie zuletzt kommuniziert haben.
  • Routenverfolgung. Die Traceroute-Funktion ermöglicht es Ihnen, sofort zu sehen, wie viele Zwischenrelais ein Paket durchlaufen hat und welcher Pfad optimal war.
  • Signalqualitätsberichte. Sie können SNR- und Empfangspegel von jedem Knoten überwachen, um Richtantennen feinabzustimmen oder tote Zonen in der Stadt zu identifizieren.
  • Hardware-Statusüberwachung. Batterieladung, Temperatur und Telemetriedaten von Remote-Geräten werden angezeigt.

Ausführung auf einem Server und im Headless-Modus

Über die Electron-Desktop-Version hinaus läuft das Projekt auch gut auf Einplatinencomputern wie Raspberry Pi, die in der Nähe der Basis-Funkstation positioniert sind.

Ein Headless-Modus ist für den Betrieb ohne grafische Oberfläche verfügbar. MeshSense startet einen lokalen Webserver, der von jedem Browser im lokalen Netzwerk aus erreichbar ist und mit einem geheimen Schlüssel gesichert wird:

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

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

Beim Ausführen der Anwendung auf einem ARM64-Board ohne Monitor empfehlen Entwickler, AppImage über einen virtuellen Framebuffer zu starten:

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

Für Debian- oder Ubuntu-basierte Systeme installieren Sie vor dem Start von AppImage einige Pakete: libfuse2 für den Container selbst und fonts-noto-color-emoji für Symbole, die ordnungsgemäß in der Oberfläche angezeigt werden.

Unter der Haube

Die Projektarchitektur gliedert sich in drei Komponenten: ein Vite-basiertes Frontend, ein Node.js-API-Backend und ein Electron-Wrapper.

Es gibt eine interessante Implementierungsdetail im Code: Für die direkte Interaktion mit Funkmodulen über Bluetooth haben die Entwickler ein benutzerdefiniertes Modul webbluetooth gebaut, das an System-libdbus-1-dev und cmake gebunden ist. Das bedeutet, dass Sie beim lokalen Erstellen aus dem Quellcode die Binärbindung zuerst kompilieren müssen:

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

Für die Entwicklung ist der Start in zwei unabhängige Prozesse aufgeteilt. Das Frontend startet auf Port 59, und das Backend auf Port 59, wobei nicht behandelte Routen automatisch an Vite weitergeleitet werden:

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

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

In der README warnen die Autoren ehrlich vor einem Dev-Modus-Fehler: Wenn Vite Hot-Reload durchführt, duplizieren State-Event-Abonnements manchmal, was dazu führt, dass Protokollzeilen doppelt erscheinen. Dies wird behoben, indem die Seite im Browser einfach neu geladen wird.

Wem das Projekt nützt

MeshSense ist ein praktisches Werkzeug für Funkamateure, LoRa-Enthusiasten und diejenigen, die dezentrale Kommunikationsnetze für Wanderungen, Hütten oder Backup-Stadtmessaging aufbauen. Es eliminiert die Notwendigkeit, Protokolle manuell über einen seriellen Port zu parsen oder zu raten, warum ein Paket den nächsten Hügel nicht erreicht hat.

Wenn Sie bereits einen Heimserver oder Raspberry Pi mit einem verbundenen LoRa-Knoten betreiben, macht es Sinn, MeshSense zu Ihrem Startup hinzuzufügen und einen klaren Blick auf die Luftwellen direkt vor Ihnen zu bekommen.

Ähnliche Projekte