0x81xx

0x8100 - Battery Level

Type: u8

Name: battery-level (1)

Battery level in percent.

Note

Some devices will use the value 255 to indicate unknown battery level.

0x8101 - Uptime

Type: u32

Name: uptime (1)

Seconds since boot.

0x8102 - Reset Cause

Type: u8

Name: reset-cause (3)

Reset cause.

Value

Description

00

Power on or brownout reset

01

Pin reset

02

Watchdog reset

04

Software reset

08

CPU Lockup reset

0x8103 - VDD

Type: u16

Name: vdd (6)

System voltage (VDD) in mV.

0x8104 - Time

Type: u64

Name: time (11)

Unix time in milliseconds.

A value of 0 is returned if time is unknown (not sync’ed).

0x8105 - Last Time Sync

Type: s32

Name: last-time-sync (11)

Seconds elapsed since last time sync.

A value of -1 is returned if time has not yet been synced.

0x8106 - CPU Temperature

Type: s16

Name: cpu-temperature (15)

CPU temperature. Unit is centi degrees Celsius.

When converted to JSON, the type is number with unit in degrees Celsius.

0x8110 - Device Mode

Type: u8

Name: device-mode (1)

Value

Description

01

DFU

02

Connected

03

Storage

04

Unconnected

JSON

"dfu" | "connected" | "storage" | "unconnected"

Device will use this to report its device mode.

When the mode changes, the device will report the new mode to make sure it’s updated.

Note

When device mode is reported indirectly via a network extender, the gateway will update this property on behalf of the device. This is done for DFU and Storage.

In storage mode, all the device will report is a storage heartbeat. This is picked up by the network extenders. The gateway will then update this to Storage.

In DFU mode, the device will advertise with Nordic DFU. This will be picked up by the network extenders. The gateway will then update this property to DFU.

0x8111 - Legacy Device Mode Switch

Name: legacy-device-mode-switch (1)

Offset

Type

Description

0

u48

MAC Address

6

u8

Device Mode. Allowed values: 1 - 5.

JSON

{
  "mac": [hex-string(12)],
  "mode": [number]
}

Connect to device and switch device mode using phone/raw command.

Note

This property is write-only.

0x8112 - Storage Mode Event

Name: storage-mode-event (1)

Offset

Type

JSON Property

JSON Type

Description

Added in

0

u16

modelNumber

number

Model Number

2

u8

variant

number

Variant (optional)

3

u8

secureFlags

number

Secure Flags. Bit 0 is set if secure mode supported (optional)

v14

4:8

u8[5]

networkId

string

Network ID (optional)

v14

JSON

{
  "modelNumber": 5,
  "variant": 4,
  "secureFlags": 1,
  "networkId": "0000000000"
}

While a device is in storage mode, the gateway will generate events using this identifier.

Note

Variant is optional. Added in dictionary version 6.

Note

This event is reported without authentication in secure mode.

0x8113 - Watchdog Reset Event

Type: void

Name: watchdog-reset-event (3)

Indicates last reset was watchdog reset.

Note

0x8102 - Reset Cause is often used instead of this.

0x8120 - Firmware Update State

Type: u8

Name: firmware-update-state (1)

Value

Description

0-99

Downloading progress

100

Download complete

128

Download complete, waiting for apply

176

Aborted (unknown reason)

192

Aborted due to firmware not found

208

Aborted due to swap erase callback not registered

209

Aborted due to swap erase API fail

210

Aborted due to swap erase operation fail

211

Aborted due to data store callback not registered

212

Aborted due to data store API fail

213

Aborted due to data store operation fail

214

Aborted due to bootloader setting callback not registered

215

Aborted due to bootloader setting API fail

216

Aborted due to bootloader setting operation fail

217

Aborted due to internal error

218

Aborted due to DFU callback function not registered

219

Aborted due to User flash parameter erase fail

220

Aborted due to Flash erase timeout

221

Aborted due to Flash data storage timeout

222

Bootloader setting upgraded timeout

