MeshCore CLI Befehle

Hier ein Liste der gebräuchlichsten CLI Befehle, die über die Konsole des Repeaters eingegeben werden können. Die CLI Befehle die nur über die serielle Schnittstelle funktionieren, sind hier nicht aufglistet.

Befehl Beispiel Beschreibung
reboot reboot Erklärt sich von selbst.
Es erfolgt keine Rückmeldung des Repeaters
poweroff
or
shutdown
shutdown Der Repeater wird ausgeschaltet
Es erfolgt keine Rückmeldung des Repeaters
clkreboot clkreboot Die Uhr des Repeaters wird zurück gesetzt und dann der Repeater neu gestartet
clock sync clock sync Die Uhr des Repeaters wird mit der Uhr des Clients, also dem PC oder des SmartPhones synchronisiert,
clock clock Zeigt die aktuelle Uhrzeit des Repeaters in UTC an. Aber Achtung diese kann schnell mal einen Fehler aufweisen wenn nach einem Neustart buw. einem Stromausfall keine Synchronisierung erfolgt.
time <epoch_seconds> time 1710000000 Setzt die Zeit auf ekinen bestimmten UNIX Timestamp. Im Beispiel auf 1710000000 Sekunden nach dem 1.1.1970
advert advert Sendet ein flood Advert‑Paket (Präsenzpaket), damit der Repeater im Netz sichtbar wird.
advert.zerohop advert.zerohop Sendet ein Advert zu den direkten Nachbarn. Diese leiten das advert nicht weiter. Nur zur lokalen Bekanntgabe.
start ota start ota Startet den OTA‑Modus (Over‑the‑Air‑Update), um Firmware drahtlos zu übertragen und zu installieren.
neighbors neighbors Listet die unmittgelbaren Nachbarn des Repeaters auf. Dabei werden die 8 zuletzt hinzugefügten Nachbarn angezeigt.
Die Ausgabe sieht wie folgt aus:
{pubkey-prefix}:{timestamp}:{snr*4}Beispiel:
EB3A42C5:5358:46Timestamp ist die Zeit in Sekunden seit dem letzten advert
neighbor.remove <pubkey_prefix> neighbor.remove EB3A42C5 Ein Nachbar-Repeater wird aus der Liste gelöscht. Die skann erfolgen in dem der Prefix des Repeaters wie im Beispiel angegeben wird. Aber auch der koplette öffentliche Schlüssel kann angegeben werden.

Wird ein Leerzeichen nach neighbor.remove gesendet, dann wird die komplette Liste gelöscht.

discover.neighbors discover.neighbors Es wird nach neuen Nachbarn gesucht, per LoRa direkt erreicht werden können.
Diese werden aber nicht sofort angezeigt.
Die Nachbar-Repeater kann man sich über den Befehl neighbors anzeigen lassen
log start

log stop

log erase

log

log start

log stop

log erase

Beginne mit der Erfassung des RX .Logs

Stoppe die Erfassung des RX-Logs

Lösche das RX-Log

Das Log kann logischerweise aufgrund seiner Größe nicht per Lora abgerufen werden sondern nur über die serielle Schnittstelle.

ver ver Zeigt die aktuelle Firmware Version des Repeaters an
board board Zeigt den Typ der verwendeten Hardware an.
Beispiel:
Heltic V3
get radio

 

 

 

 

set radio <freq>,<bw>,<sf>,<cr>

get radio

 

 

 

 

set radio 869.618, 62.5,8,8

Zeigt die Radioparameter des Repeaters an.
Beispiel:
get radio
>869.6179808,62.5,8,8
<freq>,<bw>,<sf>,<cr>
Wobei:
freq: Frequenz in MHz
bw
: Bandbreite in kHz
sf
: Spreizfaktor (5-12)
cr
: Codierungsrate (5-8)
Die Radio Parameter des Repeaters werden gesetzt. Der Repeater muss neu gestartet werden, damit die Änderungen wirksam werden.
get tx

set tx <dbm>

get tx

set tx 20

Zeigt die Sendeleistung des Repeaters an

Setzt die Ausgangsleistung des Repeaters. Hier 20dBm, das sind 100mW.
Es wird nur die Leistung des Lora Boards gesetzt. Wenn ein Leistungsverstärker nachgeschaltet ist, dann ist die Sendeleistung natürlich höher. Bitte darauf achten dass die gesetzlichen Maximalwerte einghalten werden. Siehe dazu unseren Beitrag zu ERP/EIRP

tempradio <freq>,<bw>,<sf>,<cr>,<timeout_mins> tempradio 869.618, 62.5,8,8,5 Die Radioparameter des Repeater werden nur tempörär gesetzt. Es sind die gleichen Parameter wie bei set radio. Zusätlich wird als letzter Wert noch die Zeit in Minuten angegeben, für die die Werte gelten sollten. Diese temporären Werte werden sofort für die angegebene Zeit wirksam. Bei einen Reboot werden diese (vorzeitig) gelöscht.
get radio.rxgain

 

set radio.rxgain <state>

get radio.rxgain

 

set radio.rxgain on|off

Zeigt an ob der Empfangsvorstärker eingeschaltet oder ausgeschaltet ist. Diesen Befehl gibt es erst ab Version 1.14. Nicht alle Lora Module bieten diese Funktion.

Mit diesem Befehl wird der Vorverstärker ein oder ausgeschaltet.

get name

set name <name>

get name

set name DE-NW-HSK-Meschede

Zeigt den Namen des Repeaters an.
Beispiel: DE-NW-HSK-MeschedeEs wird ein neuer Name für den Repeter gesetzt. Der Name darf Maximal 23 Byte lang sein. Es dürfen Emojis und Unicode Zeichen verwendet werden. Es ist zu beachten, dass diese auch mehr als ein Byte belegen können
Beispiel:📡DE-NW-HSK-Meschede
get lat

set lat <degrees>

get lat

set lat 51.3446807

Zeigt den Breitengrad des Knotens an

Setzt den Breitengrad des Knotens auf 51.3446807
Die Werte sind jeweils in Grad mit Nachkommastellen

get lon

set lon <degrees>

get lon

set lat 8.2999601

Zeigt den Längengrad des Knotens an

Setzt den Längengrad des Knotens auf 8.2999601
Die Werte sind jeweils in Grad mit Nachkommastellen

get prv.key

set prv.key <private_key>

get prv.key

set prv.key <private_key>

Anzeigen des privaten Schüssels

Setzen des privaten Schlüssels. Es ist ein Meustart erforderlich, damit der neue private Schlüssel wirksam wird.

password <new_password> password asdfjklö Setzen eines neuen Admin Passwortes. Das neue Passwort wird zur Bestätigung ausgegeben.
get guest.password

set guest.password <password>

get guest.password

set guest.password asdfjklö

Das Gast Passwort abfragen.

Das Gast Passwort auf einen neuen Wert setzen. Der Standartwert  ist<blank>

get owner.info

set owner.info <text>

get owner.info

set owner.info > Repeater Stimmstamm DB0HSK

Zeigt die Eigentümerinfo des Knotens an. Beispiel: > Repeater Stimmstamm DB0HSK

Setzt die Eigentümerinformation des Knotens. | – Zeichen werden in Zeilenumbrüche umgewandelt.

get adc.multiplier

set adc.multiplier <value>

 

 

 

 

 

get adc.multiplier

set adc.multiplier 2

 

 

 

 

 

gibt den aktuellen aktuellen Korrekturfaktor für die Batterie-Spannungsmessung aus.

setzt den aktuellen aktuellen Korrekturfaktor für die Batterie-Spannungsmessung.

Wenn dir dein Repeater oder Node eine falsche Akkuspannung oder einen falschen Prozentsatz anzeigt, kannst du den Wert mit set adc.multiplier <wert> kalibrieren. Falls das Board dies nicht unterstützt, wird eine Fehlermeldung ausgegeben.

Wichtig: Dieser Befehl hat keinerlei Auswirkungen auf die tatsächliche Stromversorgung oder das Ladeverhalten des Geräts – er dient rein der korrekten Anzeige des Akkustands.

get public.key get public.key Öffentlichen Schlüssel des Knotens ausgeben
ver ver Firmwareversion dieses Knotens anzeigen. Z.B.
v1.17.1-d929643 (Build: 14-Aug-2026)
get role get role Zeigt die rolle des Knotens an.

Z.B.: > repeater

powersaving

powersaving on powersaving off

 

 

 

 

 

 

powersaving

powersaving on powersaving off

 

 

 

 

 

 

Energiesparstatus dieses Knotens anzeigen

Energiesparstatus dieses Knotens ein oder ausschalten

Der Mikrocontroller schaltet sich in Phasen, in denen keine Aktivität stattfindet, weitgehend ab. Dadurch sinkt der Stromverbrauch im Leerlauf oft von einigen Dutzend Milliampère auf wenige Mikroampère

Ein echter Repeater sollte idealerweise permanent empfangsbereit sein, um durchfliegende Pakete sofort weiterzuleiten. Wenn der Repeater in den Energiesparmodus wechselt, kann es passieren, dass er Nachrichten verpasst, weil er gerade schläft. Hier führt Powersaving oft zu Paketverlusten im Mesh.

get repeat

get repeat <state>

get repeat

set repeat on
set repeat off

Abfragen ob der Knoten als Repeater arbeitet.

Mit set repeat off machst du aus einem Repeater einen ganz normalen „Client“. Wenn du die Funktion später wieder aktivieren möchtest, reicht ein set repeat on.
Macht bei einem Repeater eigentlich keinen Sinn.

get path.hash.mode

set path.hash.mode <value>

get path.hash.mode

set path.hash.mode 0

Zeigt an wieviel Byte des öffentlichen Schlüssels eines Knotens bei Adverts übertragen werden. Mögliche Werte 0, 1 oder 2.

Setzt die Zahl der Bytes des öffentlichen Schlüssels eines Knotens die bei Adverts übertragen gesendet werden.

Der Sinn dahinter: Kürzere Hashes sparen wertvollen Platz im Funkpaket, während längere Hashes mehr eindeutige Geräte im Netz unterstützen.

Um Platz im Funkpaket zu sparen, wird dieser Public Key abgeschnitten – man nimmt je nach eingestelltem Modus einfach das 1. Byte, die ersten 2 Bytes oder die ersten 3 Bytes als kompakte ID.

get loop.detect

set loop.detect <state>

get loop.detect

set loop.detect on

Fragt ab, ob die Schleifenerkennung aktuell eingeschaltet ist und mit welchem Parameter.

Schaltet lopp.detect  ein, dabei gibt es 4 Parameter:

off: Schleifenerkennung ist komplett deaktiviert.

minimal: Ein Paket wird erst dann als Schleife verworfen, wenn die eigene Node-ID/Hash 4 Mal oder häufiger im Pfad auftaucht.

moderate: Ein Paket wird erst dann als Schleife verworfen, wenn die eigene Node-ID/Hash 2 Mal oder häufiger im Pfad auftaucht.

strict: Blockiert ein Paket sofort beim ersten Anzeichen dafür, dass es den eigenen Knoten/Pfad bereits passiert hat.

In einem vermaschten Funknetz (Mesh) kann es passieren, dass ein Funkpaket im Kreis weitergeleitet wird (weil beispielsweise mehrere Repeater das Paket gegenseitig hin- und herschicken). Das verstopft unnötig den Äther und verschwendet Bandbreite. Die Schleifenerkennung verhindert das, indem sie solche Endlosschleifen (Loops) erkennt und die betroffenen Pakete verwirft.

get txdelay

set txdelay <value>

get txdelay

set txdelay 0.5

Zeigt den Wert von txdelay an

Setzt einen Wert für txdelay

Wenn mehrere nahe beieinander liegende Repeater dasselbe Flood-Paket empfangen, wartet jeder eine zufällige Zeitspanne, bevor er es erneut sendet, um gleichzeitige Kollisionen zu vermeiden. Dieser Faktor skaliert die Größe dieses zufälligen Zeitfensters. Höhere Werte verringern das Kollisionsrisiko, erhöhen aber die Latenzzeit. Der Wert 0 deaktiviert das Zeitfenster vollständig. Die Werte können zwischen 0 und 2 liegen

get direct.txdelay

set direct.txdelay <value>

get direct.txdelay

set direct.txdelay 0.2

Wie txdelay aber für direkte Pakete von Companions die den Knoten erreichen.

Der Standardwert ist niedriger, da bei direkten Paketen deutlich weniger Knoten um die Weiterleitung konkurrieren.

get rxdelay

set rxdelay <value>

 

 

 

 

 

get rxdelay

set rxdelay <value>

 

 

 

 

 

Zeigt den Wert von rxdelay an

Setzt einen Wert für rxdelay
Die rxdelay sorgt signalabhängig dafür wie schnell ein Paket weitergeletet wird. tarke signale eerhälten eine kurze Verzögerung. Schwache Signale erhalten eine längere Verzögerung.

Das Netz sorgt dadurch automatisch dafür, dass sich primär die stabilsten, direktesten Wege durchsetzen, während wackelige Pfade im Hintergrund gehalten werden.

get dutycycle

set dutycycle <value>

get dutycycle

set dutycycle 10

Zeigt den Dutycycle in Prozent als maximale Sendezeit in einer Stunde an.

Setzt den Dutycycle in Prozent als maximale Sendezeit in einem Zeitraum von einer Stunde.

