Welche Daten schickt Meshtastic – und was macht man damit?
Bisher habe ich die Positionsdaten von Meshtastic an Traccar weitergeleitet. Das ist vermutlich der einfachste Weg, um Meshtastic-Nodes zu verfolgen, aber definitiv nicht der beste. Neue oder fremde Nodes müssen jedes Mal manuell in Traccar angelegt werden, außerdem bietet Traccar nur eingeschränkte Möglichkeiten, zusätzliche Informationen zu speichern.
Um mehr Freiheit bei der Verarbeitung der Daten zu haben, setze ich stattdessen auf PostGIS als Datenbank. Da n8n bereits verwendet wird, um Webhooks für Divera 24/7 und Leaflet bereitzustellen, nutze ich n8n auch, um die Meshtastic-Daten vom MQTT-Server abzurufen und direkt in PostGIS zu speichern. Dadurch kann vollständig auf Node-RED verzichtet werden.
Bevor man die Daten sinnvoll speichern kann, muss man jedoch wissen, welche Informationen überhaupt ankommen. Diese lassen sich beispielsweise direkt in n8n anzeigen.
Meshtastic sendet hauptsächlich drei Arten von Nachrichten:
- nodeinfo
- position
- text
Bei nodeinfo werden der lange und der kurze Name eines Nodes sowie Informationen zum Gerät übertragen.
Die position-Nachricht enthält die Positionsdaten des Nodes.
Über text werden Nachrichten zwischen den Teilnehmern verschickt.
Ein Problem dabei: Nicht jede Nachricht enthält alle Informationen. In Textnachrichten fehlen beispielsweise der Name und Positionsdaten. Deshalb muss man zusätzliche Verarbeitungsschritte einplanen. Die Knotennummer (Node ID) wird jedoch immer übertragen und kann als eindeutiger Schlüssel genutzt werden, um alle Informationen miteinander zu verknüpfen.
Namenskonvention
Meshtastic stellt zwei Namen für einen Node zur Verfügung:
- einen langen Namen
- einen kurzen Namen mit maximal vier Zeichen
Damit eine Zusammenarbeit reibungslos funktioniert, sollten alle Einheiten ihre Nodes nach einem einheitlichen Schema benennen.
Eine allgemein etablierte Namenskonvention für Meshtastic ist mir bisher nicht bekannt. Daher habe ich ein eigenes Schema entwickelt.
Den kurzen Namen nutze ich zur Zuordnung der Layer in Leaflet.
Beispiele:
- ff → Layer Feuerwehr
- horg → Layer Hilfsorganisationen
Der lange Name enthält zuerst den Typ und danach den vollständigen Funkrufnamen, zum Beispiel:
RTW Akkon Göttingen 50-85-1ELW1 Akkon Göttingen 50-11-1
Das erste Wort definiert dabei den Typ und bestimmt später auch das verwendete Icon in der Karte.
Sonderfall: Patienten
Eine besondere Herausforderung stellt die Darstellung von Patienten dar. Diese hängt stark davon ab, wie die Daten später weiterverarbeitet werden.
Als kurzer Name würde sich pat anbieten, damit diese Nodes automatisch im Patienten-Layer erscheinen.
Beim langen Namen gibt es mehrere mögliche Ansätze:
Zuordnung zum Fahrzeug
PAT 50-85-1/1PAT 50-85-1/2
Fortlaufende Nummer
PAT LKGOE 001PAT LKGOE 002
Welche Variante sinnvoller ist, hängt davon ab, wie die Patienten später im System verwaltet werden. Wichtig ist vor allem, dass sich die Node-Namen während eines Einsatzes schnell der jeweiligen Patientennummer zuordnen lassen. Eine endgültige Lösung dafür habe ich aktuell noch nicht.
Fazit
Durch diese Struktur lassen sich Meshtastic-Nodes bereits beim Anlegen mit zusätzlichen Informationen wie Typ, Name und Layerzuordnung versehen. Weitere Daten, zum Beispiel Statusinformationen, können ebenfalls ergänzt werden.
Noch offen ist allerdings die Frage, wie die automatische Zuordnung eines Nodes zum richtigen Patienten erfolgen soll. Eine manuelle Zuordnung wäre möglich, ist aber langfristig nicht das Ziel.