IoT over LoRaWAN/Sigfox

IoT over LoRaWAN/Sigfox

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Parametre protokolu linky
Konfigurácia komunikačnej stanice
Parametre protokolu stanice
Konfigurácia meraných bodov
Literatúra
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol umožňuje komunikáciu so zariadeniami komunikujúcimi pomocou protokolov LoRaWAN a Sigfox.

Protokol LoRaWAN je protokol určený na občasný, energeticky efektívny bezdrôtový prenos malého množstva dát nazývaných

payload (typicky niekoľko bajtov) na dlhé vzdialenosti medzi prepojenými objektami - v terminológii LoRaWAN nazývanými mote (typicky senzory napájané batériou) a LoRaWAN gatewayom.
Gateway následne môže komunikovať priamo s D2000 KOM procesom alebo posielať payload na sieťové servery resp. do cloudu, kde sa vykoná spracovanie údajov (deduplikácia, filtrácia) a následne sú údaje poslané procesu D2000 KOM. V každom prípade je payload zabalený do
obálky (napr. ako pole v JSON správe alebo v CSV súbore) a prenesený až do procesu D2000 KOM. Tam je payload dekódovaný (používa sa napr. Base64 kódovanie alebo Base64 + Base16 kódovanie) a spracovaný.
Spracovanie payloadu je závislé od typu zariadenia (definovaného v parametri protokolu Device Type).

Komunikácia bola testovaná medzi senzormi a LoRaWAN gatewayom Kerlink IoT Station 868. Ten v závislosti od inštalovaného firmware:

  • posielal údaje priamo D2000 KOM procesu (JSON správy v UDP packetoch)

  • posielal údaje do cloudu TheThings.Network, odkiaľ ich D2000 KOM proces čítal (JSON správy v MQTT protokole cez TCP spojenie)

  • posielal údaje do cloudu Loriot.io, ktorý ich preposielal protokolom MQTT do iot.eclipse.org, odkiaľ ich D2000 KOM proces čítal (JSON správy v MQTT protokole cez TCP spojenie)

  • posielal údaje do cloudu Slovanet (loralink.slovanet.sk), odkiaľ ich D2000 KOM proces čítal (JSON správy v MQTT protokole cez TCP spojenie)

Protokol Sigfox  má podobné vlastnosti ako LoRaWAN, akurát využíva iné frekvenčné pásma. Používa infraštruktúru vybudovanú firmou Sigfox a jej partnermi a správy (s maximálnou veľkosťou payloadu 12 bajtov, maximálne 140 správ denne) sú prenášané do cloudu (backend.sigfox.com), odkiaľ je možné ich získať cez REST API.

Komunikácia bola testovaná medzi senzormi a Sigfox cloudom s použitím utility curl na získanie dát cez https.

Konfigurácia komunikačnej linky


Konfigurácia pre LoRaWAN protokol:

  • Kategória komunikačnej linky: SerialOverUDP Device Redundant, TCP/IP-TCP.

  • Konfigurácia linky SerialOverUDP Device Redundant:

    • Lokálny port: port na ktorom D2000 KOM proces prijíma UDP pakety

    • Primárne/záložné zariadenia: IP adresa LoRaWAN gatewaya
      (pre Connection Type=Kerlink IoT Station SPN)

    • Port: port na ktorom LoRaWAN gateway prijíma pakety (v súčasnosti nevyužité, keďže nie je implementovaný zápis)

  • Konfigurácia linky TCP/IP-TCP:

    • Host: IP adresa servera, ku ktorému sa D2000 KOM proces pripája, prípadne redundantné adresy oddelené čiarkou alebo bodkočiarkou
      (pre Connection Type=MQTT client)

    • Port: port servera, ku ktorému sa D2000 KOM proces pripája

Konfigurácia pre Sigfox protokol:

  • Konfigurácia linky File I/O:

    • Vstupný súbor: cesta k adresáru, kde budú umiestnené dáta (JSON súbory) stiahnuté zo Sigfox cloudu. Môže byť použitá symbolická konštanta #APPDIR#, ktorá udáva aplikačný adresár, napr. #APPDIR#/Sigfox_input
      (platná syntax pre Windows aj Linux).

    • Archívny adresár: cesta k adresáru, kde budú umiestnené súbory po spracovaní. KOM proces dátové súbory po spracovaní presunie do podadresárov tohto adresára, ktoré budú mať názov podľa názvu stanice (napr. B.Sigfox_1) a k menu súboru pridá časovú značku udávajúcu čas spracovania (napr. zo súboru msg_21FDA7.txt spraví súbor msg_21FDA7_2018-10-26-06-26-08.txt).
      Podobne ako pre vstupný súbor môže byť použitá symbolická konštanta #APPDIR#, napr. #APPDIR#/Sigfox_archiv
      Pozn 1: chybné súbory alebo súbory, pre ktoré nebola identifikovaná žiadna stanica, budú po spracovaní presunuté do podadresára BAD.
      Pozn 2: pokiaľ archívny adresár nie je zadaný, všetky súbory budú po spracovaní vymazané.

Parametre protokolu linky


Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu linky:

Tab. č. 1

Parameter

Popis

Jednotka / rozmer

Náhradná hodnota

Connection Type

Typ spojenia medzi D2000 KOM procesom a druhou stranou (LoRaWAN gateway, sieťový server, cloud).
Aktuálne podporené sú:

  • Kerlink IoT Station SPN (JSON via UDP packets): komunikácia s Kerlink IoT Station s firmware SPN (Small Private Network). Linka musí byť typu SerialOverUDP Device Redundant.

  • MQTT Client (JSON via MQTT): komunikácia so sieťovým serverom alebo cloudom pomocou MQTT protokolu. Linka musí byť typu TCP/IP-TCP

  • Sigfox Client (JSON via HTTPS): komunikácia s cloudom Sigfox

-

Kerlink IoT Station SPN

Mote Field Name

Názov poľa s identifikátorom LoRaWAN zariadenia (mote).
Pozn: Pre JSON správy, ktoré môžu byť štruktúrované, je podporená syntax level1.level2.level3 ..., napr. rx.moteeui a pokiaľ obsahujú polia (indexované od 1) tak aj level1[index1].level2[index2].level3 ..., napr. rx.gwrx[1].time. Príklady viď popis meraných bodov typu Envelope.
Pozn: Pre dátové súbory Sigfox, ktoré môžu obsahovať aj viacero hodnôt (historických) je možné použiť aj index 0 resp. prázdny index (napr. data[].device). Toto vyjadruje, že sa majú spracovať všetky prvky poľa.

-

rx.moteeui

Payload Field Name

Názov poľa s payloadom. Viď poznámky pri parametri Mote Field Name.

-

rx.userdata.payload

Payload Encoding

Spôsob kódovania payloadu v správe. Podporené kódovania:

  • Base16 + Base64 encoding (Kerlink SPN) - pre Connection Type=Kerlink IoT Station SPN

  • Base64 encoding (TheThings.network) - pre Connection Type=MQTT Client pri komunikácii s cloudom TheThings.network

  • Base16 encoding (Loriot, Slovanet, Sigfox) - pre Connection Type=MQTT Client pri komunikácii s cloudami LoRaWan (Loriot, Slovanet) a Sigfox

  • None - správa obsahuje priamo payload - zatiaľ nevyužité

-

Base16 + Base64 encoding

Time Field Name

Názov poľa s časovou značkou. Ak pole nie je nájdené, hodnotám je priradený aktuálny čas. Viď poznámky pri parametri Mote Field Name.

-

rx.gwrx[1].time

Time Mask

Maska pre parsovanie hodnoty v poli s časovou značkou.
Pozn: od nastavení časových parametrov stanice závisí, či je čas interpretovaný ako lokálny alebo UTC s nakonfigurovaným offsetom.
Špeciálne masky sú:

  • UNIX - číselná hodnota vyjadruje počet sekúnd od epochy 00:00:00 01.01.1970 UTC.

  • UNIXMS - číselná hodnota vyjadruje počet milisekúnd od epochy 00:00:00.000 01.01.1970 UTC.

-

yyyy-mm-dd hh:mi:ss

Frame Type Field Name

Názov poľa, ktoré označuje typ správy. Ak je hodnota prázdna, typ správy sa nerozlišuje. (Napr. cloud Loriot posiela správy rozličného typu.)

-

 

Frame Type Field Required Value

Ak je rozlišovanie typu správy aktívne (vyplnený parameter Frame Type Field Name), typ správy musí byť zhodný s uvedenou hodnotou. Inak je správa ignorovaná.

-

 

Full Debug

Zapnutie podrobných výpisov o posielaní a prijímaní hodnôt.

YES/NO

NO

Parametre špecifické pre Connection Type=MQTT Client.

MQTT User Name

