Handbuch & FAQ
Alles über den LoRa NextGEN Mapper — Funktionen, Einrichtung und häufige Fragen.
1 · Was ist der LoRa NextGEN Mapper?
Der LoRa NextGEN Mapper ist eine selbst-gehostete Coverage-Map für The Things Network (TTN) / The Things Stack (TTS). Er nimmt LoRaWAN-Uplinks mit GPS-Koordinaten entgegen (via Webhook oder MQTT) und zeigt die Signalabdeckung auf einer interaktiven Leaflet-Karte.
- Öffentliche Karten-Lookup per DevEUI oder Gateway-ID — kein Login nötig.
- Signalstärke (RSSI), Spreading Factor und optional Sensor-Werte (Temperatur, Luftfeuchte, Luftdruck, Batterie) werden pro Uplink gespeichert und farbcodiert auf der Karte angezeigt.
- Mehrere Nutzer können eigene TTS-Anwendungen verbinden (nach Registrierung).
2 · Startseite & Übersichtskarte
Die Startseite zeigt drei Kennzahlen (Gateways, Geräte, Uplinks gesamt) sowie eine Übersichtskarte mit allen in den letzten 7 Tagen aktiven Gateways und Geräten.
- ● Orange Punkte = Gateways (größer, fester Standort).
- ● Blaue Punkte = Geräte / Tracker (kleiner, mobil).
- Klick auf einen Punkt öffnet ein Popup mit Name, ID, Uplink-Anzahl und letztem Empfang.
- Klick auf den Popup-Link navigiert zur Detail-Seite des Geräts / Gateways.
- Die Karte passt sich automatisch an alle sichtbaren Punkte an (Auto-Fit).
Im Suchfeld oben kann direkt eine DevEUI eingegeben werden (Hexadezimal, 16 Zeichen). Nach dem Absenden gelangt man zur Geräte-Seite.
3 · Geräte-Suche & Coverage-Map
URL-Schema: /device/{DevEUI} — z. B.
/device/0102030405060708.
Karte
- Jeder Uplink mit GPS-Fix wird als farbiger Kreis eingetragen.
- Farb-Dropdown (oben links): RSSI | Temperatur | Luftfeuchte | Luftdruck. Optionen ohne Daten werden automatisch deaktiviert.
- Heatmap-Toggle: Überlagert eine Wärmebildkarte auf Basis der RSSI-Werte.
- Zeit-Buttons (24 h / 7 d / 30 d / Alle): Filtert die angezeigten Uplinks nach Empfangszeit — clientseitig, ohne Neuladen.
- Sensor-Filter (ausklappbar): Min/Max-Eingabefelder für Temperatur, Luftfeuchte, Luftdruck und Batteriespannung. Zeigt an, wie viele Uplinks durch die Filter sichtbar sind. Reset-Button löscht alle Filter.
- Popups zeigen alle vorhandenen Sensor-Werte (🌡 °C, 💧 %, 🌬 hPa, 🔋 V).
Sensor-Verlaufsdiagramme
Unterhalb der Karte werden Zeitreihen-Diagramme für Temperatur, Luftfeuchte, Luftdruck und Batteriespannung angezeigt — sofern das Gerät entsprechende Werte sendet.
Letzte Uplinks
Eine Tabelle mit den neuesten 50 Uplinks (Zeitstempel, Gateway, RSSI, SF, Frequenz).
4 · Gateway-Seite
URL-Schema: /gateway/{GatewayID}. Zeigt alle Uplinks, die
über dieses Gateway empfangen wurden.
- Gleiche Karten-Steuerung wie auf der Geräte-Seite: Farb-Modus (RSSI/Temp/Humi/Druck), Heatmap-Toggle, Zeit-Filter (24h/7d/30d/Alle), Sensor-Filter.
- Gateway-Standort wird als separater Marker (📡) hervorgehoben, sofern bekannt.
- Uplinks-Tabelle mit DevEUI, RSSI, SF, Zeitstempel.
Die Seite /gateways listet alle bekannten Gateways mit Uplink-Anzahl und letztem Empfang.
5 · Vergleichs-Map
URL: /compare. Mehrere Geräte und/oder Gateways gleichzeitig auf einer Karte, jede Serie in einer eigenen Farbe.
- Über das Formular unten auf der Seite können DevEUIs oder Gateway-IDs hinzugefügt werden.
- Hinzugefügte Einträge erscheinen als Chips; Klick auf × entfernt sie.
- Farb-Modus: Standard = „Serie" (jede Quelle eigene Farbe). Alternativ kann auf einen Sensor-Modus (RSSI, Temp, Humi, Druck) umgeschaltet werden — dann gelten die gleichen Farbskalen wie auf den Einzel-Seiten.
- Sensor-Filter wirkt auf alle Serien gleichzeitig — zeigt die Summe sichtbarer Punkte über alle Quellen.
- Die URL enthält die ausgewählten Einträge als Query-Parameter
(
?d=EUI1&d=EUI2&g=GWID) und kann direkt geteilt werden.
6 · Statistik-Seite
URL: /stats. Systemweite Statistiken auf einen Blick:
- Uplinks pro Tag (letzten 30 Tage) als Balkendiagramm (Chart.js).
- Top-10-Gateways und Top-10-Geräte nach Uplink-Anzahl.
- RSSI-Verteilung (Histogramm) und Spreading-Factor-Verteilung (Donut).
- Längste aktive Verbindung (Gerät mit den meisten Uplinks über den längsten Zeitraum).
7 · Decoder-Bibliothek & Server-side Fallback
URL: /decoders. Fertige JavaScript-Payload-Formatter für gängige LoRaWAN-Geräte, die direkt in TTS eingefügt werden können.
Unterstützte Geräte mit fertigen Formattern:
- Dragino LGT-92 (GPS-Tracker)
- Dragino LHT65 (Temperatur / Luftfeuchte + externer Sensor)
- RAK7200 / RAK7201 (WisTrio)
- Seeed SenseCAP T1000 (A / B / C / E)
- Browan TBHV110 (Healthy Home Sensor)
- Adeunis FTD (Field Test Device, BCD-GPS)
- ELSYS (ERS / ELT / EMS generisch)
- Cayenne LPP (generisch)
Jeder Decoder enthält einen Kopieren-Button. Den kopierten Code in TTS unter Applications → Payload Formatters → Uplink → Custom Javascript Formatter einfügen und speichern.
Server-seitiger Fallback-Decoder
Wenn kein Payload-Formatter in TTS eingerichtet ist, versucht der Mapper automatisch, den rohen Payload zu dekodieren:
- Dragino LGT-92 Heuristik (FPort 2, ≥10 Bytes): lat/lon als int32 @ 1/1e6
- RAK7200 Heuristik (FPort 8, marker 0x09): int32 lat/lon, v1/v2 firmware-Skalierungen
- Seeed SenseCAP T1000 Heuristik (TLV-Format, Type 0x01 für GPS): int32 lat/lon @ 1/1e7
- Cayenne LPP (generisch, sucht GPS-Feld 0x88)
⚠️ Server-side Decoder sind konservativ — sie validieren Koordinaten und lehnen Falsch-Positive (wie (0,0) oder out-of-range) ab. Für zuverlässige Ergebnisse wird ein Formatter in TTS empfohlen.
8 · Daten-Export (CSV / GPX)
Für jedes Gerät stehen zwei Download-Formate zur Verfügung:
| Format | URL | Inhalt |
|---|---|---|
| CSV | /api/device/{eui}/uplinks.csv |
Alle Uplinks mit Zeitstempel, Koordinaten, RSSI, SF, Frequenz, Sensor-Werten |
| GPX | /api/device/{eui}/track.gpx |
GPS-Track als GPX 1.1 — importierbar in OsmAnd, Garmin BaseCamp, QGIS u. a. |
Beide Endpunkte sind öffentlich und erfordern keinen Login.
9 · JSON API (v1)
Alle Endpunkte unter /api/v1/ sind öffentlich und liefern
JSON. Basis-URL:
https://ttnmapper.live/api/v1.
| Endpunkt | Beschreibung |
|---|---|
GET /api/v1 |
API-Index mit allen verfügbaren Endpunkten |
GET /api/v1/stats |
Gesamtstatistiken (Gateways, Geräte, Uplinks) |
GET /api/v1/gateways |
Liste aller Gateways (Name, ID, letzter Uplink) |
GET /api/v1/gateways/{id} |
Detail eines Gateways |
GET /api/v1/gateways/{id}/uplinks |
Uplinks eines Gateways (?limit= & ?offset=) |
GET /api/v1/devices/{eui} |
Detail eines Geräts |
GET /api/v1/devices/{eui}/uplinks |
Uplinks eines Geräts (?limit= & ?offset=) |
GeoJSON-Endpunkte (für Karten-Clients):
GET /api/activity.geojson?days=7— aktive Gateways + GeräteGET /api/gateways.geojson— alle Gateways als GeoJSONGET /api/device/{eui}/coverage.geojson— Coverage-Punkte eines GerätsGET /api/gateway/{id}/coverage.geojson— Coverage-Punkte eines Gateways
10 · Account, Profil & Offline-Benachrichtigungen
Registrierung
Unter /register kann ein Konto mit E-Mail und Passwort erstellt werden. Ist ein SMTP-Server konfiguriert, muss die E-Mail-Adresse vor dem ersten Login bestätigt werden (Link per Mail, 24 h gültig).
Login & Sessions
Nach dem Login unter /login wird eine Session angelegt (30 Tage gültig). Aktive Sessions sind auf der Profil-Seite sichtbar und können einzeln widerrufen werden.
Profil-Seite (/profile)
- Account-Daten und letzte Passwortänderung.
- Eigene TTS-Anwendungen mit Timestamp des letzten Uplinks.
- Login-Verlauf: Letzte 10 erfolgreiche Logins (Zeit, Browser·OS, IP-Adresse) — hilft, verdächtige Zugriffe zu erkennen.
- Aktive Sessions (Browser · OS · IP · Anmeldezeit) — aktuelle Session grün hervorgehoben. Alle oder einzelne Sessions können widerrufen werden.
-
Geräte-Offline-Benachrichtigungen: E-Mail-Alerts, wenn ein überwachter Tracker länger keinen Uplink sendet.
- Per Gerät konfigurierbar (Schwelle: 15 Min / 1 Std / 6 Std / 24 Std / 7 Tage).
- Mails bei Transition online → offline und zurück (mit Downtime-Angabe).
- Pause-Button, um temporär zu stummschalten.
- Passwort ändern (aktuelles Passwort erforderlich).
- Account löschen (erfordert Eingabe von „DELETE" zur Bestätigung).
Passwort vergessen
Unter /forgot-password kann ein Passwort-Reset angefordert werden. Der Reset-Link ist 1 Stunde gültig und kann nur einmal verwendet werden.
11 · TTS-Anwendungen verbinden
Unter /applications (Login erforderlich) können TTS-Anwendungen hinzugefügt werden. Jede Anwendung erhält einen eindeutigen Webhook-Token und optional MQTT-Zugangsdaten.
Webhook-Test
Für jede Anwendung kann ein Test-Button (🧪 Testen) ausgelöst werden. Dieser schickt einen synthetischen Uplink durch die Ingest-Pipeline und zeigt das Ergebnis in einem Modal:
- Loading-Status: Daten werden gerade verarbeitet (Spinner)
- Erfolg: DevEUI, Empfangszeit, GPS-Koordinaten (mit Höhe falls vorhanden), dekodierter JSON-Payload (kopierbar), Link „Auf der Karte ansehen"
- Fehler: Fehlermeldung vom Server mit Möglichkeit zu erneuten Test
12 · Webhook-Ingest einrichten
-
Anwendung unter /applications anlegen
→ Webhook-URL kopieren
(
https://ttnmapper.live/webhook/v3/{token}). - In TTS: Applications → Integrations → Webhooks → Add Webhook → Custom Webhook.
- Webhook-URL einfügen, Format JSON wählen, nur den Event-Typ Uplink message aktivieren.
- Speichern — ab jetzt werden alle GPS-Uplinks sofort an den Mapper weitergeleitet.
decoded_payload liefern (Felder latitude /
longitude) oder einen Cayenne-LPP-Payload senden. Ohne
Koordinaten werden Uplinks gespeichert, aber nicht auf der Karte
angezeigt.
13 · MQTT-Ingest einrichten
Alternativ zum Webhook kann der Mapper direkt per MQTT mit TTS kommunizieren.
-
Anwendung anlegen und unter MQTT-Einstellungen folgende
Werte eintragen:
- Host: z. B.
eu1.cloud.thethings.network - Port:
1883(TCP) oder8883(TLS) - Username:
{app-id}@{tenant-id} - Password: TTS API-Key mit Read application traffic-Berechtigung
- Host: z. B.
- Der MQTT-Manager verbindet sich beim nächsten Sync-Zyklus automatisch (≤ 30 Sekunden). Bei Verbindungsverlust erfolgt automatischer Reconnect.
f_cnt + Zeitstempel dedupliziert.
14 · Light- / Dark-Theme
Das Theme kann über den 🌙/☀️-Schalter in der Navigationsleiste umgeschaltet werden.
- Für nicht angemeldete Nutzer wird die Präferenz in einem Cookie gespeichert (1 Jahr).
- Für angemeldete Nutzer wird die Präferenz dauerhaft im Account hinterlegt.
- Standard: Hell.
15 · Häufige Fragen
Die häufigsten Ursachen:
- Kein Payload-Formatter: TTS sendet den rohen Payload als Base64. Ohne passenden Decoder kann der Mapper keine GPS-Koordinaten extrahieren. Einen Formatter aus der Decoder-Bibliothek einrichten.
-
Kein GPS-Fix: Gerät sendet
latitude: 0, longitude: 0oder gar keine Koordinaten-Felder — in diesem Fall wird der Uplink gespeichert, aber nicht auf der Karte angezeigt. -
Falsches Feld-Schema: Der Mapper erwartet
decoded_payload.latitudeunddecoded_payload.longitude. Abweichende Feldnamen müssen im Decoder normalisiert werden. - Webhook falsch konfiguriert: Nur „Uplink message" aktivieren, Format JSON, korrekte URL.
RSSI (Received Signal Strength Indicator) ist die empfangene Signalstärke in dBm. Typische Werte:
- −80 dBm und besser: sehr gutes Signal (grün)
- −100 dBm: akzeptables Signal (gelb)
- −120 dBm und schlechter: schwaches Signal (rot)
Spreading Factor (SF) bestimmt den Kompromiss zwischen Reichweite und Datenrate. SF7 ist am schnellsten (kurze Reichweite), SF12 am langsamsten (größte Reichweite, höchster Airtime-Verbrauch).
basemaps.cartocdn.com). Wenn diese nicht laden,
bitte folgendes prüfen:
- Netzwerkzugang zu externen CDN-Domains vorhanden?
- Browser-Erweiterungen (Ad-Blocker) blockieren cartocdn.com?
- Filter wirken clientseitig — nur sichtbare Uplinks werden herausgefiltert, keine Neuladen der Seite.
- Der Counter zeigt, wie viele Uplinks die Filterkriterien erfüllen.
- Reset-Button löscht alle Filter sofort.
- Filter, für die das Gerät keine Daten hat, werden automatisch deaktiviert.
- Einrichtung: /profile → Abschnitt „Geräte-Benachrichtigungen" → Gerät + Schwelle (15 Min / 1 Std / 6 Std / 24 Std / 7 Tage) auswählen → speichern.
- Offline-Mail: Wenn das Gerät die Schwelle überschreitet, erhält der Nutzer eine E-Mail mit dem Zeitpunkt des letzten Uplinks.
- Online-Mail: Wenn das Gerät wieder einen Uplink sendet, wird eine Recovery-Mail mit der Downtime versendet.
- Anti-Spam: Pro Offline-Transition genau 1 Mail — mehrfaches Erneut-Senden derselben Daten triggert nicht erneut.
- Pause: Alert-Status kann temporär mit dem Pause-Button (⏸) auf der Profil-Seite geändert werden.
- Loading: Synthetischer Uplink wird gerade durch die Pipeline geschickt (Spinner)
- Erfolg: Modal zeigt DevEUI, Empfangszeit, GPS (falls vorhanden), dekodierter JSON-Payload (zum Kopieren) und einen Link zur Geräte-Karte.
- Fehler: Fehlermeldung vom Server — Modal kann erneut getestet werden.
- Dragino LGT-92 (FPort 2, int32 lat/lon @ 1/1e6)
- RAK7200 (FPort 8, int32 mit v1/v2 Skalierungen)
- Seeed SenseCAP T1000 (TLV-Format, Type 0x01 GPS)
- Cayenne LPP (generisch, sucht GPS-Feld 0x88)