MeshRadio Console GUI – Live-Monitoring und Steuerzentrale für MeshRadio-Knoten

Die MeshRadio Console GUI ist eine praxisorientierte Desktop-Anwendung zur Live-Überwachung, Visualisierung und Steuerung von MeshRadio-Sensor- und Aktorknoten. Sie wurde speziell für den Einsatz in experimentellen Funknetzen, Telemetrie-Anwendungen, Sensornetzwerken und Amateurfunk-Projekten entwickelt und verbindet eine übersichtliche grafische Oberfläche mit robuster serieller Kommunikation.

Die Software richtet sich an Anwender, die MeshRadio-Knoten nicht nur empfangen, sondern auch gezielt überwachen, auswerten und steuern möchten. Im Mittelpunkt stehen dabei eine einfache Bedienung, eine klare Zustandsanzeige und die zuverlässige Auslösung von Kommandos auf Basis eingehender Funkmeldungen.

Hier ist eine kurze Schritt-für-Schritt-Anleitung, um Python für die MeshRadio Cosole GUI unter Windows zu installieren:

1. Python herunterladen & installieren
  • Offizielle Webseite besuchen: Gehe auf die Python Downloads Seite. <- Klick hier zum Download.
  • Version wählen: Klicke auf den Button für die neueste Python 3 Version (z. B. Python 3.13).
  • Installation starten: Führe die heruntergeladene .exe-Datei aus.
  • WICHTIG: Setze unbedingt den Haken bei „Add Python to PATH“ (Python zum Pfad hinzufügen). Ohne diesen Schritt kannst du Python später nicht einfach über die Kommandozeile nutzen.
  • Standard-Installation: Wähle „Install Now“.
2. Installation prüfen
  • Drücke Windows-Taste + R, gib cmd ein und drücke Enter.
  • Gib python --version ein. Wenn eine Versionsnummer erscheint, war die Installation erfolgreich.
  • Prüfe mit pip --version, ob der Paketmanager (wichtig für Web-Bibliotheken) ebenfalls bereit ist.
  • Erforderliche Libs  pip install pyserial matplotlib

Startparameter der MeshRadio Console GUI

Die MeshRadio Console GUI kann über verschiedene Startparameter an unterschiedliche Systeme und Betriebsbedingungen angepasst werden. Dadurch lässt sich das Programm flexibel für verschiedene Hardwarekonfigurationen, Funknetze oder Entwicklungsumgebungen konfigurieren.

Die Parameter werden beim Start des Programms über die Kommandozeile angegeben.

Ein typischer Start sieht zum Beispiel so aus:

python .\meshradio_console_gui.py –port COM16 –baud 115200 –window 30
Damit wird die Software mit einer bestimmten seriellen Schnittstelle, einer definierten Baudrate und einem TX-Zeitfenster gestartet.

Im Folgenden werden alle verfügbaren Parameter beschrieben.


–port

–port PORT
Dieser Parameter legt fest, welche serielle Schnittstelle verwendet wird.

Über diese Schnittstelle empfängt die Software die Meldungen des MeshRadio-Systems.

Typische Werte:

Windows

COM3
COM5
COM16
Linux
/dev/ttyUSB0
/dev/ttyACM0
macOS
/dev/cu.usbserial

Beispiel:

python .\meshradio_console_gui.py –port COM16
Standardwert:
COM16

–baud

–baud BAUDRATE

Dieser Parameter definiert die Baudrate der seriellen Verbindung.

Die Baudrate muss mit der Einstellung des MeshRadio-Geräts übereinstimmen.

Typische Werte:

9600
57600
115200

Standardwert:

115200
Beispiel:
python .\meshradio_console_gui.py –baud 115200

–timeout

–timeout SECONDS
Dieser Parameter bestimmt den Timeout-Wert für das Lesen der seriellen Schnittstelle.

Wenn innerhalb dieses Zeitraums keine Daten empfangen werden, kehrt die Leseoperation zurück und der Programm-Loop läuft weiter.

Standardwert:

0.2 Sekunden
Beispiel:
python .\meshradio_console_gui.py –timeout 0.2
Der Standardwert bietet eine gute Balance zwischen:
  • Reaktionsgeschwindigkeit
  • CPU-Last
  • stabiler GUI-Aktualisierung

–window

–window SECONDS
Dieser Parameter bestimmt die Dauer des Sendefensters nach einer AWAKE-Meldung.

Wenn ein Sensorknoten eine Meldung wie

SENSOR:AWAKE
sendet, erkennt die Software, dass der Knoten gerade aktiv ist. Ab diesem Zeitpunkt wird ein TX-Fenster geöffnet.

Innerhalb dieses Zeitfensters dürfen Kommandos an den Knoten gesendet werden.

