# MeshDD-Bot ## Ein Meshtastic Bot für das Dresdner Mesh-Netzwerk Mit dem **MeshDD-Bot** haben wir einen eigenentwickelten Bot für unser Meshtastic Mesh-Netzwerk in Dresden in Betrieb genommen. Der Bot verbindet sich per TCP mit einem Meshtastic-Knoten, empfängt und verarbeitet Nachrichten aus dem Mesh und stellt ein Web-Dashboard mit Live-Karte bereit. ### Was kann der Bot? Der MeshDD-Bot reagiert auf Befehle, die direkt im Mesh-Chat gesendet werden. Aktuell stehen folgende Kommandos zur Verfügung: - **/ping** - Prüft, ob der Bot erreichbar ist - **/nodes** - Zeigt die Anzahl der bekannten Nodes im Netzwerk - **/mesh** - Liefert eine detaillierte Übersicht des Mesh-Netzwerks: Online-Nodes, aktive Nodes der letzten 24 Stunden, Hop-Verteilung und die am häufigsten verwendeten Hardware-Modelle - **/weather** - Zeigt das aktuelle Wetter an der Position des anfragenden Nodes (Fallback: Dresden Zentrum) - **/stats** - Statistiken zu Nodes und beantworteten Anfragen - **/info** - Bot-Name, Version und Laufzeit - **/uptime** - Wie lange der Bot bereits läuft - **/help** - Liste aller verfügbaren Kommandos Längere Antworten werden automatisch auf mehrere Nachrichten aufgeteilt und mit einer Nummerierung wie `[1/3]` versehen, damit im Mesh nichts verloren geht. ### Web-Dashboard mit Live-Updates Unter `http://:8080` steht ein Web-Dashboard zur Verfügung, das in Echtzeit via WebSocket aktualisiert wird. Es zeigt: - **Status-Karten** mit der Gesamtzahl der Nodes, aktiven Nodes (24h) und beantworteten Anfragen inkl. Aufschlüsselung nach Kommando - **Nodes-Tabelle** mit Name, Hardware-Modell, SNR, Batteriestatus (farbcodiert), Hop-Anzahl und letzter Aktivität - **Nachrichten-Feed** mit Absender, Kanalname und Zeitstempel - **Hell/Dunkel-Modus** per Knopfdruck umschaltbar ### Live-Karte Über den Karten-Link im Dashboard öffnet sich eine Leaflet-Karte mit OpenStreetMap, auf der alle Nodes mit bekannter Position dargestellt werden. Die Marker sind farblich nach Hop-Anzahl kodiert: - [**Blau**]{style="color:#2196F3;"} - Direkt erreichbar (0 Hops) - [**Grün**]{style="color:#4CAF50;"} - 1 Hop - [**Orange**]{style="color:#FF9800;"} - 2 Hops - [**Rot**]{style="color:#F44336;"} - 3 Hops - [**Lila**]{style="color:#9C27B0;"} - 4 Hops - [**Braun**]{style="color:#795548;"} - 5+ Hops Beim Überfahren eines Markers mit der Maus erscheint ein Tooltip mit detaillierten Node-Informationen: Name, Hardware, Hops, SNR, Batteriestatus, Höhe und letzte Aktivität. ### Technik im Hintergrund Der Bot ist in Python geschrieben und nutzt folgende Technologien: - **meshtastic** - Python-Bibliothek für die TCP-Verbindung zum Meshtastic-Gerät - **aiohttp** - Asynchroner Webserver mit WebSocket-Unterstützung - **SQLite** - Lokale Datenbank für Nodes, Nachrichten und Kommando-Statistiken - **Leaflet.js** - Interaktive Karte mit OpenStreetMap-Tiles - **Bootstrap 5.3** - Responsive Dashboard mit Dark/Light Theme Die gesamte Konfiguration erfolgt über eine zentrale `config.yaml`, die zur Laufzeit überwacht wird - Änderungen werden automatisch ohne Neustart übernommen. ### Ausblick Der MeshDD-Bot wird kontinuierlich weiterentwickelt. Geplant sind unter anderem weitere Befehle, erweiterte Statistiken und zusätzliche Visualisierungen auf der Karte. Der Quellcode ist auf unserem Forgejo-Server verfügbar. *Aktueller Stand: Version 0.2.5*