No description
  • Python 98%
  • Shell 2%
Find a file
2026-02-25 13:27:51 +01:00
install.sh Dateien nach „/“ hochladen 2026-02-25 13:10:04 +01:00
meshcore-v2.py Update meshcore-v2.py 2026-02-25 13:27:51 +01:00
README.md Dateien nach „/“ hochladen 2026-02-25 13:10:04 +01:00
requirements_app.txt Dateien nach „/“ hochladen 2026-02-25 13:10:04 +01:00

MeshCore WebApp v2 — Kurzbeschreibung

Zweck: Browser-basiertes Dashboard zur Überwachung und Bedienung eines MeshCore-Nodes (Meshtastic-kompatibel) über TCP, Serial oder BLE.


Architektur


MeshCore Node

    │  TCP/Serial/BLE

    ▼

meshcore_app_v2.py

    ├── MeshCoreManager   ← meshcore_py API, Events, Cache

    ├── aiohttp WebServer ← HTTP + WebSocket

    ├── aiosqlite DB      ← Nachrichten, Kontakte, Channels

    └── WebSocket Broadcast → Browser

Start:


python3 meshcore_app_v2.py --tcp 192.168.1.100 5000

python3 meshcore_app_v2.py --serial /dev/ttyUSB0

python3 meshcore_app_v2.py --demo        # ohne Hardware


Features

Verbindung

  • TCP, Serial, BLE — automatischer Reconnect

  • Demo-Modus mit Dummy-Daten zum Testen

Kontakte

  • Liste aller bekannten Nodes mit Online-Status (grüner Punkt < 10 min)

  • Sortierung: Ungelesene zuerst, dann nach letztem Kontakt

  • Typen: Client / Repeater / Room

  • Rechtsklick-Modal mit Key, Pfad, RSSI, SNR, Batterie, GPS, Uptime

  • Repeater: kein Chat, nur Info-Modal

Nachrichten

  • Direktnachrichten pro Kontakt

  • Kanal-Nachrichten (Channel 07)

  • Unread-Counter mit blinkendem Punkt auf Avatar und Tab

  • ACK-Status: ✓✓ bestätigt / ✓→ Broadcast / ✗ fehlgeschlagen

  • Pfad der letzten Nachricht (Hops)

Channels

  • Automatisch von Node geladen (max. 8)

  • Eigener Chat-Bereich pro Channel

Karte

  • Leaflet/OpenStreetMap

  • Nodes mit GPS werden als farbige Punkte dargestellt

  • Eigener Node wird aus SELF_INFO eingetragen

Mein Gerät (Panel unten links)

  • Name, Akku, Uptime, Modell/FW, Frequenz

  • Quellen: SELF_INFO, get_bat(), get_stats_core(), DEVICE_INFO

Log

  • Alle eingehenden/ausgehenden Nachrichten

  • Verbindungsereignisse, Fehler


Technischer Stack

| Komponente | Technologie |

|---|---|

| Backend | Python 3.11+, asyncio |

| MeshCore API | meshcore-py (subscribe, start_auto_message_fetching) |

| Web-Server | aiohttp |

| Datenbank | aiosqlite / SQLite |

| Frontend | Vanilla JS, Leaflet, IBM Plex Mono, Outfit |

| Kommunikation | WebSocket (JSON) |


Bekannte Einschränkungen

  • Channel-Nachrichten haben keinen Absender (MeshCore-Protokoll liefert keinen pubkey im Channel-Payload)

  • Pfad nur bei eingehenden Direktnachrichten verfügbar

  • GPS nur wenn Node es sendet