Skip to content
Nerivec edited this page Nov 23, 2024 · 8 revisions

Interact with the EmberZNet stack in the adapter.

Get stack info

Print the EmberZNet stack version and the associated EZSP version.

Example:

EmberZNet: 7.4.3 [GA]. EZSP: 13

Get stack config (firmware defaults)

Print the default stack configuration (configs, policies, libraries, mfg tokens), optionally save it to a JSON file.

Example:
{
  "CONFIG.PACKET_BUFFER_HEAP_SIZE": "255",
  "CONFIG.NEIGHBOR_TABLE_SIZE": "26",
  "CONFIG.APS_UNICAST_MESSAGE_COUNT": "32",
  "CONFIG.BINDING_TABLE_SIZE": "32",
  "CONFIG.ADDRESS_TABLE_SIZE": "16",
  "CONFIG.MULTICAST_TABLE_SIZE": "16",
  "CONFIG.ROUTE_TABLE_SIZE": "16",
  "CONFIG.DISCOVERY_TABLE_SIZE": "8",
  "CONFIG.STACK_PROFILE": "0",
  "CONFIG.SECURITY_LEVEL": "5",
  "CONFIG.MAX_HOPS": "30",
  "CONFIG.MAX_END_DEVICE_CHILDREN": "32",
  "CONFIG.INDIRECT_TRANSMISSION_TIMEOUT": "3000",
  "CONFIG.END_DEVICE_POLL_TIMEOUT": "8",
  "CONFIG.TX_POWER_MODE": "0",
  "CONFIG.DISABLE_RELAY": "0",
  "CONFIG.TRUST_CENTER_ADDRESS_CACHE_SIZE": "0",
  "CONFIG.SOURCE_ROUTE_TABLE_SIZE": "200",
  "CONFIG.FRAGMENT_WINDOW_SIZE": "1",
  "CONFIG.FRAGMENT_DELAY_MS": "0",
  "CONFIG.KEY_TABLE_SIZE": "12",
  "CONFIG.APS_ACK_TIMEOUT": "1600",
  "CONFIG.BEACON_JITTER_DURATION": "3",
  "CONFIG.PAN_ID_CONFLICT_REPORT_THRESHOLD": "2",
  "CONFIG.REQUEST_KEY_TIMEOUT": "0",
  "CONFIG.CERTIFICATE_TABLE_SIZE": "ZIGBEE_EZSP_ERROR",
  "CONFIG.APPLICATION_ZDO_FLAGS": "0",
  "CONFIG.BROADCAST_TABLE_SIZE": "15",
  "CONFIG.MAC_FILTER_TABLE_SIZE": "15",
  "CONFIG.SUPPORTED_NETWORKS": "1",
  "CONFIG.SEND_MULTICASTS_TO_SLEEPY_ADDRESS": "0",
  "CONFIG.ZLL_GROUP_ADDRESSES": "0",
  "CONFIG.ZLL_RSSI_THRESHOLD": "216",
  "CONFIG.MTORR_FLOW_CONTROL": "1",
  "CONFIG.RETRY_QUEUE_SIZE": "16",
  "CONFIG.NEW_BROADCAST_ENTRY_THRESHOLD": "9",
  "CONFIG.TRANSIENT_KEY_TIMEOUT_S": "300",
  "CONFIG.BROADCAST_MIN_ACKS_NEEDED": "255",
  "CONFIG.TC_REJOINS_USING_WELL_KNOWN_KEY_TIMEOUT_S": "300",
  "CONFIG.CTUNE_VALUE": "128",
  "CONFIG.ASSUME_TC_CONCENTRATOR_TYPE": "1",
  "CONFIG.GP_PROXY_TABLE_SIZE": "5",
  "CONFIG.GP_SINK_TABLE_SIZE": "0",
  "CONFIG.END_DEVICE_CONFIGURATION": "ZIGBEE_EZSP_ERROR",
  "POLICY.TRUST_CENTER_POLICY": "ALLOW_JOINS,ALLOW_UNSECURED_REJOINS",
  "POLICY.BINDING_MODIFICATION_POLICY": "DISALLOW_BINDING_MODIFICATION",
  "POLICY.UNICAST_REPLIES_POLICY": "HOST_WILL_NOT_SUPPLY_REPLY",
  "POLICY.POLL_HANDLER_POLICY": "POLL_HANDLER_IGNORE",
  "POLICY.MESSAGE_CONTENTS_IN_CALLBACK_POLICY": "MESSAGE_TAG_ONLY_IN_CALLBACK",
  "POLICY.TC_KEY_REQUEST_POLICY": "DENY_TC_KEY_REQUESTS",
  "POLICY.APP_KEY_REQUEST_POLICY": "DENY_APP_KEY_REQUESTS",
  "POLICY.PACKET_VALIDATE_LIBRARY_POLICY": "PACKET_VALIDATE_LIBRARY_CHECKS_ENABLED",
  "LIBRARY.ZIGBEE_PRO": "PRESENT / ROUTER_CAPABILITY",
  "LIBRARY.BINDING": "PRESENT",
  "LIBRARY.END_DEVICE_BIND": "NOT_PRESENT",
  "LIBRARY.SECURITY_CORE": "PRESENT / ROUTER_SUPPORT",
  "LIBRARY.SECURITY_LINK_KEYS": "PRESENT",
  "LIBRARY.ALARM": "NOT_PRESENT",
  "LIBRARY.CBKE": "NOT_PRESENT",
  "LIBRARY.CBKE_DSA_SIGN": "NOT_PRESENT",
  "LIBRARY.ECC": "NOT_PRESENT",
  "LIBRARY.CBKE_DSA_VERIFY": "NOT_PRESENT",
  "LIBRARY.PACKET_VALIDATE": "PRESENT / ENABLED",
  "LIBRARY.INSTALL_CODE": "PRESENT",
  "LIBRARY.ZLL": "PRESENT",
  "LIBRARY.CBKE_283K1": "NOT_PRESENT",
  "LIBRARY.ECC_283K1": "NOT_PRESENT",
  "LIBRARY.CBKE_CORE": "NOT_PRESENT",
  "LIBRARY.NCP": "PRESENT",
  "LIBRARY.MULTI_NETWORK": "NOT_PRESENT",
  "LIBRARY.ENHANCED_BEACON_REQUEST": "PRESENT",
  "LIBRARY.CBKE_283K1_DSA_VERIFY": "NOT_PRESENT",
  "LIBRARY.MULTI_PAN": "NOT_PRESENT",
  "MFG_TOKEN.CUSTOM_VERSION": "255,255",
  "MFG_TOKEN.STRING": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255",
  "MFG_TOKEN.BOARD_NAME": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255",
  "MFG_TOKEN.MANUF_ID": "255,255",
  "MFG_TOKEN.PHY_CONFIG": "255,255",
  "MFG_TOKEN.BOOTLOAD_AES_KEY": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255",
  "MFG_TOKEN.ASH_CONFIG": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255",
  "MFG_TOKEN.EZSP_STORAGE": "255,255,255,255,255,255,255,255",
  "MFG_TOKEN.STACK_CAL_DATA": "",
  "MFG_TOKEN.CBKE_DATA": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255",
  "MFG_TOKEN.INSTALLATION_CODE": "255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255",
  "MFG_TOKEN.STACK_CAL_FILTER": "",
  "MFG_TOKEN.CUSTOM_EUI_64": "255,255,255,255,255,255,255,255",
  "MFG_TOKEN.CTUNE": "255,255"
}

