Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    LoRaWAN Packet Recorder Setup

    Packet Recorder (Linux)

    Alex @ AEQ-WEB

    Der Packet-Recorder zeichnet alle LoRaWAN Uplink Telegramme auf und speichert diese in einer MySQL oder MariaDB Datenbank. Dieses Tool kann anhand der DeviceAdress erkennen, zu welchem LoRaWAN-Netzbetreiber ein Telegramm gehört. Das Programm eröffnet auf UDP-Port 1700 einen Socket (vergleichbar mit dem UDP Packet Forwarder), wo alle Daten von einem Gateway entgegengenommen werden und in einer Datenbank gespeichert werden.


    Hinweis: Dieses Programm benötigt eine Verbindung zu einem MySQL oder MariaDB Datenbank-Server mit nativer Authentifizierung. Verschlüsselte Verbindungen, welche in der Regel bei einer lokalen Datenbankverbindung nicht benötigt werden, werden zurzeit nicht unterstützt.


    Das Programm kommt als ausführbare Datei (./) und benötigt einen MySQL oder MariaDB Datenbank-Server mit nativer Authentifizierung. Zudem sollte sichergestellt werden, dass eine Firewall nicht den Port 1700 eingehend blockiert.

    Weiters setzt dieses Programm die Installation eines Webservers (Apache oder Nginx) mit PHP voraus.

    Datenbank einrichten

    Das Tool phpMyAdmin wird zu Datenbankverwaltung verwendet. Unter dem Menüpunkt "Benutzerkonten" wird ein neuer Benutzer auf dem lokalen Computer mit nativer Authentifizierung eingerichtet. Zusätzlich soll auch gleich eine Datenbank erstellt werden:

    Werbung:

    Neben der Datei "./PacketRecorder" befindet sich im Verzeichnis eine weitere Datei, welche als "config.ini" bezeichnet wird. In dieser Datei müssen alle Informationen zur Datenbank-Verbindung hinterlegt werden. Username, Passwort & Datenbankname werden wie zuvor in phpMyAdmin definiert angegeben:

    Wurde das Config-File entsprechend editiert, kann das Programm gestartet werden. Konnte der Socket auf UDP-Port 1700 gestartet werden und eine Verbindung zum Datenbankserver hergestellt werden, sieht die Ausgabe vom Programm wie folgt aus:

    Webinterface einrichten

    Das Webinterface besteht aus einer Datei (index.php). Im Heimverzeichnis vom Webserver (/var/www/html/) wird ein neuer Ordner erstellt (packet-recorder) und die PHP-Datei hineinkopiert. Mit dem Texteditor wird die Datei bearbeitet und auch hier müssen wieder die Verbindungsparameter zum Datenbank-Server angeben werden:

    Werbung:

    Über den Webbrowser kann via http://localhost/packet-recorder auf das Webinterface zugegriffen werden:

    Programm als Dienst registrieren

    Soll der Packet-Recorder dauerhaft laufen, so kann die Anwendung als Dienst installiert werden. Unmittelbar nach dem Systemstart wird das Programm automatisch gestartet und läuft im Hintergrund. Als Verzeichnis für die Programmdateien bietet sich unter Linux der Ordner /opt an. In diesem Ordner wird zunächst über das Terminal ein weiterer Ordner mit dem Namen "packetrecorder" erstellt:

    cd /opt
    sudo mkdir packetrecorder

    Die Dateien (config.ini & PacketRecorder) werden in den erstellten Ordner kopiert. Anschließend wird mit den folgenden Befehlen ein neuer Benutzer erstellt und dieser als Besitzer dem Ordner zugewiesen und die Zugriffsrechte für alle Freigegeben:

    sudo useradd -r -s /bin/false packetrecorder
    sudo chown packetrecorder:packetrecorder PacketRecorder
    chmod 0777 -R packetrecorder

    Jetzt wird mit dem Texteditor Nano ein neuer Dienst eingerichtet:

    sudo nano /etc/systemd/system/PacketRecorder.service

    Folgender Inhalt wird in die Textdatei geschrieben:

    [Unit]
    Description=PacketRecorder Service
    After=network.target mysql.service
    Requires=mysql.service
    
    [Service]
    Type=simple
    ExecStart=/opt/packetrecorder/PacketRecorder
    WorkingDirectory=/opt/packetrecorder
    Restart=always
    User=packetrecorder
    Group=packetrecorder
    
    [Install]
    WantedBy=multi-user.target

    Hinweise zum Dienst

    Für den erfolgreichen Systemstart muss der MySQL oder MariaDB Datenbankserver bereits laufen. Der Packet Recorder wird also erst gestartet, nachdem der Datenbankserver gestartet wurde. Zusätzlich gibt es noch eine Verzögerung von 10 Sekunden.
    Achtung: Dieses Beispiel erfordert einen MySQL Server, wer MariaDB verwendet, muss die Datei entsprechend anpassen!

    Werbung:

    Anschließend muss der Dienst aktiviert und gestartet werden:

    sudo systemctl daemon-reload
    sudo systemctl enable PacketRecorder.service
    sudo systemctl start PacketRecorder.service
    sudo systemctl status PacketRecorder.service

    Der letzte Befehl prüft, ob der Dienst gestartet erfolgreich gestartet werden konnte:



    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:

    LoRaWAN Packet Recorder Setup

    Packet Recorder (Linux)

    • Video
    • DE/EN

    Der Packet Recorder zeichnet alle LoRaWAN Uplink Telegramme von einem Gateway auf. Dieser Artikel beschreibt die Installation dieses Dienstes unter Linux

    Weiterlesen
    LoRaWAN Packet Recorder Setup

    Packet Recorder (Windows)

    • Video
    • DE/EN

    Der Packet Recorder zeichnet alle LoRaWAN Uplink Telegramme von einem Gateway auf. Dieser Artikel beschreibt die Installation dieses Dienstes unter Windows

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden