LoRaWAN
LoRaWAN steht für Long Range Wide Area Network und ist ein energieeffizientes Funk-Protokoll für das Internet der Dinge (IoT). Es ermöglicht die Übertragung kleiner Datenmengen über große Entfernungen mit extrem geringem Energieverbrauch, weshalb batteriebetriebene Geräte wie Sensoren lange Laufzeiten von bis zu 10 Jahren erreichen können. LoRaWAN ist ideal für Anwendungen wie Smart Cities, Smart Farming und Industrie 4.0, bei denen eine vernetzte Erfassung von Daten aus dem Umfeld nötig ist.
Um LoRaWAN nutzen zu können, benötigen Sie
- ein LoRaWAN-fähiges Gerät (Node / Sensor)
- ein Gateway und
- einen LoRaServer mit Netzwerkverbindung.
Die Geräte senden ihre Daten an das Gateway, das diese dann (z.B. mittels Python-Script) an den Netzwerkserver überträgt.
ELS-Professional unterstützt LoRaWAN durch Empfang von GPS-Koordinaten.
1. In der Geräteverwaltung wird bei der Geräteart eines neuen Gerätes "LaRaWAN" eingestellt:
Nach Eingabe der Node-ID kann dieses Gerät einem Einsatzmittel per Drag&Drop zugeteilt werden. Mehr muss in ELS nicht eingestellt werden.
2. Was braucht man
Gerät / Software |
Beschreibung |
🟦 Meshtastic-Gerät (z. B. T-Beam oder T-Echo) |
Sendet LoRa-Mesh-Daten (z. B. GPS-Position) |
💻 Computer oder Raspberry Pi |
Läuft das Python-Skript, das die Daten weiterleitet |
🔌 USB-Kabel |
Verbindung zwischen Gerät und Computer |
🐍 Python (Version 3.9 oder höher) |
Zum Ausführen des Skripts |
🌐 Internet- oder Netzwerkzugang |
Damit das Skript Daten an den Zielserver senden kann |
3. Python installieren
unter Windows
- Lade Python herunter:
👉 https://www.python.org/downloads/
- Wichtig: Beim Installieren Häkchen setzen bei
✅ “Add Python to PATH”
- Nach der Installation:
Öffne die Eingabeaufforderung (cmd) und tippe:
python --version
Wenn etwas wie Python 3.12.x erscheint → alles ok ✅
4. Ordner anlegen
Erstelle auf deinem PC einen Ordner, z. B.
C:\meshtastic\
Öffne diesen Ordner und lege eine neue Datei an mit dem Namen:
meshtastic_gps_forward.py
5. Python-Script für den Empfang der Daten mit der Weiterleitung an ELS:
Kopiere diesen Text und füge ihn dort ein:
import meshtastic
from meshtastic.serial_interface import SerialInterface
import pandas as pd
import time
import socket
import json
def get_gps_data(nodes):
gps_data = []
for node_id, node in nodes.items():
position = node.get('position')
user = node.get('user', {}).get('longName', 'Unknown')
entry = {
"Quelle": "LORAWAN",
"Node ID": node_id,
"Name": user,
"Battery": node.get('batteryLevel', 'N/A')
}
if position:
entry.update({
"Latitude": position.get('latitude', 'N/A'),
"Longitude": position.get('longitude', 'N/A'),
"Altitude": position.get('altitude', 'N/A'),
})
else:
entry.update({
"Latitude": "No GPS",
"Longitude": "No GPS",
"Altitude": "N/A",
})
gps_data.append(entry)
return gps_data
# Verbindung zu Meshtastic
interface = SerialInterface()
# Ziel-IP und Port anpassen!
###################################################################################
TCP_IP = "192.168.0.10" # IP-Adresse des Zielservers, auf dem ELS als Server läuft (BEISPIEL)
###################################################################################
TCP_PORT = 4750
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Verbinde mit Server...")
try:
sock.connect((TCP_IP, TCP_PORT))
print("✅ TCP-Verbindung hergestellt.")
print("Verbunden mit Meshtastic-Gerät...")
while True:
nodes = interface.nodes
gps_data = get_gps_data(nodes)
json_data = json.dumps(gps_data)
print("\n📍 Aktuelle GPS-Daten:")
for n in gps_data:
print(n)
try:
sock.sendall(json_data.encode("utf-8"))
print("➡️ Daten erfolgreich gesendet.")
except Exception as e:
print(f"❌ Fehler beim Senden: {e}")
time.sleep(5)
except KeyboardInterrupt:
print("\n⏹️ Programm beendet.")
except Exception as e:
print(f"❌ Fehler: {e}")
finally:
interface.close()
sock.close()
6. Benötigte Software installieren
Öffne wieder die Eingabeaufforderung und gib ein:
cd C:\meshtastic
pip install meshtastic pandas
Wenn alles korrekt installiert wurde, erscheinen keine Fehlermeldungen.
7. Gerät anschließen
- Stecke das Meshtastic-Gerät per USB an den Computer.
- Warte ein paar Sekunden, bis es erkannt wurde.
(Windows zeigt es unter „COM3“ oder ähnlich an.)
Wenn das Gerät nicht automatisch erkannt wird, kann man das Skript anpassen:
interface = SerialInterface(devPath="COM3")
8. Skript starten
Im selben Fenster:
python meshtastic_gps_forward.py
Wenn alles funktioniert, sieht man etwas wie:
Verbinde mit Server...
✅ TCP-Verbindung hergestellt.
Verbunden mit Meshtastic-Gerät...
📍 Aktuelle GPS-Daten:
{'Node ID': 1234, 'Name': 'Tracker1', 'Latitude': 52.1, 'Longitude': 13.4}
➡️ Daten erfolgreich gesendet.
9. Daten auf dem Server empfangen
Der Server (PC mit ELS-Professional)
lauscht auf Port 4750 und nimmt die JSON-Daten entgegen.
Ist die übertragene Node-ID in den ELS-Geräteeinstellungen einem Einsatzmittel zugeordnet, so wird dies nun auf der Karte in ELS angezeigt.
10. Programm automatisch starten (optional)
unter Windows:
- Erstelle eine Verknüpfung zu:
python.exe "C:\meshtastic\meshtastic_gps_forward.py"
Lege die Verknüpfung in den Autostart-Ordner:
shell:startup
unter Raspberry Pi:
Öffne die Konsole und tippe:
crontab -e
Füge unten hinzu:
@reboot python3 /home/pi/meshtastic_gps_forward.py &
Damit ist das System einsatzbereit.
Das Skript läuft im Hintergrund, liest die GPS-Daten aus dem Meshtastic-Netz
und sendet sie regelmäßig an ELS.