Standardwert:

30 Sekunden
Beispiel:
python .\meshradio_console_gui.py –window 20
Damit bleibt das Sendefenster nur 20 Sekunden geöffnet.

Diese Funktion ist besonders wichtig für stromsparende Wakeup-Knoten, die nur kurz aktiv sind.


–dst

–dst CALLSIGN
Dieser Parameter definiert das Standard-Ziel für gesendete Befehle.

Wenn in der GUI kein anderes Ziel angegeben wird, verwendet das Programm diesen Wert.

Standardwert:

DL1ABCF
Beispiel:
python .\meshradio_console_gui.py –dst DL7ABCF
Der Wert kann jederzeit im DST-Feld der GUI geändert werden.

–max-points

–max-points NUMBER
Dieser Parameter bestimmt, wie viele Messpunkte im WX-Diagramm gespeichert werden.

Die Werte werden intern in einer Ringstruktur gespeichert. Sobald die maximale Anzahl erreicht ist, werden die ältesten Daten automatisch überschrieben.

Standardwert:

300
Beispiel:
python .\meshradio_console_gui.py –max-points 600

Ein höherer Wert führt zu:

  • längeren Diagrammverläufen
  • höherem Speicherverbrauch
  • Für normale Anwendungen ist der Standardwert ausreichend.

–always-allow-tx

–always-allow-tx
Dieser Parameter deaktiviert den TX-Window-Schutz.

Normalerweise erlaubt die Software das Senden von Befehlen nur innerhalb des Zeitfensters nach einer SENSOR:AWAKE-Meldung.

Wenn dieser Parameter gesetzt ist, können Befehle jederzeit gesendet werden, unabhängig vom Wakeup-Zustand des Knotens.

Beispiel:

python .\meshradio_console_gui.py –always-allow-tx

Diese Option ist besonders sinnvoll für:

  • Entwicklungsumgebungen
  • Testbetrieb
  • manuelle Diagnose
  • direkte Steuerung ohne Wakeup-Mechanismus
  • Im normalen Betrieb mit batteriebetriebenen Knoten sollte diese Option meist nicht aktiviert werden.

Komplettes Startbeispiel

Ein vollständiger Start könnte so aussehen:

python .\meshradio_console_gui.py ^
–port COM16 ^
–baud 115200 ^
–window 30 ^
–dst DL7ABCF ^
–max-points 300
Damit wird die MeshRadio Console GUI gestartet mit:
  • serieller Schnittstelle COM16
  • Baudrate 115200
  • TX-Fenster 30 Sekunden
  • Zielknoten DL7ABCF
  • maximal 300 Diagrammpunkten
  • Ziel und Einsatzbereich

In typischen MeshRadio-Anwendungen senden entfernte Knoten regelmäßig Status- oder Sensordaten. Dazu gehören zum Beispiel Temperatur, Luftdruck, Luftfeuchte, Batteriespannung oder einfache Aufwach-Meldungen eines batteriebetriebenen Knotens. Genau hier setzt die MeshRadio Console GUI an: Sie empfängt die seriell ausgegebenen Meldungen des MeshRadio-Systems in Echtzeit, bereitet sie auf und stellt sie in einer komfortablen Benutzeroberfläche dar.

Die Anwendung eignet sich besonders für:

  • Sensorstationen im MeshRadio-Netz
  • Batteriebetriebene Wakeup-Knoten
  • Fernsteuerung von Relais oder Schaltfunktionen
  • Telemetrie- und Wetterdatenerfassung
  • Amateurfunk-Experimente mit vernetzten Knoten
  • Entwicklungs-, Test- und Diagnoseumgebungen

Funktionsprinzip

Das Programm lauscht auf einer seriellen Schnittstelle, an der ein MeshRadio-System angeschlossen ist. Eingehende Textmeldungen werden analysiert und je nach Inhalt weiterverarbeitet. Wird eine Nachricht eines Sensorknotens erkannt, kann die Anwendung daraus sowohl Messwerte als auch Zustandsinformationen extrahieren.

Besonders wichtig ist die Behandlung von AWAKE-Meldungen. Sobald ein Knoten eine Meldung wie SENSOR:AWAKE sendet, erkennt die Software, dass dieser Knoten gerade aktiv und ansprechbar ist. Damit kann automatisch ein Zeitfenster geöffnet werden, in dem Kommandos an diesen Knoten gesendet werden dürfen. Das ist vor allem bei stromsparenden oder zyklisch aufwachenden Geräten entscheidend.

Grafische Benutzeroberfläche

Die MeshRadio Console GUI besteht aus zwei zentralen Bereichen:

1. WX-Plot-Fenster