Viď popis parametra User Name v dokumentácii MQTT protokolu.

MQTT Password

Viď popis parametra Password v dokumentácii MQTT protokolu.

MQTT Topic Filter

Viď popis parametra Topic Filter v dokumentácii MQTT protokolu.

+/+/+/up

MQTT Subscribe QoS

Viď popis parametra Subscribe QoS v dokumentácii MQTT protokolu.

MQTT Client ID

Viď popis parametra Client ID v dokumentácii MQTT protokolu.

MQTT Clean Session Flag

Viď popis parametra Clean Session Flag v dokumentácii MQTT protokolu.

MQTT Publish Format

Formát JSON správy použitej pri zápise hodnoty. Obsah meraného bodu typu Write bude zakódovaný (v závislosti od parametra Payload Encoding) a vložený do tejto správy, kde nahradí reťazec #PAY#.
Náhradná hodnota "{"port":1, "confirmed":false, "payload_raw":#PAY#} bola vyskúšaná pri posielaní údajov do cloudu TheThings.Network.

-

"{"port":1, "confirmed":false, "payload_raw":#PAY#}

MQTT Publish QoS

Viď popis parametra Publish QoS v dokumentácii MQTT protokolu.

MQTT Ping Interval

Viď popis parametra Ping Interval v dokumentácii MQTT protokolu.

MQTT Reply Timeout

Viď popis parametra Reply Timeout v dokumentácii MQTT protokolu.

MQTT Wait Timeout

Viď popis parametra Wait Timeout v dokumentácii MQTT protokolu.

MQTT Max. Wait Retry

Viď popis parametra Max. Wait Retry v dokumentácii MQTT protokolu.

Parametre linky otestované pre Connection Type=Kerlink IoT Station SPN voči Kerlink IoT Station 868 s firmware SPN:

Parameter

Hodnota

Connection Type

Kerlink IoT Station SPN

Mote Field Name

rx.moteeui

Payload Field Name

rx.userdata.payload

Payload Encoding

Base16 + Base64 encoding

Time Field Name

rx.gwrx[1].time

Time Mask

yyyy-mm-dd hh:mi:ss

Frame Type Field Name

 

Frame Type Field Required Value

 

Parametre linky otestované pre Connection Type=MQTT client voči TheThings.network:

Parameter

Hodnota

Connection Type

MQTT client

Mote Field Name

dev_id alebo hardware_serial

Payload Field Name

payload_raw

Payload Encoding

Base64 encoding

Time Field Name

metadata.time

Time Mask

yyyy-mm-dd hh:mi:ss.mss

Frame Type Field Name

 

Frame Type Field Required Value

 

MQTT User Name

ipesoft-test

MQTT Password

***

MQTT Topic Filter

+/+/+/up

MQTT Client ID

D2000kom

MQTT Clean Session Flag

NO

MQTT Publish Format

{"port":1, "confirmed":false, "payload_raw":#PAY#}

MQTT Publish QoS

QoS_0, QoS_1, QoS_2

MQTT Ping Interval

60

MQTT Reply Timeout

20

MQTT Wait Timeout

00.100

MQTT Max. Wait Retry

3

Parametre linky otestované pre Connection Type=MQTT client voči Loriot.io s nastavením:

  • Výstup protokolom MQTT

  • MQTT broker: iot.eclipse.org

  • MQTT topic: com/ipesoft/iot

Parameter

Hodnota

Connection Type

MQTT client

Mote Field Name

EUI

Payload Field Name

data

Payload Encoding

Base16 encoding

Time Field Name

ts

Time Mask

UNIXMS

Frame Type Field Name

cmd

Frame Type Field Required Value

rx

MQTT User Name

 

MQTT Password

 

MQTT Topic Filter

com/ipesoft/iot

MQTT Client ID

D2000kom

MQTT Clean Session Flag

NO

MQTT Publish Format

 

MQTT Publish QoS

QoS_1

MQTT Ping Interval

60

MQTT Reply Timeout

20

MQTT Wait Timeout

00.100

MQTT Max. Wait Retry

3

Parametre linky otestované pre Connection Type=MQTT client voči LoraLINK Slovanet:

Parameter

Hodnota

Connection Type

MQTT client

Mote Field Name

devEUI

Payload Field Name

dataHex

Payload Encoding

Base16 encoding

Time Field Name

timeStamp

Time Mask *

yyyy-mm-ddThh:mi:ss.mss

Frame Type Field Name

 

Frame Type Field Required Value