Table of Contents

FAQ all products


How to know the password to connect in SSH according to the product and the version?

Start an SSH client (typically Putty on Windows) using the gateway’s name or IP address (the port is the standard 22).
After getting a prompt: enter login/password (e.g. “root / password”).

Wirnet i-series gateways

Default password is built using the last 6 digits of the serial number, CPU module S/N for Wirnet iBTS and board ID for other Wirnet Gateways: pdmk-$serialno (case sensitive).

For example:
If a Wirnet iBTS has 729ATf061ECD as CPU module ID, the password will be: pdmk-061ECD
If a Wirnet iFemtoCell has 704BEc1234AB as board ID, the password will be: pdmk-1234AB

This 6 digits numbers can also be retrieved in the hostname. It is displayed in the shell prompt:

Keros (Kerlink OS Distribution) 4.3.3 klk-lpbs-0507DD /dev/console
klk-lpbs-0507DD login: root
Password: pdmk-0507DD

Wirnet Station gateways

Firmware version Login Default password
2.x root root
3.1 root pdmk-0<serialno_last_7_characters_lowercase>
>=3.3 root pdmk-0<serialno_last_7_characters_uppercase>

Examples:

How to take charge of my product?

For each Kerlink gateways, you can find a Setup page which gathers all the information you need to get started with your product. To access directly to these pages, go to KERLINK WIKI homepage https://wikikerlink.fr/. Click on the desired product to arrive on the product quick start page.

Where to find LoRaWAN gateways installation recommendations?

An application note providing guidelines to anticipate the gateways installation is available on KERLINK WIKI. Go to https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:resources:resources#application_notes, section Application notes. This application note could be considered as a check list, before installing the gateways, to make sure all critical parameters are identified and will be properly addressed during the installation.

Where to find information about LoRaWAN gateways lightning protection?

An application note providing guidelines to understand the lightning phenomenon, its consequences, and solutions to protect the electronic devices in general, and LoRaWAN gateways more specifically is available on KERLINK WIKI. Go to https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:resources:resources#application_notes, section Application notes.

How to improve radio coexistence performance of LoRaWAN gateways?

An application note providing information about radio coexistence performance of LoRaWAN gateways is available on KERLINK WIKI. Go to https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:resources:resources#application_notes, section Application notes.

This application note details the phenomenon which could cause desensitization of the LoRaWAN gateways because of the colocalized transmitters i.e.:

The application note also provides some recommendations to avoid desensitization by using:

How to optimize LoRaWAN gateways coverage?

An application note providing some basics to understand how to determine the radio coverage and moreover how to optimize it thanks to an appropriate installation is available on KERLINK WIKI. Go to https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:resources:resources#application_notes, section Application notes.

Where to find documentations about Accessories?

The accessories recommended by KERLINK for a product are listed in its leaflet. The leaflets are accessible from the quickstart page of each product, section Documentation. To access directly to these pages, go to KERLINK WIKI homepage https://wikikerlink.fr/. Click on the desired product to arrive on the product quickstart page.

The datasheets of the accessories are then available on https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:resources:resources#application_notes, section Accessories documentations.

My magic link may not work for the following reasons:

If necessary, you can contact the support team via OTRS or by email to support@kerlink.fr by sending the following information:

Customer:       
WMC Instance:         
Fleet:              
Model: ex: Wirnet iStation 915
Product ID:     
Region: ex: EU868 US915 RU864
EUI:                

Wirnet i-series gateways

Factory reset can be done:

kerosd -s 
reboot

Wirnet Station gateways

By default, the userfs partition /mnt/fsuser-1 is not impacted by the recovery process. The eMMC partition /mnt/mmcblk0p1/ is not impacted by the recovery process.

fw_setenv bootfail 100
reboot

Product: WirmaV2 lora V
  WARNING: Machine type unknown, set default wirmaV2 Module
  Autoboot in 1 seconds, enter Password:
  KLK-Uboot> kkkkkkkkkkkkkkkkkkkkkkkk
  Unknown command 'kkkkkkkkkkkkkkkkkkkkkkkk' - try 'help'
  KLK-Uboot> watchdog disable
  Watchdog disabled
-Set the recovery mode
setenv bootfail 100
saveenv
reset

How to correctly configure a SIM Card APN?

Wirnet i-series gateways

Mandatory information to configure your gateway is:


The Cellular configuration can be done:

A reboot of the gateway is required after cellular configuration to take into account modifications done via Web interface.

It is used to define APN, PIN code and cellular context. Example of configuration is available in the default provisioning file.

To update oFono with the last configuration, each time the provisioning file, or the SIM card is changed, a service reset has to be performed: /etc/init.d/ofono reset.

Roaming use case:

Wirnet Station gateways

To configure the GPRS auto connection and the link monitoring at startup:

# Selector operator APN
GPRSAPN=m2minternet
# Enter pin code if activated
GPRSPIN=
# Update /etc/resolv.conf to get dns facilities
GPRSDNS=yes
# PAP authentication
GPRSUSER=kerlink
GPRSPASSWORD=password

How to configure WiFi on a iFemtoCell?

The WiFi configuration can be done:

Go in the Network configuration panel. Choose your Wi-Fi access point in the list. Click on the access point name.

ConnMan’s WiFi (wlan) Ethernet configuration is done via the editable configuration file /etc/network/connman/wlan.config.
To manually configure a WiFi network, the fields Name and Passphrase must be changed.
Connman supports multiple WiFi 'services' descriptions. Just add a new 'service' with another name than “service_WLAN”.
It also supports various type of configuration (static, tls, peap, …).

The WPS button of the Wirnet iFemtoCell can be used simply to connect the gateway to a WiFi network.
The WPS button is signalled by a WiFi symbol on the gateway.

Wirnet Station gateways

Edit the network configuration file /etc/sysconfig/network. Disable DHCP requests: set the field to no instead of yes.

# claims dhcp request on eth0
ETHDHCP=no
Modify the Ethernet configuration with parameters you want. 
# if static addr is selected on eth0
ETHIPADDR=192.168.4.155
ETHNETMASK=255.255.255.0
ETHBROADCAST=192.168.4.255
ETHGATEWAY=192.168.4.1
 
# manual DNS server
DNSSERVER1=9.9.9.9
DNSSERVER2=208.67.222.222

Then restart the network script /etc/init.d/network restart, or reboot the Wirnet Station.

Wirnet i-series gateways

ConnMan’s LAN Ethernet configuration is done via an editable configuration file /etc/network/connman/lan.config. This file is not created by default on the gateway. A configuration file /etc/network/connman/lan.config.example is provided.
Once file /etc/network/connman/lan.config is created, relaunch ConnMan to apply the configuration /etc/init.d/connman restart.

By default DHCP is used, there is no default IP address. To use static IP addressing, the field IPv4 can be changed, for example, from

IPv4 = dhcp

to

IPv4 = 192.168.1.5/24/192.168.1.1

Where 192.168.1.5 will be the new IP address of the Wirnet gateway, 24 will be the subnet length (in bits), and 192.168.1.1 will be the default gateway.

If DNS resolution is needed, the Nameservers field can be added. Multiple addresses can be used. For example:

Nameservers = 192.0.2.1,192.0.2.2

ConnMan automatically detects the changes and applies them when the configuration file is closed.

Since firmware 4.3.x, CPF is installed in Keros firmware. The configuration is achieved in 2 steps:

  1. lorad configuration
  2. lorafwd configuration

lorad configuration

The goal of the lorad configuration is to define the frequency plan that will be used to receive packets from the end-devices, to enable the LBT feature and to configure the class B beacons.

lorafwd configuration

The goal of the lorafwd configuration is mainly to define to which LNS LoRa packets will be forwarded to.

Note that the configuration of the downlink port, uplink port and LNS address can be done directly in the CPF activation comman: Keros application configuration.

To configure your Kerlink gateway to send messages to the TTN network you can consult the TTN website: https://www.thethingsnetwork.org/docs/gateways/kerlink/

For firmware version 4.3.3 and above, activate the CPF on european TTN server with the command:

klk_apps_config --activate-cpf --lns-server eu1.cloud.thethings.network --lns-dport 1700 --lns-uport 1700
Keros application configuration examples

How to configure a push on WMC?

Define your push configuration


Select the “Push configurations” after selecting Clusters from the Administration menu:

Click the following link to see how to proceed: https://wmc-poc.wanesy.com/docs/administration/create-push-configuration.html
(if needed, replace the URL domain wmc-poc.wanesy.com by your own WMC)

Define Identity parameters for your push configuration


To create a push configuration, you need to define the following information:

For message detail level, 3 levels are available (from the less detailed to the more detailed):


Define Connections parameters in your push configuration


To define the connection parameters, you need to specify :


Define Custom headers in your push configuration (optional)


If needed, you can define specific headers for your push configuration.



Specify your push configuration for your cluster


Select the “Clusters” option after selecting Clusters from the Administration menu:

The “Push configuration” can be added during the cluster creation or on an already existing cluster with the “edit” option (pen on the right side).

Fill the following information :

How to configure the Tx power of a gateway?

In order to adjust the Tx power of a gateway, the antenna gain, the insertion losses and regulations must be taken into account. In the CPF lorad frequency plan configuration file, you can indicate the gateway antenna gain and the insertion loss value.

In WMC web interface, these fields can be checked and modified in the radio configuration page of each gateway.

tx_power.jpg

How to configure and use CFlist?

CFlist stands for Channel Frequency list. CFList is a list of five channel frequencies for the channels three to seven whereby each frequency is encoded as a 24 bits unsigned integer (three octets).
LoRaWAN implements this CFList of 16 bytes in the JoinAccept message.
The CFList is optional and its presence can be detected by the length of the join-accept message.
If present, the CFList SHALL replace all the previous channels stored in the end-device apart from the three default channels.
The newly defined channels are immediately enabled and usable by the end-device for communication.
The format of the CFList is region dependent.
Refer to the LoRaWan Regional Parameters v1.0 specification to get details about these 16 bytes.

How to configure network delays?

From the Backhaul configuration menu of each gateway, the network delay uplink and downlink can be configured. The default configuration is 350ms.

On the WMC web interface, go to Managements → gateways. Click on the gateway_EUI and go to Configurations → Backhaul

This value is an indication of the network delays that the gateway has towards and from the LNS server.
The latency of the gateway can be evaluated from the ping (delay up + delay down) KPI.

On a fast network, to target the RX1 window with maximum anticipation, the following configuration must be set:

Network max. delay up Network max. delay down
0 400

On a slow network, to target the RX2 window with maximum anticipation, the following configuration must be set:

Network max. delay up Network max. delay down
0 1400

What is the difference between a private and a public gateway on WMC?

A public gateway is a gateway that can be used by all the devices declared in the WMC instance. A private gateway is a gateway that is only used by the end-devices declared for the customer it belongs.

How to get logs? How to increase level of logs?

Wirnet i-series gateways

Gathering logs from shell since release 4.2

Gathering logs from shell on older releases

Gathering logs from USB (no commands required)

Wirnet Station gateways

Gathering logs from shell

Execute the command below to create an archive which contains all the logs. (Copy/paste all the lines at once, this is only one command)

