DEV Community

Uhltak Therestismysecret
Uhltak Therestismysecret

Posted on

Edge Computing mit LoRaWAN: Sensordaten lokal erfassen, verarbeiten und visualisieren

Hook – Warum wir die Cloud zurückweisen

Stellen Sie sich vor, Sie betreiben ein Weizenfeld mit 150 000 Sensoren, die Bodenfeuchte, Temperatur und Nährstoffgehalt messen. Jeder Milliseconden‑Ping wird in ein zentrales Cloud‑Dashboard gestreamt – bis plötzlich bricht das Internet zusammen. Ihre Ernte geht dahin. Genau das passiert heute noch zu oft: Unternehmen vertrauen blind auf Cloud‑Dienste, obwohl das Netzwerk das schwächste Glied ist.

Edge Computing mit LoRaWAN ist die Gegenbewegung. Statt Daten in die Cloud zu schippern, bleiben sie lokal, werden in Echtzeit analysiert und nur das wirklich Notwendige wird extern gesendet – oder gar nicht. In diesem Artikel zeige ich Ihnen Schritt für Schritt, wie Sie ein komplett autonomes LoRaWAN‑Edge‑Setup bauen, das in 2026 noch skalierbar, sicher und kosteneffizient ist.


1. Warum LoRaWAN + Edge Computing?

Erklärung

LoRaWAN ist ein Low‑Power‑Wide‑Area‑Network (LPWAN) mit Reichweite von bis zu 15 km im ländlichen Raum. Es ermöglicht Batterielaufzeit von 10 Jahren für Sensoren, weil die Übertragung in kurzen Burst‑Paketen erfolgt. Edge Computing hingegen verarbeitet Daten dort, wo sie entstehen – meist am Netzwerk‑Gateway oder direkt am Sensor.

Kombiniert man beides, erhalten Sie:

  1. Reduzierte Latenz – Entscheidungen innerhalb von Sekunden, nicht Minuten.
  2. Datenschutz – Sensible Betriebsdaten bleiben im eigenen Rechenzentrum.
  3. Kostenkontrolle – Keine ständige Cloud‑Bandbreite‑Gebühr, nur lokales Speicher‑ und Compute‑Budget.

Beispiel

Ein Unternehmen in Süddeutschland installierte 12 LoRa‑Gateways (RAK2245) auf Kirchtürmen und nutzte einen Raspberry Pi 4 + Heatsink als Edge‑Node. Die Sensoren ließen sich über den The Things Network (TTN) Community‑Server verbinden, aber die Daten wurden sofort in ein lokales InfluxDB‑Cluster geschrieben – nie in die TTN‑Cloud. Die durchschnittliche Latenz von Messwert bis Alarm lag bei 2,3 s, verglichen mit 12 s bei einer herkömmlichen Cloud‑Pipeline.

Einschätzung

Der Trade‑off ist klar: Sie geben etwas an Netzwerk‑Komplexität ab, gewinnen dafür aber entscheidende Unabhängigkeit. Für industrielle IoT‑Anwendungen ist das ein echter Game‑Changer – vor allem, wenn regulatorische Vorgaben (z. B. GDPR‑by‑Design) lokale Datenverarbeitung verlangen.


2. Hardware‑ und Netzwerk‑Setup

Erklärung

Ein robustes Edge‑Setup besteht aus drei Bausteinen:

  • LoRaWAN‑Gateway – empfängt das Funksignal und leitet es weiter.
  • Edge‑Server – verarbeitet, speichert und orchestriert Daten.
  • Back‑haul‑Verbindung – meist Ethernet oder LTE, für gelegentliche Cloud‑Synchronisation.

Beispiel 1 – Gateway‑Installation

Ich setze das RAK2245 Pi HAT auf einem Raspberry Pi 4 Model B. Die nötigen Pakete werden über apt installiert:

sudo apt update && sudo apt install -y git build-essential libloragateway-dev
# Klonen des RAK‑Gateway‑Repos
git clone https://github.com/RAKWireless/RAK2245-Pi-HAT.git
cd RAK2245-Pi-HAT
# Firmware flashen (SPI‑Interface)
sudo ./flash.sh
Enter fullscreen mode Exit fullscreen mode

