Der zweite Teil beschäftigt sich mit dem technischen Versand einer Nachricht, oder anders ausgedrückt, was passiert zwischen einem Companion-Node als Sender, einem Repeater und einem Companion-Node, der die Nachricht empfängt.
Ich konzentriere mich bei der Beschreibung nur auf die zwei Rollen Companion und Repeater. In der Meshcore-Welt gibt es noch eine weitere Rolle, den Room Server. Darauf gehe ich nicht ein. Um die Rollen zu verstehen, und wann welche Rolle wie funktioniert, ist hier ein Überblick:
Der Companion Node (Der persönliche Begleiter):
Dies ist das Gerät, das du in der Tasche hast oder das auf deinem Schreibtisch steht.
Zusammensetzung: Er besteht meist aus der LoRa-Hardware (z. B. Heltec V3 oder T-Beam) und einem Endgerät (Smartphone, Tablet oder PC).
Verbindung: Die Verbindung zwischen Mensch und Node erfolgt meist über Bluetooth (BT)
Aufgabe: Er dient als Ein- und Ausgabegerät für Nachrichten. Er speichert die Nachrichten lokal in der App. Er sendet deine Position (GPS), wenn gewünscht.
Energie: Oft auf Mobilität ausgelegt (Akku), wird bei Nichtbenutzung oft in den Schlafmodus versetzt.
Ein Repeater (oft auch als „Router“ konfiguriert) ist ein unbemannter Knotenpunkt, der strategisch platziert wird.
Zusammensetzung: Nur die LoRa-Hardware, oft wetterfest verbaut und an einem hohen Punkt (Dach, Berg, Mast).
Verbindung: Er hat meist keine Verbindung zu einem Smartphone. Er arbeitet völlig autark.
Aufgabe: Reichweitenvergrößerung: Er empfängt Pakete von schwächeren Companion Nodes und sendet sie mit voller Kraft erneut aus.
Netzstabilität: Er sorgt dafür, dass Nachrichten „um Hindernisse herum“ geleitet werden.
Energie: Meist auf Dauerbetrieb ausgelegt (Solarpanel + großer Pufferakku).
Wie wandert die Nachricht technisch durch das Netz? Vereinfachte Darstellung

1: Die Paketierung (Encapsulation)
2: Das „Listen Before Talk“ (Kollisionsvermeidung)
3: Die Ausbreitung via „Flood Routing„
4: Zielerreichung und De-Duplizierung
5: Dekapsulierung
6: Die Bestätigung (Acknowledgment – ACK)
Um zu verstehen, wie die Nachricht „wandert“, müssen wir uns ansehen, was im Inneren der Hardware passiert, während die Funkwellen fliegen.
1. Die Paketierung (Encapsulation):
Bevor die Nachricht gesendet wird, muss sie „verpackt“ werden. Das Smartphone schickt den Text via Bluetooth an den Node. Dieser erstellt ein Datenpaket:
Header: Enthält Metadaten (Wer sendet? Wer soll empfangen? Paket-ID).
Payload: Der eigentliche Inhalt (deine Nachricht), meist mit AES-256 verschlüsselt.
CRC (Checksum): Eine Prüfsumme, damit der Empfänger später feststellen kann, ob das Paket beim Transport beschädigt wurde.
2. Das „Listen Before Talk“ (Kollisionsvermeidung):
Bevor der Node sendet, hört er kurz in das Frequenzband hinein (CAD – Channel Activity Detection).
Ist der Kanal frei? Dann wird gesendet.
Ist der Kanal belegt? Der Node wartet eine zufällige Zeitspanne (Random Backoff) und versucht es erneut. Das verhindert, dass sich zwei Nodes gegenseitig „überschreien“.
3. Die Ausbreitung via „Flood Routing„:
Aussendung: Node A sendet das Paket als „Broadcast“ in alle Richtungen.
Empfang & Prüfung: Jeder Node in Reichweite empfängt das Paket und prüft: Habe ich dieses Paket anhand der Paket-ID schon einmal gesehen? Wenn ja: Ignorieren.
Ist das Hop-Limit größer als 0? Wenn ja: Weiter zum nächsten Schritt.
Weiterleitung: Der Node dekrementiert (verringert) das Hop-Limit um 1 und sendet das Paket nach einer kurzen, zufälligen Verzögerung erneut aus.
Warum die Verzögerung? Wenn alle Repeater exakt gleichzeitig antworten würden, käme es zu Funkstörungen. Durch Millisekunden-Verzögerungen „staffeln“ sich die Nachrichten.
4. und 5. Zielerreichung, De-Duplizierung, und Dekapsulierung:
Da die Nachricht wie eine Welle durch das Netz „flutet“, erreicht sie den Ziel-Node oft über mehrere Wege gleichzeitig oder kurz hintereinander.
De-Duplizierung: Der Ziel-Node erkennt an der ID, dass es sich um dieselbe Nachricht handelt. Er verarbeitet nur das erste fehlerfreie Paket und verwirft die Kopien, die Bruchteile von Sekunden später eintreffen.
Dekapsulierung: Der Node entschlüsselt die Payload und schickt sie via Bluetooth an das Handy des Empfängers.
Beispiel-Payload: 2C20D7D26A2EEC409896B062DFBD8CB39A725CEA
6. Bestätigung – (Acknowledgment – ACK):
Damit du sicher sein kannst, dass die Nachricht angekommen ist, sendet der Ziel-Node ein winziges ACK-Paket zurück. Dieses wandert auf demselben Weg (via Mesh-Hops) zurück zum Absender.
In deiner App erscheint dann Delivered oder Heard x Repeats neben der Nachricht.
Meshcore ist „Air-Only“,d. h. es erfolgt keine Anbindung an MQTT. Deshalb findest du in der grundlegenden Konfiguration von Meshcore keine Felder für „WLAN-Passwort“ oder „Gateway-IP“. Es ist technisch blind für das Internet.
Im dritten Teil der Serie geht es um Frequenzen und Ausbreitung – Physik ist bei LoRa alles.
Bei Fragen stehe ich euch gerne zur Verfügung. Entweder per Funk (DB0FT, DMR TG 26269) oder auch gerne per E-Mail (mario.jeschke@gmail.com)
73, dm1mj, Mario
Teil 1: Grundlagen – Was ist LoRa und woher kommt Meshcore?
[…] Teil 2 – Wie wird eine Nachricht zwischen Companion- und Repeater-Nodes technisch versendet […]