The Decentlab DL-IAM is a LoRaWAN indoor air quality sensor that reports CO2, TVOC, temperature, humidity, barometric pressure, light and motion (PIR). It is rated IP40, it runs on a replaceable 2 AA alkaline battery and it works from -10 to 50 °C.
An uplink from the device as it arrives at the network server, and what the official decoder returns for it. Examples come from the decoder's own test cases.
Payload (hex)
02 0B BD 00 7F 0B 92 6A 51 5D 48 BC 4E 02 62 00 69 81 C7 00 00 93 D4 00 0B 01 11Decoded (JSON)
{
"activity_counter": {
"displayName": "Activity counter",
"value": 11
},
"air_humidity": {
"displayName": "Air humidity",
"unit": "%",
"value": 36.438544289311054
},
"air_temperature": {
"displayName": "Air temperature",
"unit": "°C",
"value": 27.67833981841764
},
"ambient_light_infrared": {
"displayName": "Ambient light (infrared)",
"value": 105
},
"ambient_light_visible_infrared": {
"displayName": "Ambient light (visible + infrared)",
"value": 610
},
"barometric_pressure": {
"displayName": "Barometric pressure",
"unit": "Pa",
"value": 96412
},
"battery_voltage": {
"displayName": "Battery voltage",
"unit": "V",
"value": 2.962
},
"co2_concentration": {
"displayName": "CO2 concentration",
"unit": "ppm",
"value": 455
},
"co2_sensor_status": {
"displayName": "CO2 sensor status",
"value": 0
},
"device_id": 3005,
"illuminance": {
"displayName": "Illuminance",
"unit": "lx",
"value": 678.76512
},
"protocol_version": 2,
"raw_ir_reading": {
"displayName": "Raw IR reading",
"value": 37844
},
"total_voc": {
"displayName": "Total VOC",
"unit": "ppb",
"value": 273
}
}| Field | Value |
|---|---|
| activity_counter | 11 |
| air_humidity | 36.438544289311054 % |
| air_temperature | 27.67833981841764 °C |
| ambient_light_infrared | 105 |
| ambient_light_visible_infrared | 610 |
| barometric_pressure | 96412 Pa |
| battery_voltage | 2.962 V |
| co2_concentration | 455 ppm |
| co2_sensor_status | 0 |
| device_id | 3005 |
| illuminance | 678.76512 lx |
| protocol_version | 2 |
| raw_ir_reading | 37844 |
| total_voc | 273 ppb |
Payload (hex)
02 0B BD 00 6F 0B 92 6A 51 5D 48 BC 4E 02 62 00 69 00 0B 01 11Decoded (JSON)
{
"activity_counter": {
"displayName": "Activity counter",
"value": 11
},
"air_humidity": {
"displayName": "Air humidity",
"unit": "%",
"value": 36.438544289311054
},
"air_temperature": {
"displayName": "Air temperature",
"unit": "°C",
"value": 27.67833981841764
},
"ambient_light_infrared": {
"displayName": "Ambient light (infrared)",
"value": 105
},
"ambient_light_visible_infrared": {
"displayName": "Ambient light (visible + infrared)",
"value": 610
},
"barometric_pressure": {
"displayName": "Barometric pressure",
"unit": "Pa",
"value": 96412
},
"battery_voltage": {
"displayName": "Battery voltage",
"unit": "V",
"value": 2.962
},
"device_id": 3005,
"illuminance": {
"displayName": "Illuminance",
"unit": "lx",
"value": 678.76512
},
"protocol_version": 2,
"total_voc": {
"displayName": "Total VOC",
"unit": "ppb",
"value": 273
}
}| Field | Value |
|---|---|
| activity_counter | 11 |
| air_humidity | 36.438544289311054 % |
| air_temperature | 27.67833981841764 °C |
| ambient_light_infrared | 105 |
| ambient_light_visible_infrared | 610 |
| barometric_pressure | 96412 Pa |
| battery_voltage | 2.962 V |
| device_id | 3005 |
| illuminance | 678.76512 lx |
| protocol_version | 2 |
| total_voc | 273 ppb |
Add it to The Things Stack, ChirpStack, Actility ThingPark or LORIOT with its DevEUI, JoinEUI and AppKey and the frequency plan of your region.
In The Things Stack, pick the model from the device repository and its decoder is applied for you. In ChirpStack v4, paste the official decoder as the device profile's JavaScript codec.
Set up the integration once per network server; every device registered there then reaches Cloud Studio IoT with its decoded values.
The decoded fields become device variables for dashboards, alarms by email or SMS, and scheduled reports.
Device facts and decoder examples: The Things Network Device Repository (Apache-2.0) · commit a49b17a, imported 2026-09-18.