Seeed 8-Channel-LoRaWAN-Gateway M2 auf TTN konfigurieren
Und weiter geht es mit unseren Experimenten mit dem Seeed Studio SenseCAP M2 LoRaWAN-Gateway. Heute wollen wir es umkonfigurieren, vom SenseCAP-Gateway zum TTN-Gateway. Es soll jetzt die Daten nicht mehr in die Seeed Cloud, sondern zum The Things Network übertragen.Meinen Artikel Installation des 8-Channel-LoRaWAN-Gateway M2 Starter Kit von Seeed Studio solltet ihr aber vorher trotzdem lesen. Dort wird nämlich die grundsätzliche Hardware-Installation des Gateways erklärt. Die braucht ihr, solltet ihr das nicht schon erledigt haben.
Wer mehr über die Hardware des Seeed M2-LoRaWAN-Gateways erfahren will, liest zudem noch meinen Artikel Hardware-Review zum 8-Channel-LoRaWAN-Gateway M2 von Seeed Studio. Dort ist auch kurz angeschnitten, was LoRa und LoRaWAN sind. Für Neueinsteiger also lesenwert.
TTN statt SenseCAP Cloud

So komfortabel das Einrichten von Seeed Sensor-Hardware mit der SenseCAP Cloud auch ist, nämlich einfach QR Code scannen und Ergebnisse in der Smartphone-App SenseCraft ablesen - dieses Ökosystem funktioniert nur zusammen mit Seeed-Hardware, also einem Seeed Gateway und Seeed Sensoren.
Aber ich versuche ja immer noch, meinen etwas angestaubten PAX Counter mit TTGO T3 Hardware von LilyGo zum Laufen zu bekommen. Das Board, das ich hier im Abschnitt TTGO T3 LoRaWAN OLED ESP32 (Nano-Format) vorgestellt habe habe ich schon ein paar Jahre. Darauf befindet sich eine Firmware, die die Smartphones in der Nähe anhand von Bluetooth und WLAN-Status zählt und dann über LoRaWAN übermittelt.
Früher bin ich damit durch die Gegend gefahren und habe nach einem LoRaWAN-Gateway gesucht, welches die Daten über TTN weitersenden würde. Ich wurde auch in unseren Städtchen fündig. Allerdings musste ich mich immer ins Auto setzen und ein paar Kilometer fahren, um es testen zu können. Ziemlich nervenaufreibend, wenn man nach jeder Firmware-Anpassung raus muss. Und stundenlanges programmieren im Auto mit dem Notebook sieht nicht nur sehr verdächtig aus für Außenstehende, sondern ist auch nicht gerade bequem.
Ich wollte darum ein eigenes LoRaWAN-Gateway, um nicht immer raus zu müssen. Zuerst versuchte ich es mit dem günstigen LoRaWAN Basic-Gateway von Elecrow. Das ist so günstig, weil es nur einen einzigen Channel hat und auf Client-Hardware mit SX1262-Chip von Semtech setzt.
Wie ich in meinem Artikel Elecrow ESP32 Basic LoRaWAN-Gateway und The Things Network: Firmware und Konfiguration im Abschnitt "Ein Gateway muss was zu tun haben..." schildere, funktioniert der PAX-Counter aber nicht zusammen mit dem Single-Channel-Gateway von Elecrow, wie ich bei meinen Experimenten mit dem LR1262 DevBoard herausfinden musste, siehe mein Artikel LoRaWAN-Kommunikation mit dem LR1262 Dev.-Board (RP2040) und einem Single-Channel Gateway. Denn das Single-Channel-Gateway beherrscht nur den ABP – Activation By Personalization Modus, den ich gerne auch Ad-hoc-Modus nenne. Die Firmware des PAX-Counter ist aber auf OTAA (Over-The-Air Activation) programmiert. Darum funktioniert der Join des PAX-Counters nicht und es wird nichts übertragen.
Für den OTAA-Modus braucht es schon ein ausgewachsenes Multi-Channel-Gateway. Die waren bislang sehr teuer, aber die Preise sind gefallen und für rund 100 Euro gibt es nun das SenseCAP M2 LoRaWAN-Gateway von Seeed Studio. Siehe dazu auch mein Hardware-Review zum 8-Channel-LoRaWAN-Gateway M2 von Seeed Studio. Elecrow hat übrigens auch ein sehr ähnliches Gerät im Angebot, auch mit MediaTek MT7628 SoC (System on a Chip) als Mikrocontroller und Semtech SX1302 Chip für acht Kanäle für LoRa. Die Geräte sind sich auch in Größe und Funktionsumfang ähnlich, allerdings hat mir die Antenne bei Seeed besser gefallen.
Nun bin ich natürlich gespannt wie ein Flitzebogen, ob der gute, alte PAX-Counter mit einem "richtigen" LoRaWAN-Gateway zusammen funktioniert.
Dazu müssen wir unser LoRaWAN-Gateway umkonfigurieren: von SenseCAP auf The Things Network (TTN).
Das geht ganz einfach und mit nur ein paar Klicks im LoRaWAN-Gateway-Interface:

Im Tab LoRa wählen wir den Eintrag LoRa Network. Dann ändern wir den Mode auf "Packet Forwarder", wozu auch TTN gehört. Dann vergeben wir eine Gateway EUI oder lassen einfach diejenige dirn, die da schon steht. Die muss später nur mit den Angaben übereinstimmen, die wir in TTN eintragen und darf noch nicht vergeben sein. Als Server in Deutschland muss "eu1.cloud.thethings.network" ausgewählt werden, passend zu https://eu1.cloud.thethings.network/console/, dem Web-Interface von TTN.
Das war es auch schon. Wer möchte, kann unter "Interval Settings" den Eintrag "Keep Alive Interval" von 5 auf 60 Sekunden stellen, so wie ich. Dann ballert euer Gateway nicht alle 5 Sekunden ein "Ich bin noch da" ans TTN raus. Alle Minute reicht doch dicke, finde ich. Das selbe gilt für den "Statistic Interval". Den habe ich auch auf 60 Sekunden gestellt.
Die Angaben unter "Beacon Settings" passen alle so, wie sie sind. SF9 bei 125000 Hz Bandbreite ist Standard. Die GPS-Informationen anzugeben ist überflüssig. Einen GPS-Chip hat das M2-Gateway eh nicht verbaut und die festen GPS-Koordinaten können wir auch direkt bei TTN angeben.
Wer möchte, kann auch alle fremden Geräte aussperren - was allerdings schade wäre, denn LoRaWAN und TTN leben ja auch vom Teilen von Ressourcen in der Community. Man sollte also nicht das Häkchen bei "White List Mode" setzen und die IDs der eigenen LoRaWAN-Hardware angeben, wie ich es trotzdem mal beispielsweise nachfolgend eingestellt habe (C00100 für meine eigene Hardware und 2CF7F1 für Seeed Hardware):