In der Region der EU ist es gesetzlich vorgeschrieben, dass ein Funksender im LoRa-Band (868 MHz) ununterbrochen maximal 10 % der Zeit innerhalb einer Stunde senden darf, um andere Nutzer nicht zu blockieren. Hier wird ein gleitender Stundenwert zugrunde betrachtet.

Wird dieser Wert erreicht, werden alle Aussendungen absolut blockiert bis dieser gleitende Stundenwert wieder unter 10% gesunken ist.

get af

set af <value>log

get af

set af 9

Zeigt den Airtimefaktor an.

Setzt den Artimefaktor auf 9

Ein Airtimefaktor von 1 besagt, dass nach jedem gesendeten Paket genau so lange nicht gesendet wird, wie die Aussendung des aktuellen Paketes gedauert hat. Ein Airtimefaktor von 9 besagt, dass nach jedem gesendeten Paket 9x so lange nicht gesendet wird, wie die Aussendung des aktuellen Paketes gedauert hat.

Ein AF von 9 passt exakt zum Dutycycle von 10%. Heißt aber, dass nach einer Sekunde Sendezeit immer 9 Sekunden nicht gesendet wird. Dass bedeutet, dass zwischen den einzelnen Pakten immer eine größere Zeitspanne liegt. Dies sorgt aber dafür, dass der Repeater nicht für den Großteil einer Stunde abgeschaltet werden muss um die 10% gesetliche Vorgabe einzuhalten. Heißt: Die AF sorgt dafür wie man die 10% Dutycycle erreichen will.

Bei einem wenig frequentierten Repeater kann man die AF runter setzten. Die einzelnen Pakate kommen dann schnell hintereinander.

Bei einem Repeater mit viel Verkehr sollte die AF hoch sein, damit der Repeater nicht plötzlich für einen großen Teil einer Stunde abgeschaltet ist.

get int.thresh

set int.thresh <value>

 

 

 

 

 

 

 

 

 

 

get int.thresh

set int.thresh 14

 

 

 

 

 

 

 

 

 

 

Zeigt den Schwellwert für lokale Interferenzen in dB an

Setzt den Schwellwert für lokale Interferenzen in dB.

Ein Knoten misst kontinuierlich das aktuelle Grundrauschen, also den sogenannten Noise Floor. Wenn ein Paket weitergeleitet werden soll, prüft der Knoten zuerst, ob auf dem Kanal gerade andere Funksignale zu hören sind. Liegt der aktuelle RSSI-Wert (Empfangspegel) über dem Rauschen plus diesem Schwellenwert (int.thresh), stuft der Knoten den Kanal als „beschäftigt“ (busy) ein. Der Knoten verschiebt in dem Fall seine eigene Aussendung (verzögert also das Senden), um nicht genau in den Funkverkehr anderer Stationen hineinzusenden und Kollisionen zu provozieren. Bei einem niedrigen Wert von z.B. 1 wartet der Knoten schon bei schwachen Signalen mit dem Aussenden. Bei großen Werten z.B. 20, wartet der Knoten nur bei starken Fremdsignalen.

Mit einem Wert von 0 schaltet man die automatische Erkennung von Fremdsignalen komplett aus. Dies tun die meisten Repeater.

get agc.reset.interval

set agc.reset.interval <value>region

get agc.reset.interval

set agc.reset.interval 16

Zeit den Wert des AGC-Zurücksetzungs-Intervalls in Sekunden an.

Setzt den Wert des AGC-Zurücksetzungs-Intervalls in Sekunden.

Die AGC regelt die Verstärkung bei starken Signalen herunter. Manchmal „verhakt“ sich der Chip dabei und bleibt zu unempfindlich. Das regelmäßige Zurücksetzen zwingt den Empfänger zur Neueinstellung, damit auch schwache Signale nicht verloren gehen. Dieser Wert sollte mindestens im Bereich von vielen Minuten liegen, um den Knoten nicht zu „schwächen“. Diese Funktion wird aber auch häufig durch eine 0 deaktiviert.

get multi.acks

set multi.acks <state>

get multi.acks

set multi.acks 0 oder 1

Abfrage ob Multi-ACKs eingeschaltet ist

Mit diesem Befehl lässt sich Multi-ACKs ein (1) oder ausschalten (0)

Der Zielknoten, für den die Nachricht bestimmt ist, schickt natürlich immer ein ACK zurück, damit der Empfänger weißt, dass die Nachricht angekommen ist. Wenn Multi-ACKs eingeschatet ist, bestätigt der Repeater auch für ein Paket, dass er nur weiterleitet, dass es angekommen ist.

