Neue Node-Kachelansicht (Fancy View), direkte HF-Nachbar-Linien auf der Karte mit Farbverlauf nach SNR/Alter, „Informationen anfordern" wie in der Android-App, erweiterte Node-Filter – plus vollständig mit den Original-Protobufs abgeglichene Definitionen.
✨ Hinzugefügt
- Aktivierbar im Legenden-Feld: Linien von der eigenen Position zu allen direkt über HF empfangenen Nodes (0 Hops, kein MQTT)
- Farbverlauf nach SNR (rot → gelb → grün) oder Alter der letzten direkten Verbindung (cyan → violett) – echter Gradient
- Option „Dauerhaft": alle je direkt gehörten Nachbarn; historische 0-Hop-Kontakte aus der Telemetrie-DB (
packet_rx,hop_count=0) - Dunkler Umriss unter jeder Linie für gute Sichtbarkeit auf der Topo-Karte
- Optionale, responsive Kachel-Oberfläche statt Tabelle (Einstellungen → Darstellung); Spaltenanzahl wächst mit der Fensterbreite
- Pro Kachel: ShortName-Badge in Node-Farbe, 🔑/🔓 PKI, voller Name, „vor X min", ⭐-Favorit, 📡 Infrastruktur, ☁ MQTT
- Strom (extern/Batterie + Spannung), Entfernung + Höhe, Hops, RSSI/SNR mit Farbverlauf, Umwelt-Telemetrie, HW-Modell · Rolle · Node-ID
- Eigener Node immer ganz oben; virtualisiertes Pixel-Scrolling auch bei 1000+ Nodes
- Rechtsklick-Untermenü in Liste, Kachel und Karte: fordert gezielt Daten an (
want_response) - Benutzer-Info, Position, Geräte-/Umwelt-/Luftqualität-/Strom-/Host-Metriken, Signalqualität/Mesh-Statistik, PAX-Zähler
- Filter nach zuletzt gesehen (5 Min – 60 Tage), MQTT-Nodes ausblenden, nur Favoriten, SNR-Einfärbung an/aus
- Sortier-Dropdown im Kachelmodus (Name, SNR, Entfernung, Batterie, zuletzt gesehen)
- SNR + RSSI direkt in der Nachrichten-Bubble bei Direktempfang (0 Hops, kein MQTT) – farbig gemäß Signal-Gradient
🐛 Behoben
Position.ground_speed/ground_tracklagen auf Feld 14/15 statt 15/16 → GPS-Geschwindigkeit/Kurs falsch dekodiertRegion-Enum ab Wert 13 verschoben (UA_868/MY_919/SG_923/LORA_24) → korrigiert + vollständige ListeMQTTConfigFeld 11 waruint32statt verschachtelterMapReportSettings→ Map-Report-Genauigkeit repariertTelemetryConfigFelder 3–9 verschoben → Telemetrie-Modul-Konfig jetzt korrektCannedMessageConfigverschoben (send_bellu.a.);ModemPreset8–13 ergänzt
- RSSI/SNR nur bei direktem Empfang (0 Hops, kein MQTT); bei Relay-Nodes zeigt die Spalte die Hop-Anzahl
- ~90 kaputte Umlaute (U+FFFD) in Log-/Dialog-Texten repariert; Logging durchgängig UTF-8
- DM-Freeze behoben: Node-Refresh wird bei Paket-/DM-Verkehr immer gebündelt (700 ms)
- Nachrichten: Scrollbar überdeckt die Chat-Bubbles nicht mehr
- Kachelmodus: leere Einträge im „Farbe setzen"-Menü behoben (fehlende Resource-Keys)
- LED-Tooltip-Zeilenumbruch, Legenden-i18n, Map-Topbar aufgeräumt, breitere Schlüssel-Spalte, breiteres Startfenster
Eigener Stationsname pro verbundenem Node, plus Fix der MQTT-Proxy-Statusleiste.
✨ Hinzugefügt
- Pro verbundenem Node ein eigener Stationsname; ✏-Button neben dem Verbinden-Button
- Auflösung: globaler Name → node-spezifisch → ShortName; Label-Farbe zeigt die Quelle
- Persistenz pro Node in
meshhessen-client.ini
🐛 Behoben
- MQTT-Proxy-Statusleiste zeigte dauerhaft „gestoppt" auch ohne je gestarteten Proxy → nur noch gemeldet, wenn der Proxy lief
Großes Release: Virtual Node TCP-Proxy-Server, T-Deck Karten-Assistent, vollständige Fernverwaltung mit Sicherheits-Reiter und Lazy Loading, sequentielles Config-Laden (Heltec-Fix), Favoriten-Sync, Kanal-Filter-Sync und zahlreiche Bugfixes.
✨ Hinzugefügt
- TCP-Proxy-Server – wandelt den Client in ein Meshtastic-kompatibles TCP-Gerät um; Android/iOS-Apps verbinden sich direkt (Standard-Port 4404)
- Config-Replay: verbindende Apps erhalten sofort MyNodeInfo, alle Kanäle und bekannte Nodes
- Bidirektionale Weiterleitung: Nachrichten aus der App erscheinen im Client und umgekehrt
- Multi-Client: beliebig viele Apps gleichzeitig verbindbar; Status + verbundene IPs im Tools-Tab
- Startet automatisch beim Verbinden mit dem physischen Node (wenn aktiviert); Admin-Befehle optional blockieren
- Message-Queue mit 10 ms Delay schützt den physischen Node vor Überflutung
- Neue INI-Keys:
VirtualNodeEnabled,VirtualNodePort,VirtualNodeBlockAdmin
- Schritt 1 – Willkommen: Erklärung des Workflows; Hinweis: nur Deutschland verfügbar
- Schritt 2 – SD-Karte: Listet Wechseldatenträger mit Größe, freiem Speicher und Dateisystem
- Schritt 3 – Formatierung: Empfiehlt exFAT mit 4096-Byte-Zuordnungseinheiten (Tiles ≈ 100 Bytes → kleine AU spart Speicher); UAC-elevated
Format-Volume; zwei Bestätigungsdialoge - Schritt 4 – Bereich: Nach Bundesland (16 Checkboxen), ganz Deutschland, oder Freestyle (Rechteck auf Mapsui-Karte zeichnen)
- Schritt 5 – Zoom & Kartentyp: Stufen 8/10/12/14/16/17 mit Laufzeitwarnungen; OSM / OSM Dark / OpenTopoMap
- Schritt 6 – Transfer (additiv): SD-Tile vorhanden → skip; lokal vorhanden → kopieren; sonst → vom Tile-Server laden + lokal cachen; Fortschrittsbalken
- SD-Struktur:
{Laufwerk}:\maps\OSM\{z}\{x}\{y}.png– T-Deck-kompatibel; ZIP-Export lokaler Tiles
- Wählt man im „Kanal filtern"-Dropdown einen Kanal, springt der Sende-Kanal automatisch auf denselben Kanal mit; „Alle Kanäle" lässt den Sende-Kanal unverändert
- Lade-Modus-Dialog beim Öffnen: sofort alle Einstellungen laden (~30–60 s) oder seitenweise
- Seitenweise-Modus: Reiter wird erst beim Anklicken geladen; bereits geladene Reiter werden nicht nochmal abgerufen
- „↻ Tab neu laden"-Button in der Buttonleiste – lädt nur den aktuell sichtbaren Reiter neu
- Echtes sequentielles Config-Loading: senden → auf Antwort warten → nächste senden; 8 s Timeout pro Konfiguration
- Verhindert Queue-Overflow auf langsamen Boards (z.B. Heltec) – vorher Abbruch bei 4–5/17
- Fehlende Configs werden am Ende angezeigt statt den Prozess abzubrechen
- Stern-Symbol in der Node-Liste; per Rechtsklick als Favorit markieren/entfernen
- Sync mit dem Gerät via
set_favorite_node/remove_favorite_nodeAdmin-Nachrichten - Favoriten werden in der Liste oben angezeigt; Persistenz in
meshhessen-client.ini
- Vollständiges Admin-Fenster: Reiter Besitzer, Gerät, Position, LoRa, Bluetooth, Netzwerk, Anzeige, Kanäle, Sicherheit, Steuerung
- Sicherheits-Reiter: Public Key (read-only, Base64), Admin-Schlüssel 1–3 (Base64), Flags (Legacy Admin Channel, Managed Mode, Serial Console, Debug Log)
- Favoriten remote verwalten: ComboBox + „Als Favorit setzen" / „Favorit entfernen" – sendet
set_favorite_node/remove_favorite_nodean den Remote-Node - Session-Schlüssel-Handshake, konfigurierbarer Timeout, feste GPS-Koordinaten via
set_position - Ferngesteuerter Neustart, Herunterfahren, Node-DB-Reset
- 📊-Button direkt in der Toolbar – Dashboard ohne Umweg über das Telemetrie-Fenster öffnen
- Unabhängiges Fenster – schließt sich nicht mehr mit dem Telemetrie-Fenster; auf zweitem Monitor platzierbar
- Benannte Dashboards, vier Widget-Typen (Linie, Balken, Gauge, Heatmap), dunkles OxyPlot-Theme
🐛 Behoben
GetChannelRequestist 1-basiert (1 = Kanal 0 usw.): War 0-basiert → Kanal 0 lud nie (Timeout), alle anderen um eins verschoben- Stale-Response-Check entfernt:
ch.Indexist bei Firmware oft 0 (Protobuf-Default) → alle Kanäle außer 0 wurden als „falsche Antwort" dreifach neu angefordert
add_favorite_node = 36war veraltet; Firmware-Feld 36 =set_canned_message_module_messages→ Requests landeten still beim falschen Handleradmin.protoauf aktuelle Feldnummern aktualisiert:set_favorite_node = 39,remove_favorite_node = 40
- Public Key und Private Key wurden als Hex angezeigt; Meshtastic-App nutzt Base64 → beide Admin-Fenster (lokal & remote) zeigen Keys jetzt in Base64
- Emoji-Node-Namen auf Karte (□-Fix): Node-Namen mit Emojis (🔥, 📶 …) wurden als □ angezeigt;
LabelStyle-Font auf „Segoe UI Emoji" gesetzt - Virtual Node – Traceroute-Telemetrie: Traceroute-Requests des VNode-Clients wurden fälschlicherweise als eigene Telemetrie eingespeist; Fix: ausgehende Requests (
WantResponse=true, Portnum 70) werden herausgefiltert
Komplett überarbeitetes Einstellungsfenster mit allen Firmware-Modulen, eigenem Karten-Picker, vollständiger Positions-Präzision und Telemetrie im Karten-Kontextmenü.
✨ Hinzugefügt
- Gerät & LoRa: Region, Modem-Preset (oder manuelle Parameter: Bandbreite, SF, Coding Rate), TX-Power, Hop-Limit, Geräterolle, Rebroadcast-Modus, LED-Heartbeat, Doppeltap-Aktion
- Position: GPS-Modus, GPS-Intervall, Baudrate, RX/TX-GPIO, Smart-Broadcast, Mindestdistanz, Mindestintervall
- Netzwerk: WLAN SSID/PSK, DHCP / statische IP (IP, Gateway, Subnetz, DNS), Ethernet, NTP-Server, Syslog
- Display: Screen-Timeout, Carousel-Intervall, Kompass-Ausrichtung, 12h-Uhr, metrisch/imperial, Display-Modus, OLED-Typ, Flip, Wake-on-Tap
- MQTT: Server, Credentials, TLS, JSON-Modus, Root-Topic, Proxy-Modus
- Telemetrie: Geräte-, Umgebungs-, Luftqualitäts- und Energiemetrik-Intervalle; Messung-Checkboxen; Fahrenheit-Option
- Bluetooth: Aktivieren, Pairing-Modus (RANDOM / FIXED / NO_PIN), fixer PIN
- Security: Public Key anzeigen, Private Key generieren/importieren; Admin-Schlüssel 1–3; Managed Mode
- Weitere Module: Nachbar-Info, Store & Forward, Externe Benachrichtigung, Canned Messages, Range Test, Serial — alle vollständig konfigurierbar
- Alle 8 Kanäle: Rolle, Name, Uplink, Downlink, Positions-Genauigkeit
- Positions-Genauigkeit vollständig: alle Bits 10–19 (~23 km bis ~45 m), 0 = kein Standort, 32 = Exakt — bisher fehlende Zwischenwerte (~11 km, ~5.7 km, ~1.4 km, ~740 m, ~180 m, ~90 m) ergänzt
- Spaltenköpfe und Optionen vollständig i18n (DE + EN); ComboBox-Spalte verbreitert (kein Abschneiden mehr)
- Genauigkeitsstufe für Map-Report-Pakete einstellbar (neues Proto-Feld
map_report_precision) - Beschreibung verweist jetzt auch auf map.meshhessen.de
- „Von Karte wählen" öffnet jetzt ein eigenes
MapPickerWindow— honoriert die aktuellen Karteneinstellungen (offline / online-own / online-osm) - „Eigener Kartenpin" — neuer Button übernimmt die per Rechtsklick gesetzte eigene Position direkt in die Felder für feste Position
LocalFileTileProvidernachServices/ausgelagert (gemeinsame Nutzung durch Hauptkarte und Picker)
- Telemetrie im Rechtsklick-Kontextmenü für alle Nodes auf der Karte (nach Traceroute)
OpenTelemetryForNode()als gemeinsamer Helper — auch vom Nodes-Listenmenü genutzt
Drei Kartenmodi, HTTP/3, persistente Nachrichten-DB, DM-History und Verbindung merken.
✨ Hinzugefügt
- SQLite-Nachrichtenspeicher für Kanal- und DM-Nachrichten — optional, in Einstellungen aktivierbar
- Je Kanal eine eigene DB-Datei (
messages/channel_{index}_{name}.db), DMs inmessages/dm.db - Automatisches Laden der letzten 24 h nach dem Verbinden; ältere per Hochscrollen nachladen
- DM-History: alle gespeicherten Konversationen erscheinen beim Öffnen des DM-Fensters automatisch als Tabs
- Pro-Kanal-Löschung im Kanäle-Tab — neuer Button pro Zeile, öffnet Dialog mit Zeitraum-Auswahl (Alle / 30 / 90 / 365 Tage)
- Bestätigung vor dem Leeren einer DM-Konversation
- Konfigurierbare Aufbewahrungsdauer, wird beim Start automatisch angewendet
- Neue Einstellungen:
EnableMessageDb,MessageDbRetentionDays
- Letzte Verbindungsart (Serial / Bluetooth / WiFi) wird gespeichert und beim Start automatisch vorausgewählt
- Letztes BT-Gerät nach BT-Scan automatisch in der Liste vorausgewählt
- Neue Einstellungen:
LastConnectionType,LastBtDevice
- Online-Modi: Meshhessen-Server (lazy download, dauerhaft lokal, alle Stile, Deutschland) und OpenStreetMap (weltweit, nur Standardkarte, OSM-Policy-konform)
- Neuer Tile-Server:
tile.meshhessenclient.delöst den bisherigen Server ab - HTTP/3 mit automatischem Fallback auf HTTP/2 und HTTP/1.1
- OSM-Tile-Cache mit HTTP-Cache-Headers, ETag/If-None-Match, mindestens 7 Tage TTL
- Chat-Bubble-Design im Kanal-Nachrichten-Fenster — eigene Nachrichten rechts (grün), fremde links, abgerundete Ecken, Light- & Dark-Mode-Farben
- DM-Fenster ebenfalls auf Chat-Bubbles umgestellt — einheitliches Messaging-Erlebnis
- Node-Farbe als Tint: die in den Node-Einstellungen gewählte Farbe wird als halbtransparenter Hintergrundton auf der gesamten Bubble sichtbar
- Relay-Hops werden pro Nachricht angezeigt (
↪ Nmit Tooltip „Relay-Hops") - Datum bei alten Nachrichten: gestern → „Gestern HH:mm", ältere → „TT.MM. HH:mm"
- Absender-Kurzname (ShortName) und Notiz-Badge neben dem Namen
- MQTT-Nachrichten deutlich als
⚡ MQTTgekennzeichnet
🐛 Behoben
- Zombie-Prozess beim Beenden: App schließt sich sauber via
Application.Current.Shutdown() - Tab-Navigation: „Zur Karte"-Button springt korrekt zum Karten-Tab
- Antwort löscht Eingabe nicht mehr: Klick auf „Antworten" im Kontextmenü leerte zuvor das Texteingabefeld — behoben
🐛 Behoben
- LastSeen-Sortierung: Datum wurde als Text verglichen statt als reelles Datum → falsche Reihenfolge
- Batterie-Sortierung: Nodes ohne Batterie-Daten werden jetzt korrekt ans Ende sortiert
Viele Detailverbesserungen: bessere Traceroutes, Copy-Funktion, Hyperlinks, Übersetzungs-Fixes.
✨ Hinzugefügt
- Zeitraum-Filter (3d / 7d / 14d / 30d / 90d / Alle) in der Toolbar
- Historische Traceroutes direkt aus der Datenbank laden
- Deduplizierungs-Checkbox: nur neueste Traceroute pro Node-Paar
- SNR-Popup beim Klick auf Hop-Segment in der Karte
- Richtungspfeile auf Traceroute-Segmenten
- MQTT-Hops mit ⚡-Symbol gekennzeichnet
- Karten-Legende mit Farbe und ✕-Button pro Trace
- Nachrichten kopierbar (Rechtsklick → „Nachricht kopieren")
- Hyperlinks in Nachrichten anklickbar
- Antwort-Funktion: Zitat-Block bei beantworteten Nachrichten verbessert (Wrapping, Sichtbarkeit)
- Wegpunkte (Waypoints) in der Karte komplett überarbeitet
- Kanalauslastungs-Prozentwert korrekt berechnet und angezeigt
🐛 Behoben
- Viele Übersetzungs-Fixes in Deutsch und Englisch
- Mesh-Health-Indikatoren angepasst
- Traceroute: Automatisches Speichern repariert
- Emoji-Darstellung: Emojis werden jetzt farbig angezeigt
- Pfad-Stabilität LED (Grau-LED-Fix für Traceroutes ohne Relay-Hops)
Das größte Update bisher: vollständige Telemetrie-Analyse mit LED-Ampeln und PKI-Entschlüsselung.
✨ Hinzugefügt
- Vollständiges Telemetrie-Analyse-Fenster pro Node: SNR, RSSI, Batterie, Airtime, Kanalauslastung, Routing, Nachbarn, Wetter
- Zeitreihen-Graphen (OxyPlot): SNR-Trend, RSSI-Verlauf, Batterie-Tag/Nacht-Profil
- Nachtabfall-Erkennung: wie viel % Batterie nachts (ohne Solar) verbraucht wird
- Pfad-Stabilität: Hop-Anzahl, Pfadwechsel-Rate, Hop-Kosten
- Nachbar-Analyse: direkte Verbindungen mit SNR-Trend pro Nachbar
- LED-Ampeln im Hauptfenster: 📶 Signal, 👥 Nachbarn, 🛤️ Pfad, 🌐 Mesh-Health, 🌤️ Wetter
- Mesh-Health-Tooltip: Top-5-Nodes nach Kanalauslastung
- Client-seitige PKI-Entschlüsselung: X25519 + AES-256-CTR
- Private Key wird automatisch vom verbundenen Gerät geladen, nur im RAM gehalten
- 🔑-Spalte in der Node-Liste: zeigt ob der Public Key eines Nodes bekannt ist
- Lokale CSV-Datei (
node_keys.csv) für Public-Key-Verwaltung
- Device-Metadata: Firmware-Version und Hardware-Modell im Node-Info-Fenster
- Node-Konfiguration: Einstellungen des verbundenen Geräts direkt anpassen
Traceroute-Visualisierung auf der Karte, Emoji-Reaktionen und automatischer Update-Check.
✨ Hinzugefügt
- Traceroute: Hop-Tabelle (Name, Entfernung, SNR), Karten-Visualisierung mit durchgezogenen/gestrichelten Linien, mehrere Traces gleichzeitig mit eindeutigen Farben
- Traceroutes werden automatisch als JSON in
traceroutes/gespeichert und sind nachladbar - Tap-Back-Reaktionen: auf Nachrichten mit Emoji reagieren (32 Emojis), kompatibel mit Android-App
- Update-Check: beim Start wird automatisch nach neuen Versionen auf GitHub gesucht; klickbarer Hinweis in der Statusleiste
- Automatische Traceroute-Speicherung
Standortverläufe auf der Karte, vollständige DE/EN-Übersetzung, Node-Konfiguration direkt aus dem Client.
✨ Hinzugefügt
- GPS-Track-Logging: Standortverlauf von Nodes auf der Karte anzeigen (Farbe des Nodes, Zeitstempel pro Punkt)
- Mehrsprachigkeit: vollständige Deutsch/Englisch-Unterstützung, umschaltbar in Einstellungen
- Node-Konfiguration: Einstellungen des verbundenen Geräts direkt anpassen
- Meshhessen-Schnellkonfiguration: One-Click für Short Slow + EU868 + Meshhessen-Kanal
- Nodes anpinnen: Nodes in der Liste oben fixieren, unabhängig von Sortierung
- BT-PIN ändern: Bluetooth-PIN direkt aus dem Client setzen
- Auto-Reconnect: nach Einstellungsänderungen die einen Geräte-Neustart erfordern
SOS-Notruf, eigener Tile-Server wegen OSM-Policy, PSK-Export-Funktion.
✨ Hinzugefügt
- Alert Bell / SOS: Notruf senden und empfangen mit 🔔-Emoji, visueller Benachrichtigung (rote Umrandung) und „Zur Karte"-Button
- Eigener Tile-Server: Umstellung auf eigenen Server wegen OSM-Tile-Policy (kein Bulk-Download auf offiziellem OSM-Server erlaubt)
- PSK-Export: Channel-PSK aus der App exportieren
- Channel-CSV: CHANNELS.csv mit bekannten Meshtastic-Kanälen
- Copyright-Hinweise auf der Karte, dynamisch je nach Quelle
🐛 Behoben
- Anzeige-Bug in Dark Mode Tabs
- Kontextmenüs repariert
- Text-Wrapping in Nachrichten-Fenster
Der Client kann jetzt auch über TCP/WiFi und Bluetooth BLE verbinden — nicht mehr nur Serial/USB.
✨ Hinzugefügt
- TCP/WiFi-Verbindung: Hostname/IP + Port konfigurierbar
- Bluetooth BLE: direkte GATT-Verbindung ohne Framing, BLE-Gerät-Scan und Auswahl
- Verbindungstyp-Auswahl als Radio-Buttons in der UI
MQTT-Nachrichten besser anzeigen, Nodes einfärben und beschriften, Verbindungsrobustheit verbessert.
✨ Hinzugefügt
- Bessere MQTT-Anzeige: MQTT-Nachrichten optisch gekennzeichnet
- Node-Farben: Nodes individuell einfärben (Karte + Chat-Liste)
- Node-Notizen: Freitext-Notizen pro Node
- Node-Sortierung verbessert (Name, SNR, RSSI, Distanz)
- Schnellfilter für die Node-Liste
- Kurzname (ShortName) in der Node-Liste
- RSSI-Spalte in der Node-Liste
- T-Deck: verlangsamtes Channel-Loading als Workaround für langsames Gerät
- Auto-Recovery wenn Node aus dem Protobuf-Modus fällt
🐛 Behoben
- Disconnect/Reconnect: nach Reconnect wurden keine Daten mehr geladen
- Tile-Download: Fortschrittsanzeige und Fehlermeldungen verständlicher
- Sortierung nach Distanz, SNR und RSSI optimiert
- Zoom-Button auf der Karte repariert
- Hop-Count-Anzeige: war fälschlicherweise −1
Erster öffentlicher Beta-Release: DMs, Message-Logging, Offline-Karte, Telemetrie-Grundlage und Dark Mode.
✨ Hinzugefügt
- Broadcast & Direktnachrichten, Multi-Channel
- Separates DM-Fenster mit Tab-System für mehrere Konversationen
- Benachrichtigungen bei neuen DMs (Fenster vordergrund, Taskbar-Blinken, System-Sound)
- Orange Hervorhebung für ungelesene DM-Tabs
- „💬 DM senden" per Rechtsklick auf Node
- Automatisches Logging aller Nachrichten in
logs/
- Offline-OSM-Karte mit Node-Pins (Mapsui)
- GPS-Tracks und Wegpunkte auf der Karte
- Node-Übersicht mit SNR, RSSI, Batterie, Entfernung, Hop-Anzahl
- Eigener Standort per Rechtsklick auf Karte setzbar
- Tile-Downloader für Offline-Nutzung
- USB/Serial-Verbindung mit robustem Protokoll-Framing
- Dark Mode (ModernWPF Fluent Design)
- Debug-Tab mit Live-Log
- Persistente Einstellungen (INI-Datei)