Changelog

Meshhessen Client – Versionshistorie / Version History

← Zurück / Back GitHub Releases
v1.5.13 2026-06-11 Node-Kachelansicht, Nachbar-Linien & Protobuf-Abgleich

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

🗺️ Direkte Nachbar-Linien auf der Karte
  • 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
🔧 Node-Kachelansicht (Fancy View)
  • 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
📥 Informationen anfordern (wie Android-App)
  • 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
🔧 Erweiterte Node-Listen-Filter
  • 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)
💬 Signalwerte in Nachrichten
  • SNR + RSSI direkt in der Nachrichten-Bubble bei Direktempfang (0 Hops, kein MQTT) – farbig gemäß Signal-Gradient

🐛 Behoben

🧩 Protobuf-Definitionen mit Original abgeglichen
  • Position.ground_speed/ground_track lagen auf Feld 14/15 statt 15/16 → GPS-Geschwindigkeit/Kurs falsch dekodiert
  • Region-Enum ab Wert 13 verschoben (UA_868/MY_919/SG_923/LORA_24) → korrigiert + vollständige Liste
  • MQTTConfig Feld 11 war uint32 statt verschachtelter MapReportSettings → Map-Report-Genauigkeit repariert
  • TelemetryConfig Felder 3–9 verschoben → Telemetrie-Modul-Konfig jetzt korrekt
  • CannedMessageConfig verschoben (send_bell u.a.); ModemPreset 8–13 ergänzt
🔡 Sonstige Fixes
  • 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
v1.5.12 2026-06-09 Per-Node-Stationsname & MQTT-Statusfix

Eigener Stationsname pro verbundenem Node, plus Fix der MQTT-Proxy-Statusleiste.

✨ Hinzugefügt

🏷️ Per-Node-Stationsname
  • 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
v1.5.11 2026-05-24 Virtual Node, T-Deck Assistent, Fernverwaltung & Bugfixes

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

🖧 Virtual Node (Tools-Tab)
  • 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
🔧 T-Deck Karten-Assistent (neuer Tools-Tab)
  • 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
💬 Kanal-Filter-Sync
  • 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
🔧 Remote Admin – Lazy Loading & Tab-Reload
  • 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
🔧 Lokaler Admin – Sequentielles Laden
  • 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
Favoriten
  • Stern-Symbol in der Node-Liste; per Rechtsklick als Favorit markieren/entfernen
  • Sync mit dem Gerät via set_favorite_node / remove_favorite_node Admin-Nachrichten
  • Favoriten werden in der Liste oben angezeigt; Persistenz in meshhessen-client.ini
Fernverwaltung (Remote Admin)
  • 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_node an den Remote-Node
  • Session-Schlüssel-Handshake, konfigurierbarer Timeout, feste GPS-Koordinaten via set_position
  • Ferngesteuerter Neustart, Herunterfahren, Node-DB-Reset
Telemetrie-Dashboard
  • 📊-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

Remote Admin – Channel-Ladefehler
  • GetChannelRequest ist 1-basiert (1 = Kanal 0 usw.): War 0-basiert → Kanal 0 lud nie (Timeout), alle anderen um eins verschoben
  • Stale-Response-Check entfernt: ch.Index ist bei Firmware oft 0 (Protobuf-Default) → alle Kanäle außer 0 wurden als „falsche Antwort" dreifach neu angefordert
Remote Admin – Favoriten (veraltete Proto-Feldnummern)
  • add_favorite_node = 36 war veraltet; Firmware-Feld 36 = set_canned_message_module_messages → Requests landeten still beim falschen Handler
  • admin.proto auf aktuelle Feldnummern aktualisiert: set_favorite_node = 39, remove_favorite_node = 40
Admin – Key-Anzeige (Hex → Base64)
  • Public Key und Private Key wurden als Hex angezeigt; Meshtastic-App nutzt Base64 → beide Admin-Fenster (lokal & remote) zeigen Keys jetzt in Base64
Sonstige Bugfixes
  • 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
v1.5.9 2026-04-21 Vollständige Node-Konfiguration, Kartenauswahl & Map-Report

Komplett überarbeitetes Einstellungsfenster mit allen Firmware-Modulen, eigenem Karten-Picker, vollständiger Positions-Präzision und Telemetrie im Karten-Kontextmenü.

✨ Hinzugefügt

Node-Konfiguration – alle Module
  • 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
Kanalverwaltung
  • 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)