Die Funktion sparsam einsetzen, sie macht nur zu Testzwecken sinn. Außerdem werden die Netze stark belastet wenn dies viele Repeater machen.

get flood.advert.interval

set flood.advert.interval <hours>

get flood.advert.interval

set flood.advert.interval 24

Zeigt das Zeitinterval an, in dem ein flood-Advert gesendet wird.

Setzt das Zeitinterval, in dem ein flood-Advert gesendet wird.

get advert.interval

set advert.interval <minutes>

get advert.interval

set advert.interval 60

Zeit das Zeitinterval an, in dem ein Zero-Hop-Advert gesendet wird.

Setzt das Zeitinterval, in dem ein Zero-Hop-Advert gesendet wird.

get flood.max

set flood.max <value>

get flood.max

set flood.max 5

Maximal zulässige Hops an einem Knoten abfragen

Maximal zulässige Hops für einem Knoten festlegen.

Die Logik funktioniert nun so: Der Companion liefert von der App eine gewünscht Anzahl an Hops mit. Bei jedem Weiterleiten wird dieser Wert um 1 reduziert. Sobald der Wert 0 erreicht wird das Paket verworfen.

Sollte bei einem Repeater ein Paket mit einem Hop-Zähler ankommen, die größer ist als der flood-max Wert des Repeaters , dann wird  der Hop-Zähler auf den max-Wert des Repeaters heruntergestutzt.

Dieses Vorgehen verhindert dass Pakete durch das ganze Netz geleitet werden.

get flood.max.unscoped

set flood.max.unscoped <value>

get flood.max.unscoped

set flood.max.unscoped 5

Wie flood.max wird aber nur für Pakete angewendet, die keine Region gesetzt haben.

Hiermit kann man Nachrichten ohne Region auf wenige Hops begrenzen

get flood.max.advert

set flood.max.advert <value>

get flood.max.advert

set flood.max.advert 5

Wie flood.max wird aber nur für Pakete von flood-Adverts angewendet.

Hiermit kann man flood-Adverts auf wenige Hops begrenzen

setperm <pubkey> <permissions> setperm <pubkey> <permissions> Räumt einem Companion mit den öffnetlichen Schlüssen <pubkey> folgende Rechte ein:

0: Guest
1: Read-only
2: Read-write
3: Admin

Welchen <pubkey> welche Rechte zugeteilt wurden, kann nur seriel abgefragt werden.

region allowf <name> region allowf de Mit diesem Befehl können auch über die Kommandozeile die Regionen gesetzt werden, welche durch den Repeater weitergeleitet werden. Pakete mit Regionen, die nicht in der Liste aufgeführt sind, werden verworfen. Wenn Pakete ohne Region weitergeleietet werden sollen, so nutzt man die Wildcard „*“
Für jede zu setzende Region ist dieser Befehl einmal auszuführen.
region denyf <name> region denyf hsk Mit diesem Befehl wird erreicht, dass z.B. die Region hsk nicht weitergeleitet sondern verworfen wird.

Bei region denyf * werden Pakte ohne Region verworfen

region get <name> region get de Für die Region <name> anzeigen lassen ob diese weitergeleitet wird oder nicht.
region home

region home <name>

region home

region home hsk

Setzt alle Einstellungen zurück.
region default

region default <name>

region default <null>

 

 

 

region default

region default hsk

region default <null>

 

 

 

Default Region eines Knoten abfragen

Setzt eine Default-Region für einen Knoten

Löscht die default-Region

Wenn ein Node eine Nachricht bzw. ein Flood-Packet ohne ausdrücklich angegebene Region erzeugt, soll standardmäßig die Region die default Region als Scope verwendet werden.

gps

gps <state>

 

 

gps

gps on | off

 

 

GPS Statgus abfragen

GPS ein oder ausschalten

Funktioniert natgürlich nur bei Modulen mit GPS-Epfänger

gps sync gps sync Die interne Zeit des Repeaters mit der GPS-Zeit synchronisieren. Funktioniert natgürlich nur bei Modulen mit GPS-Epfänger
gps setloc gps setloc Standort des Nodes via GPS setzen
gps advert

 

gps advert <policy>

 

 

gps advert

 

gps advert <policy>

 

 

Zeigt die aktuell konfigurierte Richtlinie (Policy) an, wie oder ob GPS-Standortdaten über das Mesh-Netzwerk geteilt werden.

Legt fest, nach welcher Richtlinie der eigene Standort an das Mesh gesendet wird.

none: Standort in Adverts nicht teilen
share: gps Standort in Adverts teilen
prefs: Standort aus Einstgellungen in Adverts teilen