Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    LoRaWAN Gateway UDP Packet Forwarder

    LoRaWAN UDP Packet Forwarder 1

    Alex @ AEQ-WEB

    In diesem Artikel geht es um die Funktionsweise des LoRaWAN UDP Packet Forwarders. Es ist eine von Semtech entwicklete Software auf dem LoRaWAN Gateway, welche es ermöglicht, Datenpakete effizient mit dem Netzwerkserver über das Protokoll UDP auszutauschen. Mit einem speziellen C++ Beispielcode, welcher als UDP Packet Listener auf Port 1700 Daten von einem Gateway entgegennimmt, können die empfangenen Datenpakete angezeigt werden. Mit diesem Beispiel ist es möglich, die genaue Arbeitsweiße vom Semtech Packet-Forwarder näher zu analysieren und man kann sich dadurch einen tiefen Einblick in die Welt von LoRaWAN verschaffen.

    Das Gateway

    Für dieses Beispiel wird ein MikroTik LR8 LoRaWAN Gateway verwendet. Auf dem MikroTik LR8 ist der UDP Packet Forwarder standardmäßig installiert, welcher als Schnittstelle zwischen dem Gateway und dem LoRaWAN-Netzwerkserver fungiert. Das LoRaWAN Gateway arbeitet bidirektional, was bedeutet, dass es Daten sowohl vom Endgerät empfängt und über den Packet Forwarder an den LoRaWAN-Netzwerkserver sendet, als auch umgekehrt. Der Netzwerkserver kann das Gateway ansprechen und Datenpakete über das Gateway an seine Endgeräte senden. Für dieses Beispiel wird dem LoRaWAN Gateway eine eindeutige, leicht erkennbare ID (Gateway EUI) zugewiesen: AA AA AA AA AA AA AA FF. Diese ID ist bei der Analyse der Rohdaten sofort erkennbar und entsprechend einfach nachzuverfolgen.

    Werbung:

    Rohdatenanalyse

    Wird ein einfacher UDP-Listener auf Port 1700 auf einem Computer oder Server gestartet und die IP-Adresse im Gateway eingetragen, bekommt der Listener meist mehrmals pro Minute einen Datensatz zugesendet. Lässt man sich diese Daten im Klartext anzeigen, erscheinen zunächst einige "kryptische" Zeichen, bevor lesbare Informationen im JSON-Format sichtbar werden. Die lesbaren JSON-Daten enthalten Informationen, über den Zustand vom Gateway oder stellen ein empfangenes LoRaWAN-Paket dar. Zuvor wird jedoch ein Blick auf die "kryptischen" Zeichen geworfen, wie sie im folgenden Bild zu sehen sind:

    Die hier nicht lesbaren Zeichen haben immer eine bestimmte Länge von 12 Byte. Wandelt man diese in Hexadezimal um, so wird die zuvor vergebene Gateway-EUI und weitere Hexadezimale Zeichen sichtbar:

    Byte 0 bis Byte 11 werden immer vor jeder JSON-Nachricht übertragen und teilweise werden auch Pakete gesendet, die nur aus diesen 12 Bytes bestehen. Die GatewayEUI besteht aus 8 Bytes (Byte 4 - 11), die Bytes setzten sich wie folgt zusammen:

    Werbung:

    Bytes Beschreibung
    Byte 0 Verwendete Protokoll Version (2)
    Byte 1-2 Zufälliger Token für ein Paket, generiert vom Gateway (02 38)
    Byte 3 Nachrichtentyp (0, Push Data)
    Byte 4-11 Gateway EUI (AA AA AA AA AA AA AA FF)
    Ab Byte 12 Nachricht im Klartext/JSON-Format

    Dieses Beispiel verwendet die Protokoll-Version 2. Jede Nachricht von einem Gateway hat einen zufälligen Token bestehend aus zwei Bytes. Antwortet der Netzwerkserver dem Gateway auf eine Nachricht, so werden genau diese zwei Bytes wieder zurückgesendet, was dem Gateway eine Zuordnung der Nachricht ermöglicht. Meist wird dies für Empfangsbestätigungen verwendet.

    Die 5 Nachrichten-Typen (Identifiers) :


    Byte 3 Beschreibung
    00 Push Data: Entsprechend der Einstellung am Gateway werden mehrmals pro Minute Push Daten gesendet. Damit bleibt bei den Routern zwischen Gateway und Netzwerkserver der Port geöffnet. Zusätzlich wird der Netzwerkserver damit in Kenntnis gesetzt, dass das Gateway noch verbunden ist.
    01 Push Ack: Ein Push Ack (Acknowledged) wird mit den gleichen Token vom Netzwerkserver zum Gateway zurück gesendet. Damit bekommt das Gateway eine Empfangsbestätigung vom Netzwerkserver.
    02 Pull Data: Dieser Nachrichtentyp (Identifier) teilt dem Netzwerkserver mit, dass ein Datensatz (Statusnachricht oder LoRaWAN-Paket) an die Gateway EUI angehängt ist.
    03 Pull Resp: Eine Nachricht mit einem "Pull Response" ermöglicht dem Netzwerkserver, ein Datenpaket zu einem Endgerät über das Gateway abzusenden. Dies ist jederzeit ab Erhalt des ersten "Pull Data" oder "Push Data" möglich.
    04 Pull Ack: Mit dem "Pull Ack" antwortet der Netzwerk-Server auf jedes empfangene "Pull Data" Paket.
    05 Tx Ack: Damit bestätigt das Gateway dem Netzwerkserver die Möglichkeit einer Aussendung von einem Datenpaket. Wenn das Datenpaket erfolgreich gesendet werden kann, beschränkt sich die Länge vom Datensatz genau auf die 12 Bytes, im Fehlerfall sendet das Gateway weitere Details zum Fehler ab Byte 12 in JSON zurück.

    Werbung:

    JSON ab Byte 12

    Die ersten 12 Bytes in Hexadezimal stehen immer vor jeder JSON-Nachricht, egal ob vom Gateway zum Netzwerkserver gesendet wird, oder umgekehrt. Weitere Details zum Aufbau von JSON-Nachrichten gibt es im nächsten Artikel: [Erscheint am 25.12.2024]


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Heltec LoRa32 LoRaWAN Tutorial

    LoRaWAN mit dem Heltec LoRa32 V3

    • Video

    Einstieg in das LoRaWAN (TTN) mit dem Heltec LoRa32 V3 und Einrichtung vom Board in der Arduino IDE

    Weiterlesen
    LoRaWAN - Die Starthilfe

    LoRaWAN - Die Starthilfe für Einsteiger

    Starthilfe LoRaWAN - Diese Seite richtet sich an alle Einsteiger, die mit LoRaWAN starten wollen und ihre Sensoren in das IoT-Netzwerkt TTN integrieren wollen

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden