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.

Byte index

Bit index

Hex value - Meaning

0

-

01 – Keep-alive command for firmware <= 3.4 81 - Keep-alive command for firmware >= 3.5

1

-

XX – Target Temperature set by the rotary encoder. Currently 0x05 <= XX <= 0x1E

2

-

XX – Temperature measured by the device sensor.

3

-

XX – Relative Humidity measured by the device sensor.

4

-

XX – Motor position in steps, bits 7:0

5

-

XX – Motor range in steps, bits 7:0

6

7:4

X – Motor position in steps, bits 11:8

6

3:0

X – Motor range in steps, bits 11:8

7

7:4

X – Battery voltage. Voltage = 2 + X * 0.1, [V]

7

3

Set to 1 if open window functionality is enabled and such condition is met. Cleared otherwise.

7

2

Set to 1 if too high motor current consumption was measured. Cleared otherwise.

7

1

Set to 1 if too low motor current consumption was measured. Cleared otherwise.

7

0

Set to 1 if device temperature sensor is broken, cleared if it works properly.

8

7

Set to 1 if manual temperature set through the rotary encoder is disabled. Set to 0 otherwise.

8

6:0

!!! Reserved for future use in f.w. version less than 4.1

8

6

Set to 1 if device motor calibration fails due to impossibility to detect end of valve position. Cleared otherwise.

8

5

Set to 1 when the device is attached to the backplate.

8

4

Set to 1 when the device is online – joined the network and/or server packets are regularly received. Set to 0 if the device thinks it's offline.

8

3

Anti-free functionality status. 0 - it has not been activated 1 - it has been activated and the internal algorithm is working to reach the threshold temperature

8

2:0

Reserved for future use.

Table 3

Example keep-alive: 0x011D5A78FA2C01F080

Decoding:

  • 0x01 – Command code (according to Table 2). Shows that keep-alive data follows

  • 0x1D – Target temperature is 29

  • 0x5A – Sensor temperature; 0x5A = 90; 90*165/256-40 = 18,0078125 deg. Celsius

  • 0x78 – Sensor humidity; 0x78 = 120; (120*100)/256 = 46,875 % relative humidity

  • 0xFA2C01 – Byte indexes 4, 5 and 6; Motor position = 0x0FA = 250; Motor range = 0x12C = 300;

  • 0xF0 – Battery voltage and status; 0xF = Battery voltage = 2+ 15*0,1 = 3,5VDC; 0x0 = All status flags are cleared.

  • 0x80 – Rotary encoder is disabled (Child Lock is enabled).

Example keep-alive 2: 0x01185C5CDFDF118000

  • 0x01 – Command code (according to Table 2). Shows that keep-alive data follows

  • 0x18 = Target temperature is 24

  • 0x5C = Sensor temperature; 0x5c = 92; 92 *165/256-40 = 19,296875 deg. Celsius

  • 0x5C= Sensor humidity; 0x5c = 92; 92*100/256 = 35,9375 % relative humidity

  • 0xDFDF11 = Byte indexes 4, 5 and 6; Motor position = 0x1DF = 479; Motor range = 0x1DF = 479

  • 0x80 = Battery voltage and status; 0x8 = Battery voltage = 2 + 8*0,1 = 2,8 VDC; 0x0 = All status flags are cleared.

  • 0x00 = Rotary encoder is enabled (Child lock is disabled).

Devices with firmware version 3.5 and above: - The byte at index 0 is changed to 0x81

- New formula is used for measured temperature calculation: (XX-28.33333)/5.66666

Set Keep-alive period command explanation

Sets the period for the Vicki keep-alive command messages. See table 4 for details.

Byte index

Hex value - Meaning

0

02 – The command will set Vicki keep-alive period.

1

XX – keep-alive period in minutes. Value 0x00 isn’t applicable. Default value: 0x0A.

Example command: 0x020A

The example sets the keep-alive period to 10 minutes.

Note that the period value must respect the LoRaWAN messages duty cycle limitations. Otherwise the message will be sent when this is allowed. Also, the bigger period value, the less battery discharge. In most of cases, min. allowed period is 3 minutes and recommended values are 10 minutes or greater.

Last updated