uname -a > /tmp/status; \
date >> /tmp/status; \
uptime >> /tmp/status; \
ps >> /tmp/status; \
get_version >> /tmp/status;\
ls -al /etc/rc.d/rc3.d/ > /tmp/boot_time_scripts_list; \
head -n 10 /dev/nmea > /tmp/nmea;\
tar -czvf logs_klk_`hostname`_`date +%s`.tar.gz \
    /mnt/fsuser-1/trace_agent/    \
    /var/log/*                    \
    /knet/knetd.xml               \
    /etc/                         \
    /tmp/status                   \
    /mnt/mmcblk0p1/*.log*         \
    /mnt/fsuser-1/openvpn/traces/ \
    /mnt/fsuser-1/lorad/etc/      \
    /mnt/fsuser-1/lorafwd/etc/    \
    /mnt/fsuser-1/bscc/traces/    \
    /mnt/fsuser-1/snmp/traces/    \
    /mnt/fsuser-1/lora/var/log/   \
    /mnt/fsuser-1/spf/var/log/    \
    /mnt/fsuser-1/spf/etc/global_config.json \
    /tmp/nmea \
    /tmp/boot_time_scripts_list''

Then use your favourite tool (WinSCP, a USB stick, scp,…) to download the file logs_klk_“YOUR_SERIAL_NUMBER”_“EPOCH_TIMESTAMP”.tar.gz.

Gathering logs from USB (no commands required)

Download the script autorun_klk.sh and copy it on a USB stick.
Plug the USB key on the Wirnet station.
Wait for the mod2 led fast blinking. The execution of the script takes about 1-2 minutes.
Unplug the USB key.
An archive with all the required logs has been created on the USB stick.

Both daemons generate logs in the /var/log/lora.log* files.

The verbosity of the daemons can be increased using the “EXTRA_ARGS” field under /etc/default/lorad and /etc/default/lorafwd.

NOTICE = -v: Displays start and stop traces
INFO = -vv: Displays the configuration, uplinks, downlinks…
DEBUG = -vvv: Displays the hexdump of the packets

How to check what is installed on a gateway?

Wirnet i-series gateways

    /etc/default/lorad 
    /etc/default/lorafwd 
    /etc/default/bscc 
    /etc/default/lora-snmp 
    /etc/openvpn/ 

Wirnet Station gateways

Launch the command get_version -u -v.

Wanesy SPN

The Wanesy SPN version is available on the web user interface. Click on the (i) button in the upper right corner of the screen.

Warranty vs Maintenance Services: Duration and scope of work

What to check if the messages of an end-device are not received on WMC?

Firstly, check the status of your End-Devices in WMC web interface Menu Management/End-devices

In case of OTAA, check the DevEUI / AppKey / AppEUI of the end-device declared on the WMC.
In case of ABP, check DevEUI / Application session key / DevAddr / Network session key of the end-device declared on the WMC.

If you are receiving uplink messages but no downlinks are sent to your end-device:

If you see errors in the CPF logs, it can be due to network delay issue: in this case, check your network latency. In your WMC gateway dashboard, go in KPI menu and choose the ping KPI. If the ping value is not good (>800ms RTT) , you need to go in the “Configuration/Backhaul” menu to change the network delays values. On a slow network, the following configuration must be set:

network max. delay up network max. delay down
0 1400

Go in the network alarm panel to check if you have duty cycle issue. Depending on the local regulation, the gateway transmission duration can be limited. In this case the gateway stops emitting during the time requested to respect the regulation.

What means DEVNONCE ERR status for an end-device in WMC ?

Type : JOIN DEVNONCE ERR
Description : JOIN REQUEST with already used DevNonce was received and refused.
Potential root cause: DevNonce has already been used by the end-device.

What to check in case of network disconnections?

Most of the time, disconnections are due to the quality of the backhaul (QoS) especially when using a cellular backhaul (with a high network latency).

Possible root causes :

  1. Hardware issue (ethernet cable problem,SIM card present, etc…)
  2. Backhaul QoS is bad (high network latency)
  3. Network monitoring issue
  4. OpenVPN issues
  5. SW issues (bugs)
  6. Power loss issues

Check for a hardware issue

Check the ethernet cable connection, check if SIM card is correctly inserted, etc…

Check the backhaul QoS

Check first if disconnections are due to the quality of the backhaul.
Select the KPI « ping » in the gateway KPI menu.
Look at the average ping and max ping values : if the value is greater than 1s that can explain the disconnections. We can do anything except changing APN to have better results.

Check the network monitoring feature

You can check if Network monitoring is enabled. If disabled, enable it ! See the wiki to know how to proceed. Network monitoring can help to solve some disconnections issues.
Check the network monitoring configuration parameters in /etc/network/networkmonitoring.conf file. Sometimes ICMP protocol is filtered by the network. So in this case, it is recommended not to use the “ping” method but instead choose the “tcp” method (port 80 is never filtered).

Check the connectivity with the OpenVPN server

Perform some ping 10.8.0.1 from the gateway and check for network latencies or issues.
If ping says « unreachable », do an ifconfig command. If the vpn interface is not up and has no ip, check your OpenVPN certificate validity.

Check for the OpenVPN certificate validity

To check OpenVPN certificate validity, you can use following commands depending of your product & firmware version:

Firmware 4x:

grep -iA3 "Validity" /.update/update.log | tail -3 |grep -i "not after"| sed 's/^[ \t]*//'