Get network info

Print the current network information, if any.

Example:

Node EUI64=0xe0798dfffe712345 type=COORDINATOR.
Network parameters:
  - PAN ID: 49050 (0xBF9A)
  - Extended PAN ID: 231,167,10,89,112,86,25,20
  - Radio Channel: 20
  - Radio Power: 20 dBm
  - Preferred Channels: 11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
Network key info:
  - Set? yes
  - Sequence Number: 0
  - Frame Counter: 4097
  - Alt Set? no
  - Alt Sequence Number: 0
Trust Center link key info:
  - Properties: HAS_OUTGOING_FRAME_COUNTER|HAS_PARTNER_EUI64|IS_AUTHORIZED
  - Incoming Frame Counter: 0
  - Outgoing Frame Counter: 0

Scan network

Scan the Zigbee network channels.

Channels usage / RSSI (11-26)

Scan for channel usage (how busy each is around the adapter).

Example:

Channel 11: ••••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-62 dBm]
Channel 12: ••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-84 dBm]
Channel 13: •••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-81 dBm]
Channel 14: ••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-64 dBm]
Channel 15: ••••••••••••••••••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-48 dBm]
Channel 16: ••••••••••••••••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-50 dBm]
Channel 17: •••••••••••••••••••••••••••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-39 dBm]
Channel 18: •••••••••••••••••••••••••••••••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-47 dBm]
Channel 19: ••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-78 dBm]
Channel 20: ••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-82 dBm]
Channel 21: •••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-83 dBm]
Channel 22: •••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-83 dBm]
Channel 23: ••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-86 dBm]
Channel 24: ••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-82 dBm]
Channel 25: ••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-76 dBm]
Channel 26: ••••••••••••••∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ [-76 dBm]