Danach konfigurieren wir das packet‑forwarder für den EU‑868‑Bandplan:

{
  "gateway_ID": "eui-70b3d57ed001abcd",
  "server_address": "router.eu.thethings.network",
  "serv_port_up": 1700,
  "serv_port_down": 1700,
  "listen": "0.0.0.0",
  "log_level": "INFO"
}
Enter fullscreen mode Exit fullscreen mode

Der Service wird mit systemd gestartet:

sudo cp packet_forwarder.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable packet_forwarder && sudo systemctl start packet_forwarder
Enter fullscreen mode Exit fullscreen mode

Einschätzung

Die Installation dauert in der Regel 30 Minuten, vorausgesetzt das Pi‑Image ist bereits auf dem neuesten Stand. Der entscheidende Punkt ist die Kabelqualität für das SPI‑Interface – ein minderwertiges Jumper‑Kabel führt zu Paketverlusten und erhöht die Fehlerrate auf über 5 %.


3. Lokale Datenpipeline – InfluxDB + Telegraf

Erklärung

Sobald das Gateway Daten an den Edge‑Server sendet, benötigen wir eine Zeitreihendatenbank, die schnell einfügbar und abfragbar ist. InfluxDB 2.x ist dafür ideal, weil es ein leichtgewichtiges HTTP‑API bietet und nativ Flux‑Abfragen unterstützt.

Telegraf übernimmt das Sammeln, Parsen und Weiterleiten der LoRa‑Payloads. Wir nutzen das mqtt_consumer‑Plugin, das die Daten vom Packet‑Forwarder‑MQTT‑Broker abgreift.

Beispiel 2 – InfluxDB & Telegraf Konfiguration

# InfluxDB 2.x via Docker (persistenter Volume)
docker run -d \
  --name influxdb \
  -p 8086:8086 \
  -v influxdb-data:/var/lib/influxdb2 \
  influxdb:2.7
Enter fullscreen mode Exit fullscreen mode

Erstelle einen Bucket sensor_data und ein Token über das Web‑UI (Port 8086).

Telegraf‑Config (/etc/telegraf/telegraf.conf):

[agent]
  interval = "10s"
  round_interval = true

[[inputs.mqtt_consumer]]
  servers = ["tcp://127.0.0.1:1883"]
  topics = ["#"]
  qos = 0
  connection_retry_interval = "30s"
  # Payload decoding – LoRaWAN payload is base64 encoded
  data_format = "json"
  json_string_fields = ["payload"]

[[outputs.influxdb_v2]]
  urls = ["http://localhost:8086"]
  token = "YOUR_INFLUX_TOKEN"
  organization = "my-org"
  bucket = "sensor_data"
Enter fullscreen mode Exit fullscreen mode

Starten Sie Telegraf:

sudo systemctl enable telegraf && sudo systemctl start telegraf
Enter fullscreen mode Exit fullscreen mode

Jetzt fließen sämtliche Sensordaten in den Bucket sensor_data. Eine Beispiel‑Flux‑Abfrage, um die letzten 5 Minuten der Bodenfeuchte zu visualisieren:

from(bucket:"sensor_data")
  |> range(start: -5m)
  |> filter(fn: (r) => r._measurement == "soil_moisture")
  |> mean()
  |> yield(name:"mean_moisture")
Enter fullscreen mode Exit fullscreen mode

Einschätzung

Die Kombination aus Docker‑InfluxDB + native Telegraf ist äußerst stabil. Der einzige Stolperstein ist das JSON‑Parsing des LoRa‑Payloads – unterschiedliche Sensor‑Hersteller nutzen unterschiedliche Feldnamen. Ein einheitliches Mapping‑Script (z. B. in Python) kann hier Abhilfe schaffen.


4. Visualisierung & Alerting mit Grafana

Erklärung

Grafana ist das de‑facto‑Tool für Dashboards. In Kombination mit InfluxDB kann man Echtzeit‑Grafiken, Trend‑Analysen und Schwellenwert‑Alarme bauen, die per E‑Mail oder SMS ausgelöst werden.

Beispiel 3 – Grafana‑Installation & Dashboard

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -e "GF_SECURITY_ADMIN_PASSWORD=SuperSecret123" \
  -v grafana-data:/var/lib/grafana \
  grafana/grafana:10.2.0