Im Plot-Fenster werden empfangene Wetter- und Telemetriedaten live dargestellt. Dazu zählen:

  • Temperatur
  • Luftdruck
  • relative Luftfeuchte
  • Batteriespannung in Millivolt
  • Batteriestand in Prozent

Die Diagramme aktualisieren sich fortlaufend, sobald neue vollständige WX-Datensätze eingehen. Dadurch entsteht eine direkte visuelle Rückmeldung über den aktuellen Zustand des entfernten Knotens und dessen zeitlichen Verlauf.

2. Control Panel

Das Steuerfenster bietet alle wichtigen Bedienelemente für den laufenden Betrieb:

  • Anzeige des aktuellen TX-Zeitfensters
  • Eingabefeld für Zielrufzeichen oder Zielknoten
  • freie Eingabe eigener Nutzlasten
  • Schnellbuttons für Standardbefehle wie:
    • RELAY ON
    • RELAY OFF
    • RELAY TOGGLE
    • STATUS?
  • One-shot-Auto-Command für das automatische Senden beim nächsten AWAKE
  • Link-Quality-Anzeige auf Basis des letzten RSSI-Werts
  • Node-Liste mit zuletzt gesehenen Knoten
  • Damit ist die Software sowohl für manuelle Bedienung als auch für halbautomatische Abläufe geeignet.

Automatisches Triggern auf AWAKE

Ein zentrales Merkmal der Anwendung ist das zuverlässige Triggern auf eingehende AWAKE-Meldungen. Das bedeutet: Nicht nur vollständige Sensordatensätze mit Wetterwerten werden erkannt, sondern auch einfache Meldungen wie:

SENSOR:AWAKE
Sobald eine solche Meldung eintrifft, wird dies als gültiges Aufwachen des Knotens interpretiert. Dadurch kann:
  • das TX-Fenster geöffnet werden,
  • der Knoten als „zuletzt gesehen“ markiert werden,
  • ein vorbereiteter Auto-Befehl exakt in diesem Moment gesendet werden.

Gerade bei Schlaf-/Wakeup-basierten Sensorknoten ist dieses Verhalten essenziell, weil nicht jeder Funkrahmen bereits vollständige WX-Daten enthält. Die Software reagiert deshalb bewusst auch auf reine AWAKE-Nachrichten und sorgt so für eine robuste Steuerung im realen Betrieb.

One-shot Auto Command

Für viele Anwendungen ist es notwendig, dass ein bestimmter Befehl nicht sofort, sondern erst beim nächsten Aufwachen eines Knotens gesendet wird. Genau dafür steht die One-shot-Auto-Command-Funktion zur Verfügung.

Der Benutzer trägt einen Befehl ein und „armed“ ihn in der Oberfläche. Die Software wartet dann auf die nächste gültige SENSOR:AWAKE-Meldung und sendet den Befehl automatisch genau einmal. Danach wird der Auto-Trigger wieder deaktiviert.

Das ist ideal für:

  • stromsparende Knoten, die nur kurz erreichbar sind
  • gezielte Schaltvorgänge
  • Statusabfragen bei Wakeup-Knoten
  • zeitlich präzise Einzelaktionen ohne permanentes manuelles Eingreifen

TX-Window-Schutz

Um Fehlsendungen oder unnötige Übertragungen außerhalb eines sinnvollen Kommunikationsfensters zu vermeiden, besitzt die Software einen TX-Window-Schutz. Nach einer AWAKE-Meldung bleibt das Sendefenster für eine definierte Zeit offen. Innerhalb dieses Zeitraums können Kommandos gezielt ausgelöst werden.

In der Oberfläche wird dieser Zustand deutlich sichtbar angezeigt:

  • grün, wenn das Sendefenster offen ist
  • grau, wenn es geschlossen ist

Zusätzlich wird ein Countdown angezeigt, wie lange das Fenster noch offen bleibt. Das verbessert die Bedienbarkeit erheblich und reduziert Fehlbedienungen.

Link Quality und RSSI-Auswertung

Die Software wertet vorhandene RSSI-Informationen aus den empfangenen Meldungen aus und leitet daraus eine einfache Link-Quality-Anzeige ab. Der Benutzer erhält dadurch sofort einen Eindruck von der aktuellen Funkverbindung zum Knoten.

Die Anzeige umfasst:

  • den zuletzt bekannten RSSI-Wert in dBm
  • eine daraus berechnete Qualitätsprozentzahl
  • eine grafische Balkendarstellung

Das erleichtert die Einschätzung von Reichweite, Empfangsqualität und Antennensituation im laufenden Betrieb.

Node-Liste mit „Last Seen“

Alle erkannten Knoten werden in einer übersichtlichen Tabelle geführt. Dort erscheinen unter anderem:

  • Rufzeichen bzw. Knotennamen
  • Zeit seit dem letzten Empfang
  • letzter RSSI-Wert
  • abgeleitete Link Quality

