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).
| - | Kerlink IoT Station SPN |
Mote Field Name | Názov poľa s identifikátorom LoRaWAN zariadenia (mote). | - | 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 |
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.
| - | 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#. | - | "{"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 |