Map Reporting
  • Genauigkeitsstufe für Map-Report-Pakete einstellbar (neues Proto-Feld map_report_precision)
  • Beschreibung verweist jetzt auch auf map.meshhessen.de
Positions-Auswahl
  • „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
  • LocalFileTileProvider nach Services/ ausgelagert (gemeinsame Nutzung durch Hauptkarte und Picker)
Karte
  • Telemetrie im Rechtsklick-Kontextmenü für alle Nodes auf der Karte (nach Traceroute)
  • OpenTelemetryForNode() als gemeinsamer Helper — auch vom Nodes-Listenmenü genutzt

v1.5.8 2026-04-13 Online-Karten, persistente DB & mehr

Drei Kartenmodi, HTTP/3, persistente Nachrichten-DB, DM-History und Verbindung merken.

✨ Hinzugefügt

Persistente Nachrichten-Datenbank
  • SQLite-Nachrichtenspeicher für Kanal- und DM-Nachrichten — optional, in Einstellungen aktivierbar
  • Je Kanal eine eigene DB-Datei (messages/channel_{index}_{name}.db), DMs in messages/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
Verbindung merken
  • 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
Karten-Erweiterungen
  • Online-Modi: Meshhessen-Server (lazy download, dauerhaft lokal, alle Stile, Deutschland) und OpenStreetMap (weltweit, nur Standardkarte, OSM-Policy-konform)
  • Neuer Tile-Server: tile.meshhessenclient.de lö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-Bubbles & Messaging
  • 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 (↪ N mit 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 ⚡ MQTT gekennzeichnet

🐛 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

v1.5.7 Sortierungs-Fixes

🐛 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

v1.5.6 Traceroute-Erweiterungen, QoL & Übersetzungen

Viele Detailverbesserungen: bessere Traceroutes, Copy-Funktion, Hyperlinks, Übersetzungs-Fixes.

✨ Hinzugefügt

Traceroute
  • 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 & UI
  • 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)

v1.5.5 Telemetrie-Analyse & PKI-Entschlüsselung

Das größte Update bisher: vollständige Telemetrie-Analyse mit LED-Ampeln und PKI-Entschlüsselung.

✨ Hinzugefügt

Telemetrie-Analyse
  • 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
PKI-Entschlüsselung
  • 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
Node-Verwaltung
  • Device-Metadata: Firmware-Version und Hardware-Modell im Node-Info-Fenster
  • Node-Konfiguration: Einstellungen des verbundenen Geräts direkt anpassen

v1.5.4 Traceroute, Tap-Back & Update-Check

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

v1.5.3 GPS-Tracks, Mehrsprachigkeit & Node-Konfiguration

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

v1.5.2 Alert Bell, eigener Tile-Server & PSK-Export

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

v1.5 WiFi & Bluetooth

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

v1.4 – v1.4.2 MQTT, Node-Farben & Verbindungs-Fixes

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

v1.0-Beta 2026-02-08 Erstveröffentlichung

Erster öffentlicher Beta-Release: DMs, Message-Logging, Offline-Karte, Telemetrie-Grundlage und Dark Mode.

✨ Hinzugefügt

Nachrichten
  • 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/
Karte & Nodes
  • 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
System
  • USB/Serial-Verbindung mit robustem Protokoll-Framing
  • Dark Mode (ModernWPF Fluent Design)
  • Debug-Tab mit Live-Log
  • Persistente Einstellungen (INI-Datei)
v1.5.13 2026-06-11 Node tile view, neighbor lines & protobuf alignment

New node tile view (Fancy View), direct RF neighbor lines on the map with gradient by SNR/age, "Request information" like the Android app, advanced node filters – plus protobuf definitions fully aligned with the official sources.

✨ Added

🗺️ Direct neighbor lines on the map
  • Toggle in the legend box: lines from your own position to every node received directly over RF (0 hops, no MQTT)
  • Color gradient by SNR (red → yellow → green) or age of the last direct contact (cyan → purple)
  • "Permanent" option: every neighbor ever heard directly; historical 0-hop contacts from the telemetry DB (packet_rx, hop_count=0)
  • Dark outline beneath each line for good visibility on the topo map
🔧 Node tile view (Fancy View)
  • Optional responsive tile surface instead of a table (Settings → Appearance); column count grows with window width
  • Per tile: ShortName badge in node color, 🔑/🔓 PKI, full name, "X min ago", ⭐ favorite, 📡 infrastructure, ☁ MQTT
  • Power (external/battery + voltage), distance + altitude, hops, RSSI/SNR gradient, environment telemetry, HW model · role · node ID
  • Own node always on top; virtualized pixel scrolling even with 1000+ nodes
