Server configuration

There are two different activation types for LoRaWAN - Over-the-air activation (OTAA) and Activation by personalization (ABP). Elvaco strongly recommends using OTAA, where all network keys are generated each time the module joins the LoRaWAN network. In contrast, for ABP, all keys are set manually and stay constant over time.

In OTAA mode

Before the module is able to transmit messages via the LoRaWAN network, device information needs to be added to the network server. More specifically, the following parameters needs to be registered in order to enable the network server to receive messages from the module:

Device EUI

The device EUI is a 16 digit module unique identification number. It is not configurable.

Application key

The application key of each device is generated by Elvaco and used in OTAA mode to generate network keys when the module joins the LoRaWAN network. Keys are managed in a secure way using Elvaco’s OTC (One Touch Commissioning) solution which includes the mobile application for configuration.

Join EUI

The Join EUI sets the identification number of the application server where data from the module shall be delivered. The identification number is set to a default value in all devices. The default value is presented in Elvaco OTC configuration options.

In ABP mode

If the activation mode is set to ABP, the application key does not need to be added to the network server. Instead the following information will be needed:

  • Network session key

  • Application session key

  • Device address


CMi4160 is configured via the Elvaco OTC App. It uses NFC to transfer settings to the module. Downlink may also be used for some applications.

Via Elvaco OTC app


To access the NFC field the meter must be open. Place your phone on the NFC mark.

Via downlink

Transmit interval

The transmit interval is used to set how frequently the module should transmit data on the LoRaWAN network. The parameter can be set to a value between 5 and 1440 minutes (i.e. between 5-minute and daily values).

Transmit interval in EcoMode

Table 180. Transmit intervals for different data rates in EcoMode

Data rate

Transmit intervals


180 min


120 min


60 min


30 min


20 min


If using message format Scheduled Extended+ (available from FW 1,05), the transmit intervals used in EcoMode will be according to the following table. Since the Scheduled Extended+ is scheduled, the minimal practical limit is always 60 minutes.

Table 181. Transmit intervals for different data rates in EcoMode, when using Scheduled Extended+

Data rate

Transmit interval


360 min


240 min


120 min


60 min


30 min


If EcoMode has been disabled, guarantees about battery-life no longer apply, even if EcoMode is activated later on.

Adaptive data rate (ADR)

ADR is part of the LoRaWAN standard where the network server determines the optimal rate of communication for the module based on current signal conditions. In the best radio conditions, the module will use its highest data rate (DR5) in order to be as energy-efficient as possible. When signal conditions are poor, the network server will incrementally lower the data rate until it is able to receive the message. When the data rate is low, the energy consumption per telegram will increase.

Time handling

The module relies on the meter’s clock for keeping time. Time in the meter is assumed to be in standard local time (no DST). When synchronizing time in the meter using the OTC App, local standard time is always used, even if DST is in effect. The timestamped meter data sent from the module can be adjusted to be sent in UTC by specifying the “UTC offset” configuration parameter. The UTC offset will be subtracted from the timestamp prior to transmission. If the meter is in Sweden, which uses CET (Central European Time), it should have UTC offset set to +60 (+1h). In this case at time 12.00 a telegram is sent with timestamp 11.00 as this is the corresponding UTC time. A meter in New York (USA) should have a UTC offset of -300 (-5h) etc. A UTC offset of 0 means the meter time is used as-is.

If the meter is set to used DST this is ignored by the module and the standard time is used. Thus, the time on the meter’s display may not match the time in the telegram or in the OTC App.

Message encoding

All message formats encoded to M-bus standard will have the following structure. Each telegram begins with one byte specifying the message format. Then follows a sequence of data information blocks (DIBs). The data and structure of the DIBs depends on the message type set. Each DIB contains a data information field (DIF), a value information field (VIF) and a data field (DATA), where the actual payload is stored.


M-Bus message structure

For message type JSON, the data is presented as plain text.

Security and access control

The product has a configuration lock feature, which prevents unauthorized access to the module. When configuration lock has been enabled, a device-specific Product Access Key (PAK) will be needed to access the device. Keys are managed in a secure way using Elvaco’s OTC solution which includes the mobile application for configuration.


For more information about security and access control for the product, refer to the One-touch commissioning (OTC) documentation, available on the Elvaco website.

Meter communication error messages

The payloads using M-Bus encoded data uses the Function field of the DIF to indicate errors. In this case it is set to “value during error state” (M-Bus standard EN 13757-3:2013) and the value sent should not be used. A typical case for this is when the module is unable to communicate with the meter and retrieve meter values, in which case all the fields in the payload have the DIF indicating “value during error state”. In case of erroneous data or if the module is unable to communicate with meter, bit 4-5 of the bit of the DIF code (first byte of each index field) will be set to 11b.

Example 15. Example

A DIF code of 0x02 will be set to 0x32 in case of error. (This applies to all message format except JSON.) For message format JSON, the actual value will be replaced with “null” in case of error state. If no meter communication is possible at all, all fields have this error indication set.

Reset procedures

Rebooting the module

  1. Press and hold the push button for 5-15 seconds.

  2. Release the button when the green LED is lit.


Switching off the module

  1. Press and hold the push button for 15-20 seconds.

  2. Release the button when the red LED is lit.


Soft starting the module

In rare cases, if the battery is weak, the module will perform a soft start to be able to start-up despite the condition of the battery. The soft start takes 10 minutes to complete. The red LED will blink shortly every 10th second until the start-up has completed.


LED indications when soft starting the module

Was this article helpful?

0 out of 0 found this helpful
Have more questions? Submit a request

Comments (0 comments)

Article is closed for comments.