Python-basierter MQTT-Client kurz vorgestellt.
Benjamin K1PDX stellt auf seiner GitHub-Seite pdxlocations eine Reihe interessanter Projekte rund um Meshtastic vor, die alle in Python realisiert wurden. Eines davon ist Connect – ein Chat-Client für Meshtastic-Netzwerke. Im Gegensatz zu anderen Anwendungen wie MeshSense, die eine direkte Verbindung zu einer Meshtastic-Node erfordern, kommt Connect vollständig ohne eigene Node aus. Eine oder mehrere Nodes des Netzwerks dienen dabei als Gateway, um Nachrichten via Funk auszusenden und zu empfangen.

Installation
Die Installation unter macOS und Linux-basierten Betriebssystemen ist auf der GitHub-Seite des Projekts dokumentiert. Unter Linux können die Befehle einfach in ein Terminalfenster kopiert und ausgeführt werden. Wechselt zuvor mit dem Befehl cd in das gewünschte Installationsverzeichnis, z. B. cd ~ für euer Homeverzeichnis. Achtet darauf, dass euer Benutzer in diesem Verzeichnis über Schreibrechte verfügt. Falls nötig, können diese mit dem Befehl sudo chown angepasst werden.
Für einen komfortablen Start der Software empfiehlt es sich, eine entsprechende Verknüpfung auf dem Desktop abzulegen. Auf Raspbian-basierten Systemen kann dies im Verzeichnis /home/pi/Desktop erfolgen. Ein automatischer Start beim Systemstart ist ebenfalls möglich, indem man einen symbolischen Link der erstellten Desktop-Datei im Verzeichnis /home/pi/.config/autostart ablegt.
Konfiguration
Wie bei einer „echten“ Node wird auch hier zunächst eine im Netzwerk eindeutige Node-ID im hexadezimalen Format vergeben, z. B. !dcdcdcdc. Zusätzlich müssen ein Long- und Short-Name, eine statische Position (Breiten- und Längengrad) sowie die Höhe angegeben werden. Diese Angaben – ebenso wie die Konfiguration des zu verwendenden MQTT-Servers und die Login-Daten – lassen sich bequem über die grafische Benutzeroberfläche der Software eintragen und als Profile speichern. Nach dem Start kann eines der zuvor angelegten Profile ausgewählt und verwendet werden.

Nachrichtenversand
Nach erfolgreicher Verbindung zum konfigurierten MQTT-Server sendet die Software in regelmäßigen Abständen automatisch die eigene Node-Info samt Position. Kurz darauf erscheinen im rechten Bereich der Benutzeroberfläche die ersten über MQTT empfangenen Nodes – inklusive ihrer ID sowie ihres Short- und Long-Names. Statusmeldungen der Software sowie empfangene Kanal- und Direktnachrichten werden in einem Fenster unterhalb der Konfiguration angezeigt.
Darunter befindet sich ein Texteingabefeld und ein mit „Broadcast“ beschrifteter Button, über den eigene Nachrichten an den unter „Channel“ definierten Kanal gesendet werden können. Klickt man auf eine Node in der Liste, wird deren ID automatisch in das Feld „DM to“ übernommen. Mit dem Button „Direct Message“ lässt sich anschließend gezielt eine Nachricht an diese Node senden.
Kartendarstellung
Um die empfangenen Nodes übersichtlich auf einer Karte darzustellen, muss zunächst ein zusätzliches Paket installiert und eine Variable im Quellcode auf „True“ gesetzt werden. Auch diese Schritte sind auf der GitHub-Seite des Projekts ausführlich beschrieben. Anschließend generiert eine weitere Python-Anwendung die Karte als HTML-Datei, die im Browser geöffnet werden kann.
Wer eine kontinuierlich aktualisierte Karte wünscht, kann diesen Vorgang etwa unter Linux mit einem Cronjob automatisieren und die Karte dann auf einer Webseite mit automatischer Aktualisierung einbinden.

Fazit
Die Python-Software Connect bietet eine einfache Möglichkeit, auch ohne eigene Meshtastic-Node aktiv am Netzwerkgeschehen teilzunehmen. Voraussetzung dafür ist ein Gateway, das die Funkdaten an einen MQTT-Server weiterleitet, auf den man selbst Zugriff hat. Zusätzlich müssen die verbundenen Meshtastic-Clients in ihrer Konfiguration der Weiterleitung an einen öffentlichen MQTT-Server zustimmen (Option „OK to MQTT“ aktiviert) und dürfen nicht die Option „Ignore MQTT“ aktiviert haben – nur dann wird man selbst im Netzwerk sichtbar.
Wünschenswerte Erweiterungen wären etwa die Unterstützung mehrerer Kanäle mit separaten Tabs im Nachrichtenfenster, eine stärkere Hervorhebung privater Nachrichten sowie die Möglichkeit, Statusmeldungen per Checkbox ein- oder auszublenden. Da der Quellcode offen zugänglich ist und in Python vorliegt, steht eigenen Anpassungen und Erweiterungen nichts im Weg.
Kennt ihr weitere Meshtastic-Software, die nicht unerwähnt bleiben sollte? Dann schreibt sie uns gerne in die Kommentare unter diesem Beitrag oder diskutiert sie mit uns in unserer Telegram- oder WhatsApp-Gruppe.
Hier findet ihr weitere Beiträge zu Meshtastic:
Möchtest du das DL-Nordwest Projekt unterstützen? Dann freuen wir uns über deinen Gastbeitrag, das Teilen unserer Inhalte oder eine (kleine) Spende 🤑 Vielen Dank für deine Unterstützung! 😘