📥 Request information (like the Android app)
  • Right-click submenu in list, tile and map: requests data on demand (want_response)
  • User info, position, device/environment/air-quality/power/host metrics, signal quality/mesh stats, PAX counter
🔧 Advanced node-list filters
  • Filter by last seen (5 min – 60 days), hide MQTT nodes, favorites only, SNR coloring on/off
  • Sort dropdown in tile mode (name, SNR, distance, battery, last seen)
💬 Signal values in messages
  • SNR + RSSI right in the message bubble for direct reception (0 hops, no MQTT) – colored by the signal gradient

🐛 Fixed

🧩 Protobuf definitions aligned with originals
  • Position.ground_speed/ground_track were on field 14/15 instead of 15/16 → GPS speed/heading misdecoded
  • Region enum shifted from value 13 (UA_868/MY_919/SG_923/LORA_24) → corrected + full list
  • MQTTConfig field 11 was uint32 instead of nested MapReportSettings → map-report precision fixed
  • TelemetryConfig fields 3–9 shifted → telemetry module config now correct
  • CannedMessageConfig shifted (send_bell etc.); ModemPreset 8–13 added
🔡 Other fixes
  • RSSI/SNR only for direct reception (0 hops, no MQTT); relayed nodes show the hop count instead
  • ~90 corrupted umlauts (U+FFFD) in log/dialog text repaired; logging consistently UTF-8
  • DM freeze fixed: node refresh is now always coalesced (700 ms) under packet/DM traffic
  • Messages: scrollbar no longer overlaps the chat bubbles
  • Tile mode: fixed empty entries in the "Set color" menu (missing resource keys)
  • LED tooltip line break, legend i18n, tidied map top bar, wider key column, wider startup window
v1.5.12 2026-06-09 Per-node station name & MQTT status fix

A dedicated station name per connected node, plus a fix for the MQTT proxy status bar.

✨ Added

🏷️ Per-node station name
  • A dedicated station name per connected node; ✏ button next to the Connect button
  • Resolution: global name → node-specific → ShortName; label color shows the source
  • Persisted per node in meshhessen-client.ini

🐛 Fixed

  • MQTT proxy status bar showed "stopped" permanently even when the proxy never started → only reported when it actually ran
v1.5.11 2026-05-24 Virtual Node, T-Deck Wizard, Remote Admin & Bug Fixes

Major release: Virtual Node TCP proxy server, T-Deck map wizard, full remote admin with security tab and lazy loading, sequential config loading (Heltec fix), favorites sync, channel filter sync and numerous bug fixes.

✨ Added

🖧 Virtual Node (Tools tab)
  • TCP proxy server – turns the client into a Meshtastic-compatible TCP device; Android/iOS apps connect directly (default port 4404)
  • Config-replay: connecting apps receive MyNodeInfo, all channels and known nodes immediately
  • Bidirectional relay: messages from the app appear in the client and vice versa
  • Multi-client: any number of apps simultaneously; status + connected IPs shown in Tools tab
  • Auto-starts when connected to the physical node (if enabled); optionally block admin commands
  • Message queue with 10 ms delay protects the physical node from flooding
  • New INI keys: VirtualNodeEnabled, VirtualNodePort, VirtualNodeBlockAdmin
🔧 T-Deck Map Assistant (new Tools tab)
  • Step 1 – Welcome: Workflow explanation; note: Germany only
  • Step 2 – SD card: Lists removable drives with size, free space and filesystem
  • Step 3 – Formatting: Recommends exFAT with 4096-byte allocation units; UAC-elevated Format-Volume; two confirmation dialogs
  • Step 4 – Region: By federal state (16 checkboxes), all of Germany, or Freestyle (draw rectangle on Mapsui map)
  • Step 5 – Zoom & map type: Levels 8/10/12/14/16/17 with runtime warnings; OSM / OSM Dark / OpenTopoMap
  • Step 6 – Transfer (additive): SD tile present → skip; local tile present → copy; otherwise → download + cache locally; progress bar
  • SD structure: {Drive}:\maps\OSM\{z}\{x}\{y}.png – T-Deck compatible; ZIP export of local tiles
💬 Channel Filter Sync
  • Selecting a channel in the "Filter channel" dropdown automatically switches the send channel to the same channel; "All channels" leaves the send channel unchanged
🔧 Remote Admin – Lazy Loading & Tab Reload
  • Load mode dialog on open: load all settings immediately (~30–60 s) or page-by-page
  • Page-by-page mode: tab is only loaded when clicked; already-loaded tabs are not re-fetched
  • "↻ Reload Tab" button in the button bar – reloads only the currently visible tab
🔧 Local Admin – Sequential Loading
  • True sequential config loading: send → wait for response → send next; 8 s timeout per config
  • Prevents queue overflow on slow boards (e.g. Heltec) – previously aborted at 4–5/17
  • Missing configs are reported at the end instead of aborting the process
Favorites
  • Star icon in the node list; right-click to mark/unmark as favorite
  • Synced with device via set_favorite_node / remove_favorite_node admin messages
  • Favorites shown at the top of the node list; persisted in meshhessen-client.ini
Remote Administration
  • Full admin window: tabs for Owner, Device, Position, LoRa, Bluetooth, Network, Display, Channels, Security, Control
  • Security tab: public key (read-only, Base64), admin keys 1–3 (Base64), flags (Legacy Admin Channel, Managed Mode, Serial Console, Debug Log)
  • Remote favorites management: ComboBox + "Set as Favorite" / "Remove Favorite" – sends set_favorite_node / remove_favorite_node to the remote node
  • Session-key handshake, configurable timeout, fixed GPS coordinates via set_position
  • Remote reboot, shutdown, node DB reset
Telemetry Dashboard
  • 📊 button directly in the toolbar – open the dashboard without going through the telemetry window
  • Independent window – no longer closes with the telemetry window; can be placed on a second monitor
  • Named dashboards, four widget types (line, bar, gauge, heatmap), dark OxyPlot theme

🐛 Fixed

Remote Admin – Channel Loading
  • GetChannelRequest is 1-based (1 = channel 0 etc.): Was 0-based → channel 0 never loaded (timeout), all others shifted by one
  • Stale-response check removed: ch.Index is often 0 from firmware (Protobuf default) → all channels except 0 were classified as "wrong response" and retried three times
Remote Admin – Favorites (outdated proto field numbers)
  • add_favorite_node = 36 was outdated; firmware field 36 = set_canned_message_module_messages → requests were silently misrouted
  • admin.proto updated to current field numbers: set_favorite_node = 39, remove_favorite_node = 40
Admin – Key Display (hex → Base64)
  • Public key and private key were displayed as hex; Meshtastic app uses Base64 → both admin windows (local & remote) now show keys in Base64
Other
  • Emoji node names on map (□ fix): node names containing emojis (🔥, 📶 …) rendered as □; LabelStyle font set to "Segoe UI Emoji"
  • Virtual Node – traceroute telemetry: traceroute requests from VNode clients were incorrectly injected into local telemetry; outgoing requests (WantResponse=true, portnum 70) are now filtered out
v1.5.9 2026-04-21 Full Node Configuration, Map Picker & Map Report

Fully redesigned settings window covering all firmware modules, dedicated map picker window, complete position precision levels and telemetry in the map context menu.

✨ Added

Node Configuration – all modules
  • Device & LoRa: region, modem preset (or manual: bandwidth, SF, coding rate), TX power, hop limit, device role, rebroadcast mode, LED heartbeat, double-tap action
  • Position: GPS mode, GPS interval, baud rate, RX/TX GPIO, smart broadcast, min distance, min interval
  • Network: Wi-Fi SSID/PSK, DHCP / static IP (IP, gateway, subnet, DNS), Ethernet, NTP server, syslog
  • Display: screen timeout, carousel interval, compass orientation, 12h clock, metric/imperial, display mode, OLED type, flip, wake-on-tap
  • MQTT: server, credentials, TLS, JSON mode, root topic, proxy mode
  • Telemetry: device, environment, air quality and power metric intervals; measurement checkboxes; Fahrenheit option
  • Bluetooth: enable, pairing mode (RANDOM / FIXED / NO_PIN), fixed PIN
  • Security: display public key, generate/import private key; admin keys 1–3; managed mode
  • Additional modules: neighbor info, store & forward, external notification, canned messages, range test, serial — all fully configurable
Channel Management
  • All 8 channels: role, name, uplink, downlink, position precision
  • Complete position precision: all bits 10–19 (~23 km to ~45 m), 0 = no location, 32 = exact — previously missing intermediate steps (~11 km, ~5.7 km, ~1.4 km, ~740 m, ~180 m, ~90 m) added
  • Column headers and dropdown options fully i18n (DE + EN); combobox column widened (no clipping)
