...
- Configuration of File/IO line:
- Input file: name of the directory where data (JSON files) downloaded from the Sigfox cloud will be located. A symbolic constant #APPDIR#, which specifies application directory, may be used, e.g. #APPDIR#\/Sigfox_input (or #APPDIR#/Sigfox_input in case ofvalid syntax for Windows and Linux).
- Archive: name of the directory where data files will be moved after being processed. The KOM process will move the data files after processing to the subdirectories of this directory, which will be named according to respective stations (e.g B.Sigfox_1) and it will adds a time stamp indicating the processing time (e.g. a file msg_21FDA7.txt) may be archived as msg_21FDA7_2018-10-26 -06-26-08.txt).
Similarly to the input file, a symbolic constant #APPDIR# may be used, e.g. #APPDIR#\Sigfox_archiv
Note 1: Invalid files or files for which no station has been identified will be moved to the subdirectory BAD after processing.
Note 2: If the archive directory is not specified, all files will be deleted after processing.
...
Parameter | Description | Unit / size | Default Value |
---|
| Type of connection between D2000 KOM process and other party (LoRaWAN gateway, network server, cloud). Currently supported are:- Kerlink IoT Station SPN (JSON via UDP packets): communication with Kerlink IoT Station with firmware SPN (Small Private Network). Line must be of the SerialOverUDP Device Redundant type.
- MQTT Client (JSON via MQTT): communication with network server or cloud using MQTT protocol. Line must be of the TCP/IP-TCP type.
- Sigfox Client (JSON via HTTPS): communication with Sigfox cloud
| - | Kerlink IoT Station SPN |
| Name of field with identifier of LoRaWAN device (mote). Note: For JSON messages that can be structured, the syntax level1.level2.level3 ... is supported e.g. rx.moteeui and if they contain fields (indexed from 1) then also the syntax level1[index1].level2[index2].level3 ... is supported e.g. rx.gwrx[1].time. For examples see description of I/O tags of the Envelope type.
| - | rx.moteeui | Note: For Sigfox data files, which may contain multiple values (historical), index 0 resp. empty index (e.g. data[].device) can be used. This indicates that all field elements are to be processed. | - | rx.moteeui |
| Name of field with payload. See the notes Kotva |
---|
| pf | pf | Payload Field NameName of field with payload. See the note next to the Mote Field Name parameter.- | rx.userdata.payload |
| A method of payload encoding in the message. Supported encoding:- Base16 + Base64 encoding (Kerlink SPN) - for Connection Type=Kerlink IoT Station SPN
- Base64 encoding (TheThings.network) - for Connection Type=MQTT Client communicating with TheThings.network cloud
- Base64 encoding (Loriot, Slovanet, Sigfox) - for Connection Type=MQTT Client communicating with LoRaWAN clouds (Loriot and Slovanet clouds) as well as Sigfox
- None - message contains a payload without encoding - not yet used
| - | Base16 + Base64 encoding |
| Name of field with time stamp. If the field is not found, the current time is assigned to the values. See the note notes next to the Mote Field Name parameter. | - | rx.gwrx[1].time |
| Mask for parsing a value in field with time stamp. Note: from settings of time station parameters depends whether the time is interpreted as local or UTC with configured offset. Special masks are:- UNIX - the numeric value represents the number of seconds from epoch 00:00:00 01.01.1970 UTC.
- UNIXMS - the numeric value represents the number of miliseconds from epoch 00:00:00.000 01.01.1970 UTC.
| - | yyyy-mm-dd hh:mi:ss |
| The name of field that indicates the message type. If the value is empty, the message type is not distinguished. (For example, cloud Loriot sends messages of a various types.) | - | |
Frame Type Field Required Value | If the message type differentiation is active (non-empty value of Frame Type Field Name parameter), the message type must match the specified value, otherwise, the message is ignored. | - | |
| Enabling the detailed statements about sending and receiving values. | YES/NO | NO |
Parameters specific for Connection Type=MQTT Client. |
| See the description of the User Name parameter in the MQTT protocol documentation. |
| See the description of the Password parameter in the MQTT protocol documentation. |
| See the description of the Topic Filter parameter in the MQTT protocol documentation. | +/+/+/up |
| See the description of the Subscribe QoS parameter in the MQTT protocol documentation. |
| See the description of the Client ID parameter in the MQTT protocol documentation. |
| See the description of the Clean Session Flag parameter in the MQTT protocol documentation. |
| Format of JSON message used while writing a value. The content of I/O tag of Write type will be encoded (depending on the Payload Encoding parameter) and inserted into the message, where it will replace the #PAY# string. The default value "{"port":1, "confirmed":false, "payload_raw":#PAY#} was tested when sending data to cloud TheThings.Network. | - | "{"port":1, "confirmed":false, "payload_raw":#PAY#} |
| See the description of the Publish QoS parameter in the MQTT protocol documentation. |
| See the description of the Ping Interval parameter in the MQTT protocol documentation. |
| See the description of the Reply Timeout parameter in the MQTT protocol documentation. |
| See the description of the Wait Timeout parameter in the MQTT protocol documentation. |
| See the description of the Max. Wait Retry parameter in the MQTT protocol documentation. |
Line parameters tested for Connection Type=Kerlink IoT Station SPN towards for Kerlink IoT Station 868 with firmware SPN
...
Line parameters tested for Connection Type=MQTT client towards for TheThings.network
Parameter | Value |
---|
Connection Type | MQTT client |
Mote Field Name | dev_id or 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 |
Line parameters tested for Connection Type=MQTT client towards for Loriot.io with following setup:
...
* Note.: Timestamp is sent in local time. Station time settings are to be configured accordingly.
...
Line parameters tested for Connection Type=Sigfox Client (JSON via HTTPS) towards Sigfox cloud
Parameter | Hodnota |
---|
Connection Type | Sigfox Client (JSON via HTTPS) |
Mote Field Name | data[].device |
Payload Field Name | data[].data |
Payload Encoding | Base16 encoding (Slovanet, Loriot, Sigfox) |
Time Field Name | data[].time |
Time Mask | UNIX |
Frame Type Field Name |
|
Frame Type Field Required Value |
|
Kotva |
---|
| komunikacna_stanica |
---|
| komunikacna_stanica |
---|
|
Communication station configuration...
- Communication protocol "IoT over LoRaWAN".
- Station address: the address of the station is the identifier of the specific device (mote) that is in the Mote Field Name field.
- Communication protocol "IoT over LoRaWAN".
- Station address: the address of the station is the identifier of the specific device (mote) that is in the Mote Field Name field.
- for Connection Type=Kerlink IoT Station SPN is address a text representation of 8 byte LoRaWAN address (e.g. 00-00-00-00-21-1a-e3-c8)
- for Connection Type=MQTT Client the address may be a text representation of 8 byte LoRaWAN address (e.g. 00-00-00-00-21-1a-e3-c8)
- for Connection Type=MQTT Client the address may be a text representation of 8 byte LoRaWAN address (e.g. 0018B2000000147D) 0018B2000000147D) or a symbolic address defined within MQTT server (e.g. fieldtestdevice)
- for Connection Type=Sigfox Client (JSON via HTTPS) address is a device identifier (e.g. 21FDA5)
Kotva |
---|
| stanica_parametre |
---|
| stanica_parametre |
---|
|
Station parameters
...
Parameter | Description | Unit | Default Value |
| LoRaWAN type of device. Each device type may have its own structure of transmitted data (payload). The list of supported devices will gradually increase. Currently supported devices are:- None - no device
- OEM device - payload parsing is performed by an external dll library
- Adeunis RF Field Test Device - test device sending GPS position data and temperature data
- SolidusTech IndoorUNI Sensor - indoor temperature and humidity meter
- SolidusTech miniUNI DS18B20 Sensor - temperature meter for outdoor use
- Adeunis RF LoRaWAN TEMP (ARF8180BA) - temperature meter for outdoor use with two independent temperature sensors.
| - | None | - Codea WZU-SG (Landis+Gyr Ultraheat T550) - radiomodule WZU-SG by Codea for heat meter Landis+Gyr UH50/UC50/T550
| - | None |
| Name of external DLL library with code for payload parsing for Device Type=OEM device. | - | |
| Timeout after which the station goes into communicatoin error state if no data has been received. | hh:mi:ss | 01:00:00 | Kotva |
---|
mt | mt | goes into communicatoin error state if no data has been received. | hh:mi:ss | 01:00:00 |
| Topic used when writing the value (for Connection Type=MQTT client). Note: for ipesoft-test user and fieldtestdevice device was tested towards TheThings.network writing with MQTT_TOPIC=ipesoft-test/devices/fieldtestdevice/down. | - | |
Sigfox Download Command File | For Sigfox: path to the file for downloading data from the Sigfox cloud to the directory (parameter Input file of the File I/O line) together with possible parameters. The path may contain (like the Input File parameter) the symbolic constant #APPDIR# (application directory) as well as #ADDR# (station address) so that a single file can be used to handle multiple stations. Example for Windows: #APPDIR#/Sigfox_cmd/get.bat #ADDR# Example for Linux: /bin/sh #APPDIR#/Sigfox_cmd/get.sh #ADDR# Note: this parameter does not have to be entered if an independent mechanism is used to download the data.
The download itself can use the curl utility to perform a HTTPS GET query against the sigfox web server. Example for Windows platform - file get.bat (download is via proxy server, server identity verification is disabled, xxx:yyy is user name and password for Sigfox cloud): rem default count=1, possible to download upto 100 values set count=1 rem ID of device is 1st parameter set id=%1 c:\utils\curl.exe --proxy http://proxy:3128 --insecure -u xxx:yyy -o msg_%id%.txt https://backend.sigfox.com/api/devices/%id%/messages?limit=%count%
Example for Linux platform - file get.sh (it is necessary to explicitly specify that files are downloaded e.g. to Sigfox_input directory): #/bin/sh# default count=1, possible to download upto 100 values count=1 base=$(dirname "$0") #ID of device is 1st parameter id=$1 #name of downloaded data file (including directory) datafile=$base/../Sigfox_input/msg_$id.txt /usr/bin/curl --proxy http://proxy:3128 --insecure -u xxx:yyy -o $datafile https://backend.sigfox.com/api/devices/$id/messages?limit=$count |
|
|
| For Sigfox: timeout for downloading data via Sigfox Download Command File. If downloading takes longer, station will go to error. | sec | 30 | MQTT Topic (for writing)Topic used when writing the value (for Connection Type=MQTT client). Note: for ipesoft-test user and fieldtestdevice device was tested towards TheThings.network writing with MQTT_TOPIC=ipesoft-test/devices/fieldtestdevice/down. | - | |
I/O tag configuration
...