Existing networks

Scan for existing Zigbee network around the adapter.

Note

This picks up networks from all surrounding Zigbee nodes, meaning you will get reports for each device in range on the same network (with RSSI/LQI for each).

Example:

Found network:
  - PAN ID: 6754
  - Ext PAN ID: 221,221,221,221,221,221,221,221
  - Channel: 11
  - Allowing join: no
  - Node RSSI: -63 dBm | LQI: 148
Found network:
  - PAN ID: 6754
  - Ext PAN ID: 221,221,221,221,221,221,221,221
  - Channel: 11
  - Allowing join: no
  - Node RSSI: -46 dBm | LQI: 216

Backup network

Create an open coordinator backup at the selected location, if possible.

Restore network

Restore an open coordinator backup from the selected location. The final step of this process validates that the network in the backup now matches the network in the adapter.

Caution

This action cannot be undone after confirming.

Leave network

Leave the network saved in the adapter.

Caution

This action cannot be undone after confirming.

Backup NVM3 tokens

Backup the adapter's NVM3 Zigbee tokens to the selected location.

Important

This will write the adapter's EUI64 in the backup, to be restored.

Restore NVM3 tokens

Restore NVM3 Zigbee tokens in the adapter from the selected location.

Caution

This action cannot be undone.

Reset NVM3 tokens

Reset NVM3 Zigbee tokens in the adapter to factory defaults. Optionally exclude a few select tokens.

Caution

This action cannot be undone after confirming.

Write EUI64 NVM3 token

Write the given EUI64 (IEEE) for the adapter in the NVM3. The written value will be used as an alternative to the factory default EUI64 and will allow to migrate from one adapter to another without having to rebuild the network from scratch. You will be presented with two options:

  • Use a network backup file (coordinator_backup.json) from Zigbee2MQTT or Ember ZLI. The value saved in the file will be converted to the proper format automatically.
  • Enter the EUI64 manually. The expected format is the same used by Zigbee2MQTT: 0x1122334455667788 (little endian).

Important

Writing 0xFFFFFFFFFFFFFFFF allows to restore the factory default EUI64.

Tip

Using this menu, then restoring the rest of the network backup (via Ember ZLI or Zigbee2MQTT) should allow you to migrate from one adapter to another with minimal effort. Note: Backing up NVM3 tokens from one adapter then restoring them on another, with the above menus, has the same effect.

Get security info

Print the various security keys in the adapter.

Example:

Trust Center Link Key: da85e5bac80c8a958b14d44f14c2ba16
Network Key: 486127e65c48659440e1fad6c31f6947
ZLL Encryption Key: 00000000000000000000000000000000
ZLL Preconfigured Key: 00000000000000000000000000000000
Green Power Proxy Table Key: ffffffffffffffffffffffffffffffff
Green Power Sink Table Key: 00209c0e002009000114010800000000

Zigbee2MQTT Onboard (auto configuration)

Creates a new network with "ideal" parameters on the adapter, and writes a configuration.yaml file to use with Zigbee2MQTT.

Scans for unused PAN ID and channel (configurable), then forms the new network on the adapter, and finally writes the corresponding starter YAML configuration file (you will be prompted for extra details to complete this step).

Example written configuration:

mqtt:
    base_topic: zigbee2mqtt
    server: mqtt://localhost:1883
serial:
    adapter: ember
    baudrate: 115200
    port: COM3
    rtscts: false
advanced:
    log_level: info
    pan_id: 49050
    ext_pan_id: [231,167,10,89,112,86,25,20]
    network_key: [225,214,40,219,169,230,136,32,115,154,205,223,214,134,156,55]
    channel: 20
    transmit_power: 20
frontend: true
homeassistant: false

Caution

This action cannot be undone after confirming.

Important

The written configuration.yaml file contains the information gathered by Ember ZLI. It may require adjustments, particularly if you are going to use the adapter on a different machine (port).

Repairs

Repair possible issues in the adapter.

Check for EUI64 mismatch

Repair a EUI64 mismatch in different locations in the adapter.

See https://github.com/zigpy/bellows/pull/577 for more details.

Note

Does nothing if your adapter is not affected.