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.

0x8011 - Device Management Connected

Type: bool

Name: device-management-connected (13)

Indicates if gateway is connected to Meshtech Device Management.

0x8012 - Device Management Enabled

Type: bool

Name: device-management-enabled (16)

Device Management Enabled setting. When enabled, the gateway will establish a connection to Meshtech Device Management.

0x8013 - Device Aliases

Type: json-array

Name: device-aliases (18)

This is an array of JSON objects with these properties:

JSON Property

Type

Optional

Default Value

Description

id

string

No

-

MAC address (uppercase hex)

alias

string

No

-

Alias

The aliases are used:

  • In Device Management network tree and device list

  • In Skyresponse, to report the location of an alarm

Note that when Salto is enabled, aliases defined in Salto Space will override these aliases.

The list must not contain duplicate device IDs.

0x8014 - Add Device Alias

Type: json-object

Name: add-device-alias (18)

This will add a new device alias. If the id already exists, the alias will be updated.

The JSON object has these properties:

JSON Property

Type

Optional

Default Value

Description

id

string

No

-

MAC address (uppercase hex)

alias

string

No

-

Alias

0x8015 - Remove Device Alias

Type: mac-address

Name: remove-device-alias (18)

Removes the device alias for the device.

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.

Note

In Device Management Intract dialog use the “load value from file” feature and select the .pem/.crt file. Select Load as JSON. The PEM certificate will be loaded into the Value field. Click Write.

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.