Meshtastic von der Kommandozeile - Setup, Debug und Konfiguration
Meshtastic von der Kommandozeile - Setup, Debug und Konfiguration
Einleitung
Die Meshtastic App am Handy ist praktisch - aber manchmal kommt man damit nicht weiter. Einstellungen die nicht gespeichert werden, Verbindungen die nicht klappen, oder einfach der Wunsch die Konfiguration zu automatisieren. Genau hier kommt die Meshtastic Python CLI ins Spiel.
In diesem Artikel zeige ich wie man die CLI einrichtet, wie man sich mit verschiedenen Gerätetypen verbindet, und welche Befehle im Alltag und beim Debugging wirklich nützlich sind.
Prerequisites
Python
Die CLI läuft auf Python 3. Prüfe ob Python installiert ist:
python --version
# oder
python3 --version
Mindestversion ist Python 3.9. Falls Python fehlt, herunterladen von python.org.
Warnung: Auf Windows: Python nicht aus dem Microsoft Store installieren - das macht manchmal Probleme mit Paketen. Direkt von python.org laden.
Virtuelles Environment anlegen
Am besten die CLI in einem eigenen Environment betreiben damit es keine Konflikte mit anderen Python-Projekten gibt:
python -m venv meshtastic-env
# Aktivieren:
# Linux/Mac:
source meshtastic-env/bin/activate
# Windows:
meshtastic-env\Scripts\activate
CLI installieren
pip install meshtastic pyqrcode pypng
Zur Verifikation:
meshtastic --version
Verbindung herstellen
Die CLI unterstützt zwei Verbindungswege - je nach Gerätetyp.
Variante 1: USB / Seriell
Für Geräte die direkt per USB am PC hängen, z.B. ein Handheld-Node oder ein Gerät das gerade konfiguriert wird.
Gerät per USB verbinden, dann:
meshtastic --port COM3 --info # Windows
meshtastic --port /dev/ttyUSB0 --info # Linux/Mac
Den richtigen Port findest du unter:
- Windows: Geräte-Manager → Anschlüsse (COM & LPT)
- Linux/Mac:
ls /dev/tty*vor und nach dem Einstecken
Alternativ versucht die CLI ohne --port automatisch den richtigen Port zu finden:
meshtastic --info
Variante 2: TCP/IP (Netzwerk)
Für Geräte die per WiFi oder Ethernet im Netz hängen, z.B. ein RAK WisBlock Gateway mit Ethernet-Modul.
meshtastic --host 192.168.x.x --info
Die IP-Adresse des Geräts findest du im Router unter den DHCP-Clients.
Tip: Alle folgenden Beispiele verwenden --host IP für TCP - einfach durch --port COM3 ersetzen wenn du USB verwendest.
Grundlegende Befehle
Geräteinformationen abrufen
Der wichtigste Befehl überhaupt - zeigt alles:
meshtastic --host [IP] --info
Die Ausgabe enthält:
- Firmware-Version
- Hardware-Modell
- Alle Konfigurationseinstellungen
- Aktive Nodes im Mesh
- Kanal-Konfiguration
Nodes im Mesh anzeigen
meshtastic --host [IP] --nodes
Zeigt eine übersichtliche Tabelle aller bekannten Nodes mit Signal-Qualität (SNR), letztem Kontakt und Hardware-Modell. Besonders nützlich um zu prüfen ob Geräte sich gegenseitig sehen.
Live-Nachrichten empfangen
meshtastic --host [IP] --listen
Zeigt alle eingehenden Pakete in Echtzeit - Textnachrichten, Telemetrie, Positionsdaten, Node-Infos. Praktisch um zu prüfen ob das Gerät überhaupt etwas empfängt.
Mit Ctrl+C beenden.
Testnachricht senden
meshtastic --host [IP] --sendtext "Hallo Mesh"
Konfiguration lesen und schreiben
Einzelne Einstellung lesen
meshtastic --host [IP] --get lora.modem_preset
meshtastic --host [IP] --get mqtt.enabled
Einzelne Einstellung setzen
meshtastic --host [IP] --set lora.modem_preset LONG_FAST
meshtastic --host [IP] --set lora.region EU_868
meshtastic --host [IP] --set lora.ignore_mqtt false
Mehrere Einstellungen auf einmal - der zuverlässige Weg
Bei manchen Firmware-Varianten (z.B. eth_gw) werden einzelne Einstellungen per TCP nicht zuverlässig gespeichert. Die sicherste Methode ist der Export/Import per YAML:
Konfiguration exportieren:
meshtastic --host [IP] --export-config config.yaml
YAML bearbeiten - z.B. den MQTT-Abschnitt anpassen:
module_config:
mqtt:
address: 192.168.x.x
enabled: true
jsonEnabled: true
tlsEnabled: false
encryptionEnabled: false
username: meshtastic
password: DeinPasswort
root: msh/EU_868
Konfiguration wieder einspielen:
meshtastic --host [IP] --configure config.yaml
Tip: Die YAML-Methode ist immer zuverlässiger als einzelne --set Befehle - besonders bei Modul-Einstellungen wie MQTT.
Kanäle verwalten
Aktuelle Kanäle anzeigen
Kanäle sind Teil der --info Ausgabe, aber es gibt auch einen direkten Weg:
meshtastic --host [IP] --info
Unter Channels: am Ende der Ausgabe.
QR-Code für Kanal-Import generieren
meshtastic --host [IP] --qr
Zeigt die Channel-URL und - wenn pyqrcode installiert ist - einen QR-Code direkt im Terminal. Praktisch um den Kanal auf andere Geräte zu übertragen.
Gerät neu starten
meshtastic --host [IP] --reboot
Debugging-Tipps
Gerät sieht andere Nodes nicht
-
Prüfen ob beide Geräte dasselbe Modem-Preset haben:
meshtastic --host [IP] --get lora.modem_presetBeide müssen identisch sein - z.B. beide
LONG_FAST. -
Prüfen ob beide Geräte dieselbe Region haben:
meshtastic --host [IP] --get lora.regionIn Österreich/Deutschland:
EU_868. -
Antenne angeschlossen? Ohne Antenne keine Verbindung.
MQTT-Nachrichten kommen nicht an
-
Prüfen ob MQTT überhaupt aktiv ist:
meshtastic --host [IP] --get mqtt.enabled -
Prüfen ob JSON aktiviert ist:
meshtastic --host [IP] --get mqtt.json_enabled -
Prüfen ob
ignore_mqttdeaktiviert ist:meshtastic --host [IP] --get lora.ignore_mqttSollte
falsesein. -
Im Mosquitto-Log prüfen ob das Gerät sich verbindet und ob die Authentifizierung klappt.
Einstellungen werden nicht gespeichert
Bei der eth_gw-Firmware per TCP: YAML-Methode verwenden statt einzelner --set Befehle - siehe oben.
Verbindung schlägt fehl
Bei TCP:
Error connecting: [WinError 10061] No connection could be made
→ Gerät nicht erreichbar oder falscher Port. IP im Router prüfen, Gerät pingen.
Bei USB:
No Serial Meshtastic device detected
→ Falscher COM-Port oder Gerät nicht im normalen Betriebsmodus (nicht im Bootloader-Modus, also nicht doppelt resetten).
Fazit
Die Meshtastic CLI ist ein unverzichtbares Werkzeug sobald man über das Basis-Setup hinausgeht. Besonders der YAML-Export/Import hat mir bei der Gateway-Konfiguration viel Zeit gespart - und --listen ist Gold wert wenn man prüfen will ob überhaupt etwas im Mesh passiert.
Dieser Artikel ist Teil einer Serie über Meshtastic und Home Assistant.