Map Reporting
  • Position precision for map report packets now configurable (new proto field map_report_precision)
  • Description now also references map.meshhessen.de
Position Picker
  • "Pick from Map" now opens a dedicated MapPickerWindow — honours current map settings (offline / online-own / online-osm)
  • "Own Map Pin" — new button copies the position set via right-click directly into the fixed position fields
  • LocalFileTileProvider extracted to Services/ (shared by main map and picker)
Map
  • Telemetry in the right-click context menu for all nodes on the map (after Traceroute)
  • OpenTelemetryForNode() extracted as a shared helper — also used by the node list menu

v1.5.8 2026-04-13 Online Maps, Persistent DB & More

Three map modes, HTTP/3, persistent message DB, DM history and remember connection.

✨ Added

Persistent Message Database
  • SQLite message store for channel and DM messages — optional, enable in settings
  • One DB file per channel (messages/channel_{index}_{name}.db), DMs in messages/dm.db
  • Auto-load last 24 h on connect; scroll up to lazy-load older messages
  • DM history: all saved conversations auto-restored as tabs when DM window opens
  • Per-channel deletion in Channels tab — button per row, opens dialog with time range (All / 30 / 90 / 365 days)
  • Confirmation before clearing a DM conversation
  • Configurable retention period, applied on startup
  • New settings: EnableMessageDb, MessageDbRetentionDays
Remember Connection
  • Last connection type (Serial / Bluetooth / WiFi) saved and pre-selected on next launch
  • Last BT device auto-selected after BT scan
  • New settings: LastConnectionType, LastBtDevice
Map Enhancements
  • Online modes: Meshhessen server (lazy download, Germany) and OpenStreetMap (worldwide, policy-compliant)
  • New tile server: tile.meshhessenclient.de replaces the previous server
  • HTTP/3 with automatic fallback to HTTP/2 and HTTP/1.1
  • OSM tile cache with HTTP cache headers, ETag/If-None-Match, min. 7-day TTL
Chat Bubbles & Messaging
  • Chat bubble design in the channel messages view — own messages on the right (green), others on the left, rounded corners, Light & Dark mode colors
  • DM window redesigned as chat bubbles too — consistent messaging experience throughout
  • Node color tint: the color assigned to a node is shown as a semi-transparent background tint across the entire bubble
  • Relay hops displayed per message (↪ N with tooltip "Relay-Hops")
  • Smart date for old messages: yesterday → "Gestern HH:mm", older → "DD.MM. HH:mm"
  • Sender short name and note badge shown next to the name
  • MQTT messages clearly labeled as ⚡ MQTT

🐛 Fixed

  • Zombie process on exit: app shuts down cleanly via Application.Current.Shutdown()
  • Tab navigation: "Go to map" button now correctly activates the Map tab
  • Reply no longer clears input: clicking "Reply" in the context menu previously erased any text already typed — fixed

v1.5.7 Sorting Fixes

🐛 Fixed

  • LastSeen sorting: dates were compared as strings instead of real date values → wrong order
  • Battery sorting: nodes without battery data now correctly sorted to the end

v1.5.6 Traceroute Enhancements, QoL & Translations

Many detail improvements: better traceroutes, copy function, hyperlinks, translation fixes.

✨ Added

Traceroute
  • Time range filter toolbar (3d / 7d / 14d / 30d / 90d / All)
  • Load historical traceroutes directly from the database
  • Deduplication checkbox: show only the latest traceroute per node pair
  • SNR popup on click of a hop segment on the map
  • Direction arrows on traceroute segments
  • MQTT hops marked with ⚡ symbol
  • Map legend with color and individual ✕ remove button per trace
Messaging & UI
  • Copyable messages (right-click → "Copy Message")
  • Clickable hyperlinks in messages
  • Reply quote block: improved wrapping and visibility
  • Waypoints on map completely overhauled
  • Channel utilization percentage correctly calculated

🐛 Fixed

  • Many translation fixes (German and English)
  • Mesh health indicators adjusted
  • Traceroute auto-save repaired
  • Emoji display: emojis now rendered in color
  • Path stability LED (grey LED fix for traceroutes without relay hops)

v1.5.5 Telemetry Analysis & PKI Decryption

The biggest update yet: full telemetry analysis with LED indicators and PKI decryption.

✨ Added