Firmware 5x:

openssl pkcs12 -info -in /etc/openvpn/bscc.p12 -nokeys -password file:/etc/openvpn/bscc.password| openssl x509 -noout -enddate

Firmware 3x (Wirnet Station & iSeries):

openssl pkcs12 -info -in /etc/openvpn/client-openvpn.p12 -nokeys -password pass: | openssl x509 -noout -enddate

Check for OpenVPN certificate install issue

Try to connect remotely to the gateway. If the connection is unstable (connections and disconnections occur), check that no other gateway has the same VPN IP address (because the same OpenVPN certificate has been installed on several gateways):
Launch the command { echo status; sleep 1; } | telnet localhost 7505 2>/dev/null | grep -i <GW_VPN_IP>.
If the serial change that means that several gateways have the same VPN IP address.
To solve this issue, identify the « bad » gateway and uninstall the openVPN secret bad package and install the good one in one shot (build a specific single OpenVPN package that contains the remove ipk of the bad secret package and the install of the new OpenVPN secret package: Package removal).

Check for firewall issues

Try to connect remotely to the gateway. If you success to connect when the status of the gateway is « disconnected », check the SNMP traffic (select Diagnostic > SNMP).
If you see some « unreachable » errors, check your firewall rules iptables - -list-rules.
If the list is corrupted due to a bug, reboot the gateway.

Check for Power loss issues

Check for power loss alarms. Check in the BSCC logs if you see some power loss messages. Solve the power issue.

What to do in case of FPGA version error in the logs of packet forwarder?

How to install/uninstall SPN firmware?

By default, Wanesy SPN firmware is not installed on Kerlink gateways. Therefore, to install the Wanesy SPN the following steps are required:

  1. Check the firmware version of the gateway.
  2. If the firmware is not the expected one, upgrade it.
  3. Upgrade SPN firmware via Web Interface, SSH or by USB.

Software update over Web interface “recommended”.

  1. Download the firmware from Resources page. The firmware can be download in the download section of the firmware delivery note. The file is named liveburner_X.X.X-spn_klkgw-signed.ipk.
  2. Connect to your gateway web interface.
  3. Go in the “Administration” and “Update” Menu.
  4. Drag & drop your SPN ipk file and click on “UPDATE GATEWAY”.
  5. A reboot is required to finalize the update, click on “REBOOT GATEWAY”.

What to check in case of SPN issues?

Firstly, check the logs. Two types of logs are available on the gateway:

  1. Public log: these logs can be accessed and read by the user. Public logs help the user to install and manage the gateway
  2. Internal log: these logs can be retrieved by the user. Internal logs are for internal Kerlink debug purposes only. Once retrieved, the logs can be sent to Kerlink for analysis.

Logs can be retrieved thanks to:

  1. The web user interface log menu
  2. The local FTP server service
  3. The USB key service
  4. Command get_logs on SSH session

Check the operation of the following services:

  1. Check if the gateway synchronizes its time with NTP server
  2. Check if the gateway DNS service work well
  3. Check if you have fix IP address or DHCP
  4. Check date and time
  5. Use get_logs command to download all gaetway logs (SSH session)

From the WMC dashboard :

How to send a MAC command?

A MAC command is a downlink command (Server > End-device).
So first read the next section to know how to send a downlink command.
To send a specific MAC command as a downlink message, you need the LoRaWan Regional Parameters documentation from the Lora Alliance: https://lora-alliance.org/wp-content/uploads/2020/11/rp_2-1.0.1.pdf.
The MAC commands are dependant of your region.

Here is an example to set SF12 for end-devices using the ADR feature for EU-868 frequency band:
MAC command: LinkADRReq
If you want to set SF12, use the following parameters:

Type: LinkADRReq
DataRate: 0
TxPower: 1
chmAsk: 7
chMaskCtrl: 0
NbTrans:1

Encode the payload like this:

03 01 07 00 01

03: LinkADRReq
01: DataRate:0 (SF12) & TxPower:1 (MaxEIRP-2dB=27dBm-2dB)
07 00: = 0x0007 means using channels 1,2,3
01: Redundancy bits that mean NbTrans=1 and chMaskCtrl=0 (using channels 1 to 16).

