Skip to content

0x80xx

0x8000 - Model Number

Type: u16

Name: model-number (1)

Model Number. This is the firmware identifier.

Note

Devices will report 0x8007 - Variant simultaneously with this property.

0x8001 - Firmware Version

Name: firmware-version (1)

Offset Type Description
0 u8 Major
1 u8 Minor
2 u8 Patch
3 u8 Beta (optional)

Beta field will normally only be present for beta versions. In this case, its value will be in the range 1-255. A value of 0 can be ignored and the version should be treated as a production release.

JSON

"{major}.{minor}.{patch}" |
"{major}.{minor}.{patch}-beta.{beta}"

0x8002 - Hardware Version

Name: hardware-version (1)

Offset Type Description
0 u8 Major
1 u8 Minor

Note

If hardware version is unknown the value 0.0 is used

JSON

"{major}.{minor}"

0x8003 - MAC Address

Type: mac-address

Name: mac-address (1)

Bluetooth MAC address.

Note

Not reported.

0x8005 - Production Info Extended

Type: dictionary

Key Type Description
0 u48 MAC Address
1 u16 Model Number
2 u8 Variant
3 u8 [4] Firmware Version
4 u8 [65] Public Key
5 u32 Chip
6 u32 Chip Variant
7 u32 Chip Package

0x8006 - Production Info

Type: u32

Name: production-info (1)

Note

Not reported.

0x8007 - Variant

Type: u8

Name: variant (1)

Device variant.

One firmware (Model Number) can operate differently depending on the value of this property.

The combination of 0x8000 - Model Number and 0x8007 - Variant defines the Meshtech Product Name.

Note

A value of 0 or 255 indicates that variant is unused.

Note

Devices will report 0x8000 - Model Number simultaneously with this property.

0x8008 - Public Key

Name: public-key (10)

ECDSA P-256/spec256r1 device public key. The key is in uncompressed format (65 bytes).

The public key is used to authenticate the device as an authentic Meshtech device during provisioning.

0x8009 - Host Public Key

Name: host-public-key (10)

Note

This property is written internally by the gateway host. It is only applicable to extender dongles when operating as gateway.

ECDSA P-256/spec256r1 host public key. The key is in uncompressed format (65 bytes).

If no key exists, the value will be a 65-byte array of all 0's. This indicates that the dongle is unpaired. The key is used for pairing with the host and can be written once.

0x800A - Provision

Type: dictionary

Name: provision (11)

Provision device to Secure mode.

Key Type JSON Property JSON Type Description
1 u8 (32) networkKey hex-string Network Key. Value is the 32-byte Key Material (KM).
2 u8 deviceMode string Device Mode
3 u8 networkLock number Network Lock

JSON Example

Set to secure network, keep device-mode and network-lock unchanged:

{
  "networkKey": "A0B5C632C0BD52FBD9C9578ED0DAED934C0198AA0F27D13A6DE1F738BF0B14A5"
}

This command property is used to provision/re-provision a device.

  • When provisioning the gateway, networkKey is required. This sets the gateway network.
  • When provisioning a device, networkKey is optional. In this case, when not included, it will be implicitly added by the extender before the value is written to the device. This makes it very simple and secure to add new devices to a network. The property write operation must have access type unprovisioned for this to work.
  • If deviceMode is included, switch to this mode.
  • If networkLock is included, set this network lock.

The key material (KM) is used as input key material to HKDF:

  • To generate a default HMAC-SHA-256 key OKM[0..31] (no salt, no info), used for authentication.
  • To generate unique HMAC-SHA-256 and AES-128 session keys (no salt, info set to 16-byte random session challenges, 48-byte output key material):
  • HMAC-SHA-256 key = OKM[0..31]
  • AES-128 key = OKM[32..47]

The command will fail if:

  • The device does not support the device mode requested.
  • Network Lock is included, but device doesn't support this.
  • An unknown/unsupported dictionary key was included in the value

0x800B - Network ID

Name: network-id (11)

Offset Type Description
0 u8 Network Type
1..4 u32 ID
Network Type Description
0x00 Legacy Network. ID is 0.
0x01 Secure Network. ID is the first 4 bytes of 0x800C - Secure Network Fingerprint.

JSON: hex-string

The default network ID from factory reset is 0x0000000000 (legacy network).

0x800C - Network Fingerprint

Name: network-fingerprint (11)

Offset Type Description
0..31 u8 (32) SHA-256 of the 32-byte Key Material (KM).

JSON: hex-string

This is only applicable for secure mode. A NULL value is returned when device operates in legacy mode.

0x800D - Provision Legacy

Name: provision-legacy (11)

Provision device to Legacy mode. This will delete the network key from the device if the device is provisioned to secure. The write operation will fail if any of the reserved flags are set.

Offset Type JSON Property JSON Type Description
0 u8 - - FLAGS
1 u8 deviceMode string Device Mode. Set to 0 if unused, or leave out in JSON. See FLAGS.
2 u8 networkLock number Network Lock. Set to 0 if unused, or leave out in JSON. See FLAGS.
FLAGS bit Description
7:2 Reserved, set to 0.
1 Set Network Lock
0 Set Device Mode

JSON Example

{
  "deviceMode": "connected",
  "networkLock": 1
}

0x8010 - Activated

Type: u8

Name: activated (10)

Value Description
0 Deactivated
1 Activated

A gateway must be activated before it can be used.

Note

This property is only applicable when extenders operate as gateway.

Note

This property can only be written from Meshtech Device Management.

0x8020 - Power Source

Type: u8

Name: power-source (1)

Value Description
0 Unknown
1 Mains powered
2 Battery powered
3 Mains powered, with backup battery

JSON

"unknown" | "mains" | "battery" | "mains-with-backup-battery"

0x8030 - Add Root Certificate

Type: UTF-8

Name: add-root-certificate (11)

Add root certificate in PEM format.

0x8031 - Remove Root Certificate

Type: UTF-8

Name: remove-root-certificate (11)

Remove root certificate. Value must be SHA-1 fingerprint as uppercase hex string.

0x8032 - Root Certificates

Type: json-array

Name: root-certificates (11)

Root certificates. Value is a JSON array of PEM certificate strings.

0x8033 - Root Certificate Fingerprints

Type: json-array

Name: root-certificate-fingerprints (11)

Root certificate fingerprints. Value is a JSON array of SHA-1 fingerprint uppercase hex strings.