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.
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 | Description |
---|---|---|
0 | u16 | Model Number |
2 | u8 | Variant (optional) |
JSON
{
"modelNumber": [number],
"variant": [number] // optional
}
While a device is in storage mode, the gateway will generate events using this identifier.
Note
Variant is optional. Added in dictionary version 6.
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, CRC verified OK, rebooting shortly |
128 | Download complete, CRC verified OK, 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.
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:2 | - | Reserved |
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+)
}
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 |
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.
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.