Keep-alive
How to decode the keep-alive packet and how to set new keep-alive period
Keep-alive command explanation
Periodically sent message which contains the most important device data.
The data is described in Table 3. In Table 4 example packet is given.
Payload index
Value
Meaning
0
01
Command byte for this packet.
1
XX
sAQI bits 8:1 – sAQI[8:1].
2
XX
Bit 7
sAQI bit 0 – sAQI[0]. Result value is calculated as:
sAQI=sAQI[8:0]∗16
Bits 6:2
AQI bits 4:0 – AQI[4:0]. Result value is calculated as:
AQI=AQI[4:0]∗16
Bits 1:0
CO2eq bits 9:8 – CO2eq[9:8].
3
XX
CO2eq bits 7:0 – CO2eq[7:0]. Result value is calculated as:
CO2eq,[ppm]=CO2eq[9:0]∗32
4
XX
VOC bits 7:0 – VOC[7:0]. Result value is calculated as:
VOC,[ppm]=VOC[7:0]∗4
5
XX
Relative humidity data. Relative humidity,[%]=10XX∗4
6
XX
Pressure data, bits 10:3 – P[10:3].
7
XX
Bits 7:5
Pressure data, bits 2:0 – P[2:0]. Result value is calculated as:
P,[hPa]=100P[10:0]∗40+30000
Bits 4:0
Temperature data, bits 10:6 – T[10:6].
8
XX
Bits 7:2
Temperature data, bits 5:0 – T[5:0]. Result value is calculated as:
t,[°C]=10T[10:0]−400
XX
Bits 1:0
Air quality related parameters accuracy:
0: Sensor data is unreliable (Sensor stabilization);
1: Low accuracy, to reach higher accuracy please expose sensor
once to good air (for about hour) and bad air for auto-
trimming;
2: Medium accuracy: auto-trimming ongoing;
3: High accuracy.
9
XX
Device battery voltage. Voltage,[mV]=XX∗8+1600
Table 3
Payload index
Value
Meaning
0
01
Command byte for this packet.
1
07
sAQI[8:1] = 0x07.
2
A4
Bit 7
sAQI[0] = 0x01.
sAQI=sAQI[8:0]∗16=0x0F∗16=240
Bits 6:2
AQI=AQI[4:0]∗16=0x09∗16=144
Bits 1:0
CO2eq[9:8] = 0x00.
3
4C
CO2eq[7:0] = 0x4C
CO2eq,[ppm]=CO2eq[9:0]∗32=0x4C∗32=2432
4
03
VOC,[ppm]=VOC[7:0]∗4=0x03∗4=12
5
53
Relative humidity,[%]=100x53∗4=33.2
6
C9
P[10:3] = 0xC9.
7
A9
Bits 7:5
P[2:0] = 0x05
P,[hPa]=100P[10:0]∗40+30000=1000x64D∗40+30000=945.2
Bits 4:0
Temperature data, bits 10:6 – T[10:6].
8
E3
Bits 7:2
Temperature data, bits 5:0 – T[5:0]
t,[°C]=10T[10:0]−400=100x278−400=23.2
Bits 1:0
Air quality related parameters accuracy: 3
9
CD
Voltage,[mV]=CD∗8+1600=205∗8+1600=3240
Table 4
Set keep-alive period command explanation
Sets the period of the device keep-alive command messages. See table 5 for details.
Byte index
Bit index
Hex value – Meaning
0
-
02 – The command will set the device keep-alive period.
1
-
XX – keep-alive period in minutes. Value 0x00 isn’t applicable. Default value: 0x03.
Table 5
Example command, [Hex]: 020A
The example sets the keep-alive period to 10 minutes.
Note that the keep-alive period must respect the LoRaWAN messages duty cycle limitations. Otherwise the message will be sent when this is allowed. Also, the bigger keep-alive period, the less battery discharge. In most of cases, min. allowed period is 3 minutes and recommended values are 10 minutes or greater.
Get keep-alive period command explanation
This command is used to get the device keep-alive command messages period. Server sends the command code and the response is sent from the device together with next keep-alive command. The sent command request and the received command response are described in Table 6. The keep-alive in the response is omitted for clarity.
Byte index
Bit index
Sent request
Received response
0
-
12 – The command code.
12 – The command code.
1
-
XX – device keep-alive period in minutes.
Example command sent from server: 0x12;
Example command response: 0x1209 – Device keep-alive period is 9 minutes.
Last updated
Was this helpful?