Telemetry Analysis
  • Full telemetry analysis window per node: SNR, RSSI, battery, airtime, channel utilization, routing, neighbors, weather
  • Time-series graphs (OxyPlot): SNR trend, RSSI history, battery day/night profile
  • Night-drop detection: how much battery % the node uses overnight (no solar)
  • Path stability: hop count, path-change rate, hop cost
  • Neighbor analysis: direct links with SNR trend per neighbor
  • LED indicators in main window: 📶 Signal, 👥 Neighbors, 🛤️ Path, 🌐 Mesh Health, 🌤️ Weather
  • Mesh health tooltip: top-5 nodes by channel utilization
PKI Decryption
  • Client-side PKI decryption: X25519 + AES-256-CTR
  • Private key loaded automatically from connected device, held in RAM only
  • 🔑 column in node list: shows whether a node's public key is known
  • Local CSV file (node_keys.csv) for public key management

v1.5.4 Traceroute, Tap-Back & Update Check

Traceroute map visualization, emoji reactions and automatic update check.

✨ Added

  • Traceroute: hop table (name, distance, SNR), map visualization with solid/dashed lines, multiple simultaneous traces with unique colors
  • Traceroutes auto-saved as JSON in traceroutes/, reloadable later
  • Tap-back reactions: react to messages with emoji (32 emojis), compatible with Android app
  • Update check: automatically checks GitHub for new versions on startup; clickable hint in status bar

v1.5.3 GPS Tracks, Multi-Language & Node Config

Location history on the map, full DE/EN translation, node configuration from the client.

✨ Added

  • GPS track logging: display node location history on the map (node color, timestamp per point)
  • Multi-language: full German/English support, switchable in settings
  • Node configuration: adjust connected device settings directly from the client
  • Meshhessen quick-config: one-click Short Slow + EU868 + Meshhessen channel setup
  • Pin nodes: pin nodes to the top of the list regardless of sort order
  • Change BT PIN: set Bluetooth PIN directly from the client
  • Auto-reconnect after settings changes that require a device reboot

v1.5.2 Alert Bell, Own Tile Server & PSK Export

SOS emergency alert, own tile server due to OSM policy, PSK export.

✨ Added

  • Alert Bell / SOS: send and receive emergency alerts with 🔔 emoji, visual notification (red flashing border) and "Jump to map" button
  • Own tile server: switched away from official OSM server (bulk downloads violate OSM tile policy)
  • PSK export: export channel PSK from the app
  • Channel CSV: CHANNELS.csv with known Meshtastic community channels
  • Dynamic copyright attribution on map

🐛 Fixed

  • Dark mode display bug in tabs
  • Context menus repaired
  • Text wrapping in messages window

v1.5 WiFi & Bluetooth

The client can now connect via TCP/WiFi and Bluetooth BLE — not just Serial/USB.

✨ Added

  • TCP/WiFi connection: configurable hostname/IP + port
  • Bluetooth BLE: direct GATT connection, BLE device scan and selection
  • Connection type selection via radio buttons in the UI

v1.4 – v1.4.2 MQTT, Node Colors & Connection Fixes

Better MQTT display, color-code and annotate nodes, improved connection robustness.

✨ Added

  • Better MQTT display: MQTT messages visually distinguished
  • Node colors: color-code nodes individually (map + chat list)
  • Node notes: free-text annotations per node
  • Improved node sorting (name, SNR, RSSI, distance)
  • Quick filter for the node list
  • Short name (ShortName) in node list
  • RSSI column in node list
  • T-Deck: slowed channel loading as workaround for slow hardware
  • Auto-recovery when node drops out of protobuf mode

🐛 Fixed

  • Disconnect/reconnect: no data was loaded after reconnecting
  • Tile download: progress and error messages made clearer
  • Sorting by distance, SNR and RSSI optimized
  • Zoom button on map repaired
  • Hop count display: was incorrectly showing −1

v1.0-Beta 2026-02-08 Initial Release

First public beta: DMs, message logging, offline map, basic telemetry and dark mode.

✨ Added

Messaging
  • Broadcast & direct messages, multi-channel
  • Dedicated DM window with tab system for multiple conversations
  • Notifications for new DMs (foreground, taskbar flash, system sound)
  • Orange highlight for unread DM tabs
  • "💬 Send DM" via right-click on node
  • Automatic message logging to logs/
Map & Nodes
  • Offline OSM map with node pins (Mapsui)
  • GPS tracks and waypoints on the map
  • Node list with SNR, RSSI, battery, distance, hop count
  • Set own location via right-click on map
  • Tile downloader for offline use
System
  • USB/Serial connection with robust protocol framing
  • Dark mode (ModernWPF Fluent Design)
  • Debug tab with live log
  • Persistent settings (INI file)