Drei Werkzeuge, drei verschiedene Fragen. Trace zeigt den Weg mit SNR pro Hop. Ping sagt nur, ob überhaupt etwas ankommt. Neighbors zeigt, wen ein Repeater selbst hört — und ist das einzige davon, das ohne Companion im Pfad auskommt.
Alles hier ist am Quellcode geprüft, Stand August 2026.
Ein MeshCore-Trace ist kein traceroute. Es gibt keine Session, keine Retries, keinen Stack dahinter.
Was tatsächlich passiert (Mesh.cpp):
isHashMatch auf seine Position im Pfad), und hängt seinen gemessenen SNR an: pkt->path[pkt->path_len++] = (int8_t)(pkt->getSNR()*4) — SNR in Viertel-dBDie nächste Analogie aus der IP-Welt ist ein Ping mit Strict Source Route und Record Route, nicht traceroute über SSH.
| Die erste Meile ist immer Teil der Messung | Couch → Repeater hängt mit im Pfad. Das Segment Repeater → Ziel lässt sich aus den Hop-Werten herauslesen, aber nie isoliert messen |
| Die erste Meile ist Single Point of Failure | Wackelt Couch → Repeater, scheitert der ganze Trace — auch wenn Repeater → Ziel perfekt steht |
| Zustandslos | Ein Paket, keine Wiederholung. Geht es verloren, gibt es kein Ergebnis, und man weiß nicht, welcher Hop es geschluckt hat. Herausfinden lässt sich das nur durch schrittweises Verkürzen des Pfads |
| Der Rückweg muss mit angegeben werden | Es gibt keine Verbindung, über die eine Antwort einfach zurückfließt. Deshalb tippt man in der App Hin- und Rückweg |
Das ist kein Designfehler, sondern die richtige Wahl für 868 MHz: ein Trace = genau ein Paket auf der Luftschnittstelle. Eine interaktive Session wäre bei Sendezeitbegrenzung und Duty Cycle nicht vertretbar.
Kontaktliste → Kontakt öffnen → drei Punkte rechts oben → Trace bzw. Ping.
Bei einer Remote-Anmeldung am Repeater fehlt dieses Menü — dort steht nur „Pfad zurücksetzen". Zum Tracen und Pingen darf man nicht am Repeater angemeldet sein. Das Remote-Login ist ein eigener Modus: einzelne Kommandopakete mit Antwort, keine Session.
Das ist die Frage, an der sich die Diskussion regelmäßig aufhängt: Wie messe ich die Strecke Repeater → Villach, ohne dass mein Handgerät im Pfad hängt?
Antwort: mit Bordmitteln gar nicht. Die Repeater-Firmware hat kein trace und kein ping. Das ist die vollständige Befehlsliste (CommonCLI.cpp):
advert advert.zerohop board clear stats
clkreboot clock clock sync erase
get <key> gps gps advert gps off
gps on gps setloc gps sync log
log erase log start log stop neighbors
neighbor.remove password poweroff powersaving
powersaving on powersaving off reboot region
sensor list sensor get sensor set set <key>
shutdown start ota tempradio time
ver
Der Companion ist immer der Auslöser. Ein Repeater misst nichts aktiv — er kann nur berichten, was er ohnehin gehört hat. Und genau dafür gibt es neighbors.
neighbors: was der Repeater selbst hörtDer nützlichste Befehl für die Frage „wie steht mein Standort da", und er läuft ohne Companion im Pfad.
Ausgabeformat pro Zeile, aus formatNeighborsReply():
<4 Byte Pubkey hex>:<Sekunden her>:<SNR>
-none-Einzelnen Eintrag löschen: neighbor.remove <pubkey-hex>
Damit beantwortet man Fragen wie „hört mein Repeater den Nachbarort überhaupt" sauber und ohne die eigene erste Meile zu messen.
advert und advert.zerohop| Befehl | Wirkung |
|---|---|
advert |
Flood-Advert — wird vom ganzen Netz weitergereicht |
advert.zerohop |
Advert, das nicht weitergeleitet wird — nur direkte Nachbarn hören es |
Für Reichweitentests der ersten Meile ist advert.zerohop das saubere Werkzeug: Wer es hört, hört den Repeater direkt, ohne Umweg über andere.
tempradio: Funkparameter gefahrlos testentempradio <freq> <bw> <sf> <cr> <minuten>
Setzt die Funkparameter vorübergehend und fällt nach der angegebenen Zeit von selbst zurück. Genau dafür gemacht, einen anderen Preset auszuprobieren, ohne sich auszusperren.
Zulässige Bereiche: Frequenz 150–2500 MHz, Bandbreite 7–500 kHz, SF 5–12, CR 5–8, Zeit größer null.
Beispiel — zehn Minuten mit breiterer Bandbreite testen:
tempradio 869.618 250 8 8 10
Bleibt die Verbindung auf 250 kHz stehen und auf 62,5 kHz nicht, liegt es am Frequenzversatz des Senders und nicht an der Konfiguration. Das ist der entscheidende Test bei Geräten mit SX1276 ohne TCXO — siehe Geräteliste.
clock, time und die Falle clkreboot| Befehl | Wirkung |
|---|---|
clock |
zeigt Datum und Uhrzeit |
clock sync |
übernimmt die Zeit aus dem Kommandopaket des Companions |
time <epoch> |
setzt die Zeit auf Unix-Sekunden |
clkreboot |
setzt die Uhr auf den 15. Mai 2024 zurück und startet neu |
Die Uhr kann nicht zurückgestellt werden.
timeundclock syncantworten mitERR: clock cannot go backwards. Wer zurück muss, kommt nur überclkrebootdorthin — und landet dann auf dem 15. Mai 2024.
Warum das wichtig ist: Adverts tragen den Zeitstempel der Uhr des Senders, und der Empfänger verwirft jedes Advert, das nicht neuer ist als das zuletzt gespeicherte — als Replay-Schutz, stillschweigend. Ein Repeater mit falsch stehender oder zurückgesetzter Uhr wird dadurch für alle unsichtbar, die ihn schon einmal gesehen haben.
Steht bei einem Kontakt in der App ein Advert vom 15. Mai 2024, ist das keine Zufallszahl, sondern genau dieser Rücksetzwert. Fehlersuche dazu → Kein Empfang?
| Frage | Werkzeug |
|---|---|
| Kommt überhaupt etwas an? | Ping |
| Welchen Weg nimmt es, und wie gut ist jeder Hop? | Trace |
| Wen hört mein Repeater direkt? | neighbors am Repeater |
| Wer hört meinen Repeater direkt? | advert.zerohop, dann bei den anderen nachsehen |
| Liegt es am Preset oder an der Hardware? | tempradio mit breiterer Bandbreite |
| Warum sieht mich niemand mehr? | clock prüfen |
Verwandte Seiten: Kein Empfang? · Repeater Setup Guide · Node-Karte · Mobil und portabel
Start · Schnellstart · Funkeinstellungen · Kanäle · Geräte · Rollen · Repeaterliste · Repeater Setup Guide · Observer · meshinfra · Karte · FAQ · Glossar · Mitmachen · Alle Themen