Enter fullscreen mode Exit fullscreen mode

Im Grafana‑UI (http://localhost:3000) melden Sie sich an, fügen Sie eine InfluxDB‑Datenquelle hinzu und nutzen das zuvor erstellte Token.

Ein einfaches Dashboard‑Panel für die Bodenfeuchte:

  • Query: from(bucket:"sensor_data") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "soil_moisture")
  • Visualization: Time series, Linienfarbe Grün, Schwellenwert‑Markierung bei 30 %.

Alert‑Rule (Grafana 8+):

alert:
  name: Low Soil Moisture
  condition:
    type: reduce
    query: A
    reducer: avg
    evaluator:
      type: lt
      threshold: 30
  for: 5m
  notifications:
    - contactPoint: email
      message: "Bodenfeuchte < 30 % seit 5 Minuten  Bewässerung prüfen"
Enter fullscreen mode Exit fullscreen mode

Einschätzung

Grafana liefert sofortige Einblicke und lässt sich über Webhook‑Integrationen (z. B. zu Home‑Assistant) in die physische Steuerung einbinden. Der kritische Punkt ist das Persistieren von Dashboard‑JSON; ohne Versionierung gehen Konfigurationen bei Updates leicht verloren.


5. Häufige Fehler und wie man sie vermeidet

Fehler Ursache Gegenmaßnahme
1. Paketverlust beim SPI‑Interface Billige Jumper‑Kabel, zu lange Kabellängen Verwenden Sie kurze, abgeschirmte Kabel oder ein Solder‑Board für das HAT.
2. Fehlendes Zeit‑Synchronisation Edge‑Server ohne NTP Installieren Sie systemd-timesyncd und prüfen Sie die UTC‑Zeit täglich.
3. Unklare Payload‑Struktur Unterschiedliche Sensor‑Hersteller Definieren Sie ein Schema‑Registry (z. B. JSON‑Schema) und setzen Sie ein Transform‑Script ein.
4. Ressourcen‑Engpässe bei InfluxDB Zu kleine Docker‑Speicher‑Limits Setzen Sie --memory=2g und nutzen Sie influxdb‑Retention‑Policies für ältere Daten.
5. Fehlende Alert‑Persistenz Grafana‑Alert ohne Notification‑Channel Erstellen Sie einen Contact Point mit Retry‑Policy und testen Sie via curl.

6. Fazit – Der nächste Schritt für Ihr Edge‑LoRaWAN‑Projekt

LoRaWAN + Edge Computing ist heute kein futuristisches Konzept mehr, sondern ein reifes, produktionsfähiges Toolkit. Die drei Beispiele (Gateway‑Flash, InfluxDB‑Pipeline, Grafana‑Dashboard) zeigen, dass Sie mit relativ günstiger Hardware (≈ 150 € pro Gateway) ein vollständig autonomes System bauen können – ohne Cloud‑Abhängigkeit, mit hoher Datensicherheit und niedrigen Betriebskosten.

Ihr Action‑Plan:

  1. Pilot‑Installation: Setzen Sie ein einzelnes RAK2245‑Gateway und einen Edge‑Server auf. Erfassen Sie mindestens drei unterschiedliche Sensortypen (Feuchte, Temperatur, Luftqualität).
  2. Datenpipeline automatisieren: Schreiben Sie ein kleines Bash‑Script, das Telegraf‑ und InfluxDB‑Container bei System‑Boot startet und einen Health‑Check via curl ausführt.
  3. Alert‑Policy live schalten: Konfigurieren Sie Grafana‑Alarme und verbinden Sie sie mit einem Telegram‑Bot für Sofortnachrichten.
  4. Skalieren: Nach erfolgreichem Pilot‑Rollout multiplizieren Sie das Setup auf weitere Felder, nutzen Sie k3s für Orchestrierung und Prometheus für System‑Metriken.

Sie haben jetzt das Handwerkszeug, um im Jahr 2026 ein Edge‑LoRaWAN‑System zu betreiben, das nicht nur funktional, sondern nachhaltig und zukunftssicher ist. Packen Sie’s an – die Felder warten nicht!

Top comments (0)