240

Aborted due to timeout while downloading

241

Aborted due to wrong CRC

242

Aborted due to firmware model number not found

243

Aborted due to firmware version number not found

244

Aborted manually

245

Aborted due to firmware size exceed/invalid

246

Aborted due to invalid block number requested

247

Aborted due to data type not found

248

Aborted due to invalid block size

249

Aborted due to invalid init packet

250

Aborted due to invalid random number

252

Aborted due to unsupported model number switch

255

No firmware update in progress (default state)

The range 129 - 254 is used to abort error states.

Note

Devices will normally restart after reporting abort error states in the range 208 - 222.

Extensions

Offset

Type

Description

Dictionary Version

1

u8

Flags

13

Flags bit

Name

Description

7:1

-

Reserved

0

Broadcast

Set when update by broadcast

JSON

{
  "broadcast": [boolean]
}

0x8121 - Start Firmware Update

Name: start-firmware-update (1)

Offset

Type

Description

0

u8

Major version

1

u8

Minor version

2

u8

Patch version

3

u8

Beta version. Always 0 for production releases.

4

u8

Type

5:6

u16

Timeout (minutes), 0 = Infinite timeout

Type

Description

0

Download and update immediately

1

Download and wait for apply

JSON

{
  "version": "{major}.{minor}.{patch}" | "{major}.{minor}.{patch}-beta.{beta}",
  "type": [number],
  "timeout": [number]
}

A device that is not connected must establish a temporary connection to download the firmware. Gateways and extenders should reserve at least one slot for such temporary connections. This is configured using 0x8210 - Downlink Configuration

Timeout must be set long enough for the device to be able to downloading the firmware from the gateway. The time needed depends on the number devices being upgraded simultaneously. The gateway will fetch the firmware automatically from Meshtech Management when it is requested by a device.

If a device does not support this type of firmware update, it will not support this property and hence respond with an error code indicating this.

0x8122 - Firmware Update Control

Type: u8

Name: firmware-update-control (1)

Value

Name

Description

1

Apply

Apply update

2

Abort

Abort update

Note

A device will wait approximately 30 seconds after receiving the request to apply update, before rebooting.

0x8123 - Start Firmware Update with Model Number

Name: start-firmware-update-with-model-number (1)

Offset

Type

Description

0

u8

Major version

1

u8

Minor version

2

u8

Patch version

3

u8

Beta version. Always 0 for production releases.

4

u8

Type

5:6

u16

Timeout (minutes), 0 = Infinite timeout

7:8

u16

Model Number

JSON

{
  "version": "{major}.{minor}.{patch}" | "{major}.{minor}.{patch}-beta.{beta}",
  "type": [number],
  "timeout": [number],
  "modelNumber": [number]
}

This command works like 0x8121, but allows for switching to another model number. The device will check if it supports switching to the specified model number.

Note

Switching model number will change the feature set of the device.

0x8124 - Start Firmware Broadcast

Name: start-firmware-broadcast (7)

Offset

Type

Description

0

u16

Model Number

2

u8

Major version

3

u8

Minor version

4

u8

Patch version

5

u8

Beta version. Always 0 for production releases.

6

u8

Type

7

u16

Packet Interval. Interval in ms between packets. Set to 0 to use default.

9

u8

Flags

10

u8

MT Message priority: Low (0) - High (4)

Type

Description

0

Update immediately after image received

1

Wait for apply

Flags bit

Name

Description

7:3

-

Reserved

2

B128

Use 128-byte blocks (v13+).

1

B160

Use 160-byte blocks (v10+).

0

FORCE

Force update regardless of version number.

Note

The network must support long messages to use 160-byte blocks.

JSON

{
  "modelNumber": [number],
  "version": "{major}.{minor}.{patch}" | "{major}.{minor}.{patch}-beta.{beta}",
  "type": [number],
  "packetInterval": [number],   // Optional. Default: 0
  "force": [boolean],           // Optional. Default: false
  "priority": [number],         // Optional. Default: 2
  "b160": [boolean]             // Optional. Default: false (v10+),
  "b128": [boolean]             // Optional. Default: false (v13+)
}

