Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    LoRaWAN Semtech UDP Packet Forwarder JSON Objects

    LoRa Packet Forwarder JSON Daten

    Alex @ AEQ-WEB

    Der von Semtech entwickelte UDP-Packet Forwarder auf einem LoRa bzw. LoRaWAN Gateway ist für den bidirektionalen Datentransfer zwischen dem Gateway und dem Netzwerkserver zuständig. Dieser Artikel beschreibt die JSON Objekte, die ab dem 12 Byte an eine Nachricht angefügt werden. Weitere Informationen zu den ersten 12 Bytes einer jeden Nachricht werden in diesem Artikel näher erläutert.

    Welche JSON Objekte gibt es?

    Für den Uplink (Sendung vom Gateway zum Netzwerkserver) werden zwei JSON Objekte (STAT & RXPK) verwenden. STAT übermittelt den Status vom Gateway (Standort, div. Zähler und Zeitstempel) und RXPK ein vom Gateway empfangenes Datenpaket mit den Dateninhalt und Informationen zum Paket selbst (Größe, Signalstärke, Modulation usw.)

    Für den Downlink (Sendung vom Netzwerkserver zum Gateway) gibt es zwei JSON Objekte (TXPK, TXPK_ACK). Mit TXPK werden Datenpakete an das Gateway übermittelt, welche per Funk ausgesendet werden sollen. Wurde der Downlink vom Gateway akzeptiert bzw. kann gesendet werden, wird als Antwort nur ein 12 Byte TX_ACK ohne JSON Objekt gesendet. Im Fehlerfall wird das TXPK_ACK Objekt an die vorherigen 12 Byte angefügt und zum Netzwerkserver zurückgesendet.

    Werbung:

    Die JSON Objekte im Detail

    Die folgenden Tabellen beschreiben die einzelnen Keys vom jeweiligen JSON Objekt.

    STAT (Zyklische Statusnachrichten vom Gateway zum Netzwerkserver):

    {"stat":{"ackr":0.000000,"dwnb":0,"rxfw":0,"rxnb":0,"rxok":0,"time":"2024-11-15 10:45:54 GMT","txnb":0}}
    

    Key Type Beschreibung
    rxnb u_int Per Funk empfangene Pakete seit Systemstart
    rxok u_int Per Funk empfangene Pakete mit gültiger CRC seit Systemstart
    rxfw u_int Zum Netzwerkserver weitergeleitete Pakete seit Systemstart
    dwnb u_int Vom Netzwerkserver empfangene Downlink-Pakete seit Systemstart
    txnb u_int Per Funk ausgesendete Pakete seit Systemstart
    ackr int Prozensatz vom Netzwerkserver bestätigter Datenpakete
    time string Uhrzeit vom Gateway
    lati float Position vom Gateway (Breitengrad)
    long float Position vom Gateway (Längengrad)
    alti int Position vom Gateway (Höhe)

    RXPK (Empfangenes Datenpaket oder mehrere Datenpakete in einem Array):

    {"rxpk":[{"chan":0,"codr":"4/5","data":"QN3Mu6qATgEBddf3CGO3W+c=","datr":"SF7BW125","freq":868.100000,"lsnr":9.750000,"modu":"LORA","rfch":1,"rssi":-32,"size":26,"stat":1,"time":"2024-11-15T10:47:43.674536Z","tmst":2905060155}]}
    

    Key Type Beschreibung
    chan u_int Logische Kanalnummer
    rfch u_int RF-Chain: Modul im Gateway, welches das Datenpaket empfangen hat
    freq float Empfangsfrequenz in MHz
    modu string Modulationsart (LoRa oder FSK)
    rssi float Signalstärke (RSSI) in dbm
    lsnr float LoRa Rauschverhältnis in dB
    datr string / u_int Spreadingfaktor und Bandbreite in kHz bei LoRa Modulation, bei FSK Frame Bitrate in Hz
    codr string Codingrate bei LoRa Modulation
    stat int CRC Status (1 = OK; -1 = Fehlerhaft; 0 = Keine CRC)
    time string UTC Zeitstempel vom Gateway zum Empfangszeitpunkt nach ISO8601 (Compact Format) mit Microsekunden
    tmst u_int (32-Bit) Interner Mikrosekundenzähler seit Systemstart. Überlauf nach 72,5 Minuten (32^2)
    tmms u_int Vergangene Millisekunden seit 06.Jan.1980
    size u_int Payload Größe (Byte)
    data string Payload (Base64)

    TXPK (Downlink: Senden eines Telegramms über ein Gateway):

    {"txpk":{"imme":true,"freq":868.500,"rfch":1,"powe":14,"modu":"LORA","datr":"SF11BW125","codr":"4/5","ipol":false,"size":24,"data":"3UBCTIB9FOa+LyVdGkt63237S2p4CEX/"}}
    

    Key Typ Beschreibung
    imme bool Wenn true, wird das Paket sofort gesendet und tmst/time ignoriert
    tmst u_int (32-Bit) Wenn imme=false und tmst vorhanden, wird das Paket beim erreichen des internen Zählers gesendet
    tmms string Wenn imme=false und tmst nicht vorhanden, wird das Packet zum angegebenen UTC-Zeitstempel gesendet
    freq u_float Sendefrequenz in MHz
    rfch u_int Auswahl des Sendemoduls (RF Chain)
    powe int Sendeleistung in dBm
    modu string Modulationsart (LORA oder FSK)
    datr string / u_int Bei LoRa Modulation Spredingfaktor und Bandbreite (SFxBWm, x=7-12;m=Bandbreite in kHz), bei FSK Frame Bitrate in Hz
    codr string ECC Coding Rate (z.B. 4/5)
    ipol bool Gibt an, ob das invertierte Polaritätsbit verwendet wird (false bedeutet keine Invertierung).
    prea u_int RF Preamble Größe
    size u_int PHYPayload in Bytes
    data string Base64 PHYPayload
    ncrc bool Wenn true, wird keine CRC im Physical Layer generiert

    Werbung:

    TXPK_ACK (Antwort vom Gateway zum Netzwerkserver auf ein PULL-RESP):

    {"txpk_ack":{"error":"TX_FREQ"}}
    

    Key Type Beschreibung
    error string Gibt eine Fehlermeldung zurück

    Mit dem Key "error" können folgende Fehlermeldungen Übermittelt werden:


    error Beschreibung
    TOO_EARLY Das Paket wurde zu früh empfangen, bevor der vorgesehene Sendezeitpunkt erreicht war
    TOO_LATE Das Paket kam zu spät an, um rechtzeitig gesendet zu werden
    COLLISION_PACKET Eine Kollision mit einem anderen bereits gesendeten Paket wurde festgestellt
    COLLISION_BEACON Das Paket kollidierte mit einem Beacon-Signal, das Vorrang hat
    TX_FREQ Die Sendefrequenz ist ungültig oder nicht erlaubt
    TX_POWER Die angeforderte Ausgangsleistung ist ungültig oder außerhalb der zulässigen Grenzen
    GPS_UNLOCKED Die GPS-Synchronisation war nicht verfügbar, daher konnte keine genaue Zeitplanung erfolgen


    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:

    LHT65 TTN V3 Webhook PHP Webapp

    LHT65 TTN Webapp

    • DE/EN

    The Things Network kümmert sich lediglich um den Transport von LoRaWAN-Paketen, jedoch nicht um die Speicherung. Hier geht es um die Entwicklung einer Webapp.

    Weiterlesen
    Arduino PT100 Temperature Sensor Converter

    PT100 Arduino Sketch

    • Video
    • DE/EN

    Beispielcode für den PT100 Temperatursensor an einem Arduino

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden