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 |
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.