0x8125 - Firmware Broadcast State

Type: u8

Name: firmware-broadcast-state (7)

Value

Description

0-99

In progress (percentage completed)

100

Completed

192

Aborted due to firmware not found

244

Aborted manually

245

Aborted due to firmware size exceeded

255

No firmware update in progress (default state)

The range 129 - 254 is used to abort error states.

0x8126 - Firmware Broadcast Control

Type: u8

Name: firmware-broadcast-control (7)

Value

Name

Description

1

Apply

Write Apply (1) to firmware-update-control on extenders and nodes. Devices that are temporary connected are excluded.

2

Abort

Stop broadcasting firmware image.

To apply, there can be no ongoing broadcast.

After aborting firmware broadcast and no more firmware blocks are being sent, the devices will time out after 60 seconds.

0x8127 - Firmware Update Info

Name: firmware-update-info (13)

Nullable: Yes

Offset

Type

JSON Property

JSON Type

Description

0:1

u16

modelNumber

number

Model Number

2

u8

version

string

Major version

3

u8

version

string

Minor version

4

u8

version

string

Patch version

5

u8

version

string

Beta version. Always 0 for production releases.

6

u8

type

number

Firmware update type

Note

The value will be NULL if no firmware update has been started.

JSON Example

{
  "modelNumber": 64,
  "version": "2.0.1",
  "type": 1
}

0x8130 - Nordic DFU State

Type: u8

Name: nordic-dfu-state (1)

Value

Description

0-99

Connected and in progress (percentage completed)

100

Finished successfully

176

Aborted (unknown reason)

192

Aborted due to firmware not found

217

Aborted due to Nordic DFU internal error

240

Aborted due to timeout

241

Aborted due to wrong CRC

242

Aborted due to firmware model number not found

243

Aborted due to firmware version number not found

244

Aborted manually

245

Aborted due to invalid firmware size

246

Aborted due to invalid block number requested

247

Aborted due to data type not found

248

Aborted due to invalid block size

249

Aborted due to invalid init packet

250

Aborted due to invalid random number

253

Aborted. Failed in TX state machine

254

Aborted. Failed in RX state machine

255

No firmware update in progress (default state)

The range 129 - 254 is used to abort error states.

0x8131 - Start Nordic DFU

Name: start-nordic-dfu (1)

Offset

Type

Description

0:5

u48

MAC address

6:7

u16

Model Number

8

u8

Major version

9

u8

Minor version

10

u8

Patch version

11

u8

Beta version. Set to 0 for production releases.

JSON

{
  "mac": [hex-string(12)],
  "modelNumber": [number],
  "version": "{major}.{minor}.{patch}" | "{major}.{minor}.{patch}-beta.{beta}"
}

Gateway/network extender will try to connect to the device in DFU mode and start upgrading the application image.

The device that is to be upgraded must be in DFU mode. Devices that use secure mode (nRF52) will change MAC address by +1 when switched to DFU mode.

0x8132 - Nordic DFU Control

Type: u8

Name: nordic-dfu-control (2)

Value

Description

2

Abort

0x8150 - Motion Detection Sensitivity

Type: u8

Name: motion-detection-sensitivity (3)

Value

Description

0-255

Sensitivity Level

Note

The lower the value, the more sensitive the motion sensor is.

0x8160 - Ping Counter

Type: u16

Name: ping-counter (3)

The remaining number of times to ping, counting downwards.

The ping counter is advertised and generates RSSI measurements when picked up by nearby access points.

The device will stop pinging when the count reaches 0. This property can be used to control device pinging. 0xFFFF is reserved. Writing 0 will stop pinging.

The device will only ping while in Connected mode and while being connected. If the device is disconnected it will stop pinging and then resume pinging when reconnected.

Note

The ping state is kept in memory only and will be cleared on a device reset.