Mehr gibt es nicht einzustellen und mehr ist auch nicht nötig. Im Prinzip reicht einfach nur das Umstellen des Mode von SenseCap auf Packet Forwarder. Die restlichen Einstellungen sind optional. Zum Speichern "Save & Apply" nicht vergessen.
Das immer populärer werdende ChirpStack verbirgt sich übrigens hinter dem Mode "Local Network Server". Damit kocht man dann allerdings sein ganz eigenes Süppchen. Man schließt alle anderen aus - was schade im Sinne des Community-Gedankens ist. Man möchte ja andererorts vielleicht selbst offene LoRaWAN-Gateways zur Weiterleitung seiner Daten vorfinden. Seid also bitte nicht krankhaft egoistisch. Außerdem muss man bei ChirpStack alles selbst administrieren und für einen Internet-Server für die Weiterleitung sorgen. Die Überlegung anzustellen, auf ChirpStack umzusteigen, ist erst sinnvoll, wenn man viel LoRaWAN-Traffic hat und das TTN-Freivolumen nicht mehr ausreicht und einen TTN zur Kasse bitten würde - und die eigene Infrastruktur unterm Strich günstiger wäre als TTN.
Die eigentliche Arbeit: TTN konfigurieren
Die Einstellung im LoRaWAN-Gateway hat man super schnell gemacht. Die eigentliche Arbeit kommt erst jetzt, nämlich der Konfiguration des TTNs über dessen Console.Dazu bedarf es einiger Schritte:
- Gateway bei TTN eintragen
- Application auf TTN anlegen
- End Device unter Application anlegen
- Message Storage einschalten bzw. Webhook zur Weiterleitung der Daten an eigenen Server einrichten
(1) In Elecrow ESP32 Basic LoRaWAN-Gateway und The Things Network: Firmware und Konfiguration ab dem Abschnitt "Das Gateway bei TTN anmelden" erkläre ich, wie man ein Gateway bei TTN anmeldet. Ob das nun ein Single oder ein Multi-Gateway ist, ist erst einmal egal.
(2) Weiter in Artikel (1) geht es mit den Abschnitten "Ein Gateway muss was zu tun haben..." und "Eine Applikation auf TTN anlegen", die eben genau den PAX-Counter, um den es hier geht, auf TTN anlegt.
(3) Eine Application braucht mindestens ein End Device. Wie das Anlegen geht, steht weiter unten in Artikel (1) im Abschnitt "Ein End device auf TTN anlegen"
(4) Und ebenfalls in Artikel (1) steht, wie man Message Storage einschaltet, nämlich im Abschnitt "Message Storage aktivieren".
Wenn dies alles richtig eingerichtet ist, ist der Weg, den die Daten nehmen, folgender:
PAX-Counter (end-device) → LoRa → M2 LoRaWAN-Gateway → WLAN → Router → Internet (UDP 1700) → TTN Gateway → TTN Application für end-device → TTN Message Storage
Unter https://eu1.cloud.thethings.network/console/applications/ warten die eingegangen LoRa-Daten des PAX-Counters dann zwei Wochen auf Einsichtnahme:

Einfach auf "Message storage →" klicken und schon man kann sich die Einzeldaten anschauen:

Wer die Daten schön aufbereitet sehen will, muss sich "einen Uplink payload formatter definieren", wie im entsprechenden Abschnitt in (1) erklärt.
Und im Artikel The Things Network Konfiguration: Mit Webhooks Messages an den eigenen Webserver weiterleiten erkläre ich eben genau das: wie die LoRa-Daten an einen eigenen Webserver weitergeleitet werden, um vielleicht dort eine Webseite zu bauen, die einen Verlauf über die Zeit anzeigt. Dabei ist man dann an keine Vorgaben mehr gebunden und kann das designen, wie man möchte, passend zum sonstigen Web-Auftritt.
Da ich das Alles noch im TTN konfiguriert hatte, war es für mich diesmal nur eine Sache von Minuten, bis ich die PAX-Werte sehen konnte. Bei allerersten Mal auf TTN braucht man allerdings ein wenig Geduld, auch weil man nicht immer die Einstellmöglichkeiten dort findet, wo man sie vermutet. TTN ist nicht ganz so super intuitiv, doch es geht. Nach ein paar Versuchen weiß man, was wo zu tun ist. Man muss halt einmal den Workflow kennenlernen und ausprobieren.
Und natürlich gibt es ein kurzes Test- bzw. Demonstrationsvideo:
Weiterlesen...
Beim nächsten Mal will ich versuchen, auch andere LoRaWAN-Hardware über das neue Gateway an TTN anzubinden. Wenn es Neues gibt, werde ich es hier verlinken.Quellen, Literaturverweise und weiterführende Links
- Wikipedia: LoRa / LoRaWAN
- The Things Network

- Produktseite Seeed SenseCAP M2

- Produktseite Seeed SenseCAP M2 Starter Kit (lohnt sich preislich)

- Quick & No-code Initiation with LoRaWAN Starter Kit

- Elecrow ESP32 Basic LoRaWAN-Gateway und The Things Network: Firmware und Konfiguration
- ESP32 Boards im Vergleich: TTGO T3 LoRaWAN OLED ESP32
- LoRaWAN-Kommunikation mit dem LR1262 Dev.-Board (RP2040) und einem Single-Channel Gateway
- TTGO-T3 PAX-Counter-Hardware von LilyGo
- LoRaWAN Single-Channel-Basic-Gateway von Elecrow
- LR1262 LoRaWAN Dev.-Board von Elecrow