Note that this format uses the little endian format, i.e you have to reverse bytes for fields that uses more than 1 byte. For instance, to activate 8 channels, you should encode the chMask as FF 00 (=0x00FF).

What to check before asking for an after-sales return?

What is MQTT?

MQTT stands for MQ Telemetry Transport. MQTT is an open OASIS and ISO standard (ISO/IEC 20922) lightweight, publish-subscribe network protocol that transports messages between devices. The MQTT protocol defines two types of network entities: a message broker and a number of clients. An MQTT broker is a server that receives all messages from the clients and then routes the messages to the appropriate destination clients. An MQTT client is any device (from a micro controller up to a full-fledged server) that runs an MQTT library and connects to an MQTT broker over a network.

What is a MQTT broker?

The MQTT broker is software running on a computer (running on-premises or in the cloud), and could be self-built or hosted by a third party. It is available in both open source and proprietary implementations.

The broker acts as a post office, MQTT doesn’t use the address of the intended recipient but uses the subject line called “Topic”, and anyone who wants a copy of that message will subscribe to that topic. Multiple clients can receive the message from a single broker (one to many capability). Similarly, multiple publishers can publish topics to a single subscriber (many to one).

Each client can both produce and receive data by both publishing and subscribing, i.e. the devices can publish sensor data and still be able to receive the configuration information or control commands (MQTT is a bi-directional communication protocol). This helps in both sharing data, managing and controlling devices.

What is a MQTT Topic?

Information is organized in a hierarchy of topics. When a publisher has a new item of data to distribute, it sends a control message with the data to the connected broker. The broker then distributes the information to any clients that have subscribed to that topic. The publisher does not need to have any data on the number or locations of subscribers, and subscribers, in turn, do not have to be configured with any data about the publishers.

If a broker receives a message on a topic for which there are no current subscribers, the broker discards the message unless the publisher of the message designated the message as a retained message. A retained message is a normal MQTT message with the retained flag set to true. The broker stores the last retained message and the corresponding QoS for the selected topic. Each client that subscribes to a topic pattern that matches the topic of the retained message receives the retained message immediately after they subscribe. The broker stores only one retained message per topic.[15] This allows new subscribers to a topic to receive the most current value rather than waiting for the next update from a publisher.

Which Port does MQTT Normally Use?

The standard port is 1883.

Which Protocol does MQTT use?

The standard version uses TCP/IP.

Can you use MQTT without a broker?

No.

Can multiple clients publish to the same topic?

Yes.

Which broker can be chosen to use with the WMC ?

Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.

Refer to https://mosquitto.org/ to install the broker for your platform.

Unfortunatelly in the WMC design, MQTT is only used for push events. But… You can write an application that interfaces your AS and WMC dedicated to receive your MQTT requests from your AS and transmit downlink message to your end-device though the WMC using the GMS API web service CreateDataDown:

     AS  ---downlink---> [MQTT BROKER]--------> Application ---------CreateDataDown------> WMC ----> GW -----> End-Device
 (Publisher)                                    (Subscriber) 

Is the Retain flag is set by default in the WMC Push configuration?

This option is currently not supported in the current Server Software release. This improvement will be delivered in a future release.

What about WMC GMS API?

GMS API overview

The GMS has several interfaces that can be accessed through APIs.

A RESTful Web services architecture follows basic design principles:

The API version level is requested by the client using the accept HTTP header, for example here with API v1:

Accept: application/vnd.kerlink.iot-v1+json
Many changes have been done between GMS API (WMC 3.0) and OSS API (WMC 2.3.x). Refer to the documentation section to get details of all methods available for this new WMC release.

Examples

GET https://kerlink.wanesy.fr/gms/application/customers/198/fleets?page=3&PageSize=40

This web service allows to get the page number 3 of the list of fleets of the customer 198.

VERB PROTOCOL DOMAIN PATH QUERY STRING
GET http kerlink.wanesy.fr /gms/application/customers/198/fleets ?page=3&PageSize=40

The list of possible verbs is : GET, POST, PUT, DELETE, PATCH:

