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]16sAQI = sAQI[8:0] * 16

Bits 6:2

AQI bits 4:0 – AQI[4:0]. Result value is calculated as:

AQI=AQI[4:0]16AQI = 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]32CO2eq, [ppm] = CO2eq[9:0] * 32

4

XX

VOC bits 7:0 – VOC[7:0]. Result value is calculated as:

VOC,[ppm]=VOC[7:0]4VOC, [ppm] = VOC[7:0]*4

5

XX

Relative humidity data. Relative humidity,[%]=XX410[\%] = \frac{XX*4}{10}

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]=P[10:0]40+30000100P, [hPa] = \frac{P[10:0] * 40 + 30000}{100}

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]=T[10:0]40010t, [\degree C] = \frac{T[10:0] - 400}{10}

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]=XX8+1600Voltage, [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=0x0F16=240sAQI = sAQI[8:0] * 16 = 0x0F * 16 = 240

Bits 6:2

AQI=AQI[4:0]16=0x0916=144AQI = 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=0x4C32=2432CO2eq, [ppm] = CO2eq[9:0] * 32 = 0x4C * 32 = 2432

4

03

VOC,[ppm]=VOC[7:0]4=0x034=12VOC, [ppm] = VOC[7:0]*4 = 0x03*4 = 12

5

53

Relative humidity,[%]=0x53410=33.2[\%] = \frac{0x53*4}{10} = 33.2

6

C9

P[10:3] = 0xC9.

7

A9

Bits 7:5

P[2:0] = 0x05

P,[hPa]=P[10:0]40+30000100=0x64D40+30000100=945.2P, [hPa] = \frac{P[10:0] * 40 + 30000}{100} = \frac{0x64D * 40 + 30000}{100} = 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]=T[10:0]40010=0x27840010=23.2t, [\degree C] = \frac{T[10:0] - 400}{10} = \frac{0x278 - 400}{10} = 23.2

Bits 1:0

Air quality related parameters accuracy: 3

9

CD

Voltage,[mV]=CD8+1600=2058+1600=3240Voltage, [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?