Damit lässt sich auf einen Blick erkennen, welche Knoten aktuell aktiv sind, wann sie zuletzt empfangen wurden und wie gut deren Funkverbindung ist. Besonders in größeren MeshRadio-Aufbauten mit mehreren Teilnehmern ist diese Funktion sehr hilfreich.

Robuste Verarbeitung serieller Meldungen

Die Anwendung wurde so ausgelegt, dass sie mit den typischen seriellen Textausgaben eines MeshRadio-Systems zuverlässig umgehen kann. Dabei werden Informationen wie from=..., rssi=..., SENSOR:AWAKE und optionale WX-Daten flexibel erkannt.

Das Programm verarbeitet also sowohl:

  • reine AWAKE-Meldungen
  • kombinierte AWAKE- und WX-Telemetrie
  • Statuszeilen mit RSSI und Absenderkennung
  • wechselnde Zeitpunkte und unregelmäßige Datenströme

Diese Robustheit ist besonders im praktischen Feldbetrieb wichtig, wo nicht jede Nachricht immer identisch aufgebaut ist.

Typische Anwendungsszenarien

Die MeshRadio Console GUI eignet sich hervorragend für reale Praxisanwendungen. Beispiele:

Fernsteuerung eines Relaisknotens

Ein entfernter Knoten wacht kurz auf und sendet SENSOR:AWAKE. Die GUI erkennt dies, öffnet das Sendefenster und übermittelt automatisch einen vorbereiteten Schaltbefehl wie CMD:RELAY ON.

Umwelt- oder Wettermonitoring

Ein MeshRadio-Sensorknoten liefert regelmäßig Temperatur, Luftdruck, Luftfeuchte und Batteriedaten. Die Software visualisiert diese Werte live und dokumentiert ihren Verlauf direkt im Plot-Fenster.

Netzüberwachung mehrerer Knoten

In einem kleinen MeshRadio-Netz mit mehreren Teilnehmern zeigt die Node-Liste sofort, welche Stationen zuletzt aktiv waren und mit welcher Feldstärke sie empfangen wurden.

Entwicklungs- und Testumgebung

Bei der Entwicklung neuer Knotensoftware oder Protokollerweiterungen dient die GUI als Live-Monitor, Trigger-Console und Diagnosewerkzeug zugleich.

Technische Basis

Die Anwendung ist in Python 3 geschrieben und nutzt bewährte Standard- und Open-Source-Komponenten:

  • pyserial für die serielle Kommunikation
  • Tkinter für die grafische Bedienoberfläche
  • matplotlib für die Live-Darstellung der Messwerte
  • threading für den parallelen Betrieb von GUI und serieller Verarbeitung

Durch diese Architektur bleibt das Programm leichtgewichtig, portabel und einfach anpassbar. Es eignet sich sowohl für Windows-Systeme als auch für andere Plattformen, sofern Python und die benötigten Bibliotheken vorhanden sind.

Besonderheiten der Software

Was die MeshRadio Console GUI besonders macht, ist die Kombination aus:

  • Live-Telemetrie
  • visueller Zustandsanzeige
  • manueller Steuerung
  • automatischem Triggering
  • knotenspezifischer Übersicht
  • praxistauglicher Funkdiagnose

Die Software ist nicht nur ein Viewer, sondern eine echte Arbeitskonsole für MeshRadio-Knoten.

Für wen ist die Anwendung gedacht?

Die MeshRadio Console GUI richtet sich insbesondere an:

  • Funkamateure
  • Entwickler und Maker
  • Betreiber experimenteller Sensornetze
  • Anwender batteriebetriebener Wakeup-Knoten
  • Nutzer von Telemetrie- und Schaltanwendungen im MeshRadio-Umfeld

Sie ist sowohl für den praktischen Betrieb als auch für Labor, Werkstatt, Testplatz und Feldversuch geeignet.

Zusammenfassung

Die MeshRadio Console GUI ist eine leistungsfähige und zugleich übersichtliche Monitoring- und Steueranwendung für MeshRadio-Systeme. Sie erlaubt das Empfangen, Auswerten und Darstellen von Sensordaten in Echtzeit, erkennt zuverlässig AWAKE-Zustände entfernter Knoten und ermöglicht sowohl manuelle als auch automatische Kommandos im optimalen Sendefenster.

Mit Live-Plot, Node-Liste, RSSI-basierter Linkbewertung, Statusanzeige und Auto-Trigger-Funktion entsteht ein Werkzeug, das speziell für die Anforderungen moderner MeshRadio-Projekte entwickelt wurde – praxisnah, robust und direkt einsetzbar.