Using the command-line These examples use the command-line program curl to make HTTP requests.

Logging in

The use of the API is bound to a fresh token. Here is how you can request for a new token:

curl -s 'https://kerlink.wanesy.fr/gms/application/login' \
  -H 'Accept: application/vnd.kerlink.iot-v1+json' \
  -X POST \
  -d '{"login":"jdoe","password":"P@ssW0rd5ecRe7"}' \
  -H 'Content-Type: application/vnd.kerlink.iot-v1+json' \
  | jq .

Here jq is used to prettify the JSON output so that it is readable and indented:

{
  "expiredDate": 1500537180050,
  "tokenType": "Bearer",
  "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I"
}

Requesting the customers list example

curl -s 'https://kerlink.wanesy.fr/gms/application/customers' \
  -H 'Accept: application/vnd.kerlink.iot-v1+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I' \
  | jq .

Result:

{
  "count": 2,
  "pageSize": 50,
  "page": 1,
  "totalCount": 2,
  "list": [
    {
      "id": 130,
      ...
    }
  ],
  "nbPages": 1
}

Requesting a customer ID example

$ curl -s 'https://kerlink.wanesy.fr/gms/application/authenticatedUser' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I' \
  -H 'Content-Type: application/vnd.kerlink.iot-v1+json;charset=UTF-8' \
  -H 'Accept: application/json, text/plain, */*' \
  | jq  '.links[] | select(.rel=="customer") | .href'

The jq filter is used to show only customer ID information. In fact, it will display the href value for all links objects for which the rel key has the customer value.

Example result with customer ID number 23:

"/application/customers/23"

Sending data to an end-device

Not all fields in TxMessageDto are required when creating a new TX message. The actual parameters to send are:

No other parameter is supported.

Here is an example with SwaggerUI.

The webservice to use is createDataDown.

For the Data Down Dto, put the following parameters values:

{
  "fPort": 1,
  "confirmed": false,
  "endDevice": {
    "devEui": "0018B20000001DB4"
  },
  "payload": "TEST DATA DOWN",
  "contentType": "TEXT"
}

The corresponding curl command is: (eventually change the server url and the token value for your needs)

curl -X POST "https://wmc-poc.wanesy.com/gms/application/dataDown" -H  "accept: application/json" -H  "Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbWluLWRzYyIsInJvbGUiOiJTVVBFUl9BRE1JTiIsImN1c3RvbWVySWQiOjEsIml55555ImdtcyIsImV4cCI6MTYwMjU0MjkxNn0.BSvPxtp-ICGY1Mbwq-tkxBNWQjBMg2VXKk4wtTN-t2U" -H  "Content-Type: application/json" -d "{\"fPort\":1,\"confirmed\":false,\"endDevice\":{\"devEui\":\"0018B20000001DB4\"},\"payload\":\"TEST DATA DOWN\",\"contentType\":\"TEXT\"}"

How performing asynchronous requests with GMS API ?

Most of time GMS API Web services are synchronous: the user sends a request and he receives the answer in a synchronous mode.

This is the case for instance for xxx.

But some web services are asynchronous: the user sends a request and the response is received later. The user can do anything else during this time period of processing request.

This is the case of the following web services:

Two use cases need to use a different way because: - The task may take a long time to be processed (for example a spectrum with a long duration). - The task needs to be launched within another process (new thread).

Here are the steps to follow to manage correctly asynchronous web services:

  1. Call your web service: for instance createGatewayCommand (define the required parameters)
  2. Get the TaskID in the response body
  3. Call the web service GetTask and pass the TaskID as parameter
  4. Check the response body status:
    • If status is OK then parse the body for the request answer.
    • if status is PENDING then wait a short time and call the getTask again. Return point 3.
    • if status is KO then stop. The gateway is certainly disconnected.

What to do if my ABP end-device doesn’t communicate anymore on WMC with a Data Mic Error?

Type Description Potential root cause
DATAUP MIC ERR Integrity message error,
DataUp received with incorrect MIC,
Device’s message integrity is not ensured,
DataUp not decoded
Corruption of message,
Device trying to mock another one (attack),
either by reusing a FCNtUp
either with an invalid devNonce

What to check if I miss some messages (discontinuons frame counters)?

First, Check the radio configuration of your gateway and of your end-devices. The configuration must be exactly the same (same channels). If some channels are missing on the gateway, you can lose data.

Check the radio QoS of your gateways:

Check the backhaul QoS of your gateways:

How to check my end-devices are well covered by my gateways?

SNR means Signal Noise Ratio

SNR ~10 dB is excellent.
SNR ~-20 dB is not good.
A positive value is good, indicates that the received signal operates above the noise floor. In this case, RSSI measures the signal level (noise level can be ignored).
A negative value indicates that the received signal operates below the noise floor. In this case the RSSI measures the noise level (signal level can be ignored).
Note that even if the signal is under the noise floor, the Semtech chip SX1301 can do its job i.e can demodulate the signal even in a noisy environment.

Note that the spreading factor can limit the receiver conditions. For each spreading factor, there is a SNR limit, if this limit is reached the receiver won’t be able to demodulate the signal.

Spreading Factor SNR limit (dB)
7 -7.5
8 -10
9 -12.5
10 -15
11 -17.5
12 -20

If the SF increases by 1, the SNR limit changes by -2.5 dB.
So for a SF of 12, the SNR must be greater than -20 dB to have a good signal demodulation for the receiver.
For a SF of 7, the SNR must be greater than -7.5 dB to enable the receiver to demodulate the signal.

http://example.com|External Link

The RSSI (Relative Strenght Signal Indicator) is measured in dBm and is a negative value.
The closer to 0 the better the signal is.

RSSI ~-120 dBm is a weak signal (near the noise floor).
This is the minimum signal strength for LoRa reliable communications.
RSSI between - 110 dBm and -80 dBm indicates a correct signal.
RSSI ~-70 dBm is a reasonably good signal.\ RSSI ~-50 dBm is a pretty good signal.
RSSI ~ -30 dBM is an amazing signal !
RSSI > -20 dBM is too excellent ! Not possible in the field, indicates that the GW and the ED are in a Lab and are too near! LoRa is dedicated for long range applications ! :)

When the distance between the end device and the gateway increases, the signal gets weaker and therefore an increase spreading factor is needed for a lower receiver sensitivity to be able to demodulate the received signal. SF7 is used when the end-device is close to the gateway and SF12 is used when the end-device is far away from the gateway.

LoRa can transmit theoretically over 15 kms in best conditions (no physical obstacles, good antenna performance, good Tx power mode and a good node-gateway positioning).
Care about the radio signal may be affected by your environment (landscape with no obstacles, buildings, walls, vehicles, etc) and proximity of other radio devices (LTE base stations, antennas…).

Interesting documentation:

What to check if my end-device does not change spreading factor?

Check first that the ADR feature is enabled :

Check your radio QoS parameters: RSSI and SNR.
When radio QoS is not good enough, SF won’t change (using low datarate DR0 250 bits/s and SF12).
Best conditions is to have a positive SNR (nearest +10 dB) and a good signal [-110 dBm, -40 dBm].

When changing the SIM Card or changing parameters in the provisioning file of my Wirnet gateway, is a ofono service reset is mandatory?

Rebooting the gateway is sufficient to update the ofono component when changing the SIM card.
But when updating the provisioning file, ofono reset is mandatory to update the ofono component.
Avoiding to reset the Ofono service can lead to many modem errors such as “No SIM in modem” or “No APN configured” or “Not attached to the GSM network”.

If you hesitate and don't not know what to do, perform an ofono reset and a reboot!

What to do when the enddevice has the status "Data Up mic error" with the value "Exceed FcntUp max gap" ?

This message indicates that there is a too large gap between the previous FCountUp counter value and the new counter value.
That may happen when the gateway that was transferring the LoRa messages to the WMC server has been switched off a long time.

To fix this issue:

1/ Reset the enddevice
Normally the enddevice should rejoin the LoRa network and counter will restart from 0 after the join procedure.

If this operation does not fix the issue:

2/ Remove the end-device definition from the WMC dahsboard (de-provisioning) and re-create it (re-provisioning) then reset the end-device.
This last operation should make the enddevice recommunicating with the WMC server (LNS).