浪人
DE | EN
Meshtastic von der Kommandozeile - Setup, Debug und Konfiguration
tech

Meshtastic von der Kommandozeile - Setup, Debug und Konfiguration

Zurück zum Blog
3 Min. Lesezeit

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

  1. Prüfen ob beide Geräte dasselbe Modem-Preset haben:

    meshtastic --host [IP] --get lora.modem_preset

    Beide müssen identisch sein - z.B. beide LONG_FAST.

  2. Prüfen ob beide Geräte dieselbe Region haben:

    meshtastic --host [IP] --get lora.region

    In Österreich/Deutschland: EU_868.

  3. Antenne angeschlossen? Ohne Antenne keine Verbindung.

MQTT-Nachrichten kommen nicht an

  1. Prüfen ob MQTT überhaupt aktiv ist:

    meshtastic --host [IP] --get mqtt.enabled
  2. Prüfen ob JSON aktiviert ist:

    meshtastic --host [IP] --get mqtt.json_enabled
  3. Prüfen ob ignore_mqtt deaktiviert ist:

    meshtastic --host [IP] --get lora.ignore_mqtt

    Sollte false sein.

  4. 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.