Device depository and metrics

This guide explains how to import the lorawan-devices Device Repository and to how to visualize the decoded data directly within the ChirpStack web-interface. In this guide we will use the Tektelic Smart Room Sensor as an example to visualize the temperature and humidity measurements, but it can be easily substituted by any other device present in the repository.

device metrics

Device Repository

The lorawan-devices Device Repository contains information about many LoRaWAN devices. For most devices a payload codec is included, which makes it really easy as you will immediately see the decoded payload, rather than a binary blob.

ChirpStack provides support for importing this repository into the ChirpStack database. Once imported, you will find the information about these devices under device-profile templates.


ChirpStack Gateway OS

If you are using the ChirpStack Gateway OS then you can skip this step. During the first boot of the ChirpStack Gateway OS this repository will be automatically imported for you.

Docker Compose

If you are using the ChirpStack Docker Compose example code, then you need to execute the following command to import the repository:

make import-lorawan-devices

Note that this requires that you have the make and git commands installed.

Debian / Ubuntu

If you are have installed ChirpStack using the provided Debian / Ubuntu .deb packages, then you need to execute the following command to import the repository:

git clone /tmp/lorawan-devices
chirpstack -c /etc/chirpstack import-ttn-lorawan-devices -d /tmp/lorawan-devices

Note: an older snapshot of the lorawan-devices repository is cloned as the latest revision no longer contains a LICENSE file.

Connecting the device

Create device-profile

Log in into the ChirpStack web-interface and click Device profiles in the left menu. Then click the Add device-profile button to add a new device profile.

Now that you have installed the Device Repository, there is no need to fill in all the fields by hand. Click the Select device-profile template button instead, and select your device from this list. In case of the Tektelic Smart Room Sensor, we would select:

Tektelic Communications Inc. > Smart Room Sensor Base > FW version: D > EU868

Please make sure to select the template that matches your device and click Ok. This will fill in all the required device-profile fields for you. Now create the device-profile.

Add device

Now add the device as you would normally add a device to ChirpStack. Make sure to select the device-profile that you created in the previous step. Please refer to the Connecting a device guide for instructions about connecting a device.


Navigate to the device in the web-interface and click the LoRaWAN frames tab. When you turn your device on, you should see a JoinRequest and JoinAccept message appear. If this is not the case, then you might have entered the wrong key(s). Please refer to the Connecting a device guide for troubleshooting instructions.

Once the device has been activated, navigate to the Events tab. Here you will find a join event indicating that the device joined the network. As soon as the devices sends its first measurements, you will see an up event. Open this event by clicking on the up button. You will now see a JSON structure containing the full payload. Confirm that it contains the decoded payload under the object key (you will find this key under the data key).

In case of the Tektelic device, the content of the object looks like this:

	relative_humidity: 59,
	ambient_temperature: 28.5,
	battery_voltage: 3.09

Visualizing metrics

Once you have completed the previous steps, your device is up and running and ChirpStack is able to decode the payloads. In this step we are going to configure the measurements within ChirpStack. Once configured, ChirpStack will start aggregating the received measurements and will visualize this on the device page in the web-interface.

Configure measurements

In the web-interface, navigate to the device-profile that you have created in the previous steps and click the Measurements tab. You should see a few configuration rows, with the data key and the measurement-kind set to Unknown / unset. When a decoded uplink is received, ChirpStack will automatically add measurements to the device-profile, so that you only have to set the aggregation kind and give it a user-defined name. That is what we are going to do in this step.

For the Tektelic Smart Room Sensor, we are going to configure the ambient_temperature and relative_humidity measurements which were automatically added. If you have a different device, then use the measurement keys that were added for you.

In case of the temperature and humidity, select the Gauge measurement type and give the measurements a human-friendly name. For example Room temperature and Room humidity.

View metrics

From the moment that you have configured the measurements, ChirpStack is going aggregate the data. Data received before the measurements configuration is not aggregated. Therefore it might take some time before data will appear. In case of the Tektelic Smart Room Sensor, it will take up to 15 minutes before new measurements are sent (with the default configuration).

In the web-interface, navigate to the device page. Within the Dashboard tab, click the Device metrics tab. Here you will find the measurements that you have just defined. You can switch between 24h (per hour), 31d (per day) and 1y (per month) interval.