ZDO Records

These records relate to information about devices on the network as described the ZigBee Device Object (ZDO), or ZigBee Device Profile (ZDP), specification. These records are primarily associated with the get_device_information RPC command. Additional information about ZDO descriptors and their parameters can be found in the ZigBee Specification.

ZDODeviceRecord

This record contains all known ZDO-level information about a device. When generated, optional parameters will not be included if the device has not been detected.

Parameters

Parameter Type Description
addr_extended MAC The 64-bit extended address of the device.
active bool Whether the device appears to be active currently (see Device Activity).
discovery_status int As of 1.5.0: Status of automatic service discovery for the device described by this record. If status is Incomplete(0) or Complete with Errors(2), the information in record may be not be complete. See Remote Device Status for enumeration of status values and messages that indicate the completeness of the discovery process.
node_type int The ZigBee device type of the device. Can be coordinator (0), router (1), end device (2) or unknown (-1).
addr_short* MAC The 16-bit network address of the device.
manufacturer_id* int The 16-bit manufacturer identifier of the device.
active_endpoints* list List of integers indicating the 8-bit identifiers of all endpoints currently on the device, excluding the ZDO endpoint (0).
simple_descriptors* dict Dictionary of simple descriptors for the endpoints of the device. Keys have the format endpoint_0xXX, where XX is the 8-bit endpoint identifier in hexadecimal. Values are of type Simple_Desc_rsp.
node_descriptor* Node_Desc_rsp The ZDO node descriptor of the device.
power_descriptor* Power_Desc_rsp The ZDO power descriptor of the device.

Example

Some contents of descriptors were omitted for this example.

<record type="ZDODeviceRecord">
    <addr_extended type="MAC">11:22:33:44:55:66:77:88</addr_extended>
    <active type="bool">TRUE</active>
    <discovery_status type="int">0x1</discovery_status>
    <node_type type="int">0x0</node_type>
    <addr_short type="MAC">0000</addr_short>
    <manufacturer_id type="int">0x101E</manufacturer_id>
    <active_endpoints type="list">
        <item type="int">0x5E</item>
    </active_endpoints>
    <simple_descriptors type="dict">
        <endpoint_0x5E type="Simple_Desc_rsp">
            ...
            <output_cluster_id_list type="list">
                <item type="int">0x0</item>
                <item type="int">0x3</item>
                <item type="int">0x702</item>
                <item type="int">0x800</item>
            </output_cluster_id_list>
            <input_cluster_id_list type="list">
                <item type="int">0x0</item>
                <item type="int">0x3</item>
                <item type="int">0xA</item>
                <item type="int">0x700</item>
                <item type="int">0x701</item>
                <item type="int">0x703</item>
                <item type="int">0x800</item>
            </input_cluster_id_list>
        </endpoint_0x5E>
    </simple_descriptors>
    <node_descriptor type="Node_Desc_rsp">
        ...
    </node_descriptor>
    <power_descriptor type="Power_Desc_rsp">
        ...
    </power_descriptor>
</record>

DeviceJoinStatusRecord

This record contains the last known join status of a device.

Parameters

Parameter Type Description
addr_extended MAC The 64-bit extended address of the device.
status int The last known join status of the device. Possible values: 0 = Unknown, 1 = Attempted to join network, 2 = Successfully joined, 3 = Successfully authenticated, 4 = Left network.
timestamp int The time that the status value was last updated, in UTC 1970.

Example

<record type="DeviceJoinStatusRecord">
    <addr_extended type="MAC">11:22:33:44:55:66:77:88</addr_extended>
    <status type="int">0x1</status>
    <timestamp type="int">0x12345678</timestamp>
</record>

Simple_Desc_rsp

This record is important because it contains the profile identifier, device identifer and cluster list of an endpoint. These are used for performing service discovery on the network.

When generated, optional parameters will not be included if the status parameter does not indicate success (0).

Parameters

Parameter Type Description
status int The ZDO status code of reading the node descriptor from the device. Should be success (0).
nwk_addr int 16-bit network address of the device.
endpoint_id int 8-bit identifier of the endpoint.
profile_id int 16-bit profile identifier of the endpoint.
device_id int 16-bit device identifier of the endpoint, as defined for the given profile.
device_version int 4-bit device version of the endpoint.
input_cluster_id_list list List of 16-bit integer identifiers of input (server) clusters on the endpoint.
output_cluster_id_list list List of 16-bit integer identifiers of output (client) clusters on the endpoint.

Example

<record type="Simple_Desc_rsp">
    <status type="int">0x0</status>
    <nwk_addr type="MAC">0000</nwk_addr>
    <endpoint_id type="int">0x5E</endpoint_id>
    <profile_id type="int">0x109</profile_id>
    <device_id type="int">0x500</device_id>
    <device_version type="int">0x1</device_version>
    <output_cluster_id_list type="list">
        <item type="int">0x0</item>
        <item type="int">0x3</item>
        <item type="int">0x702</item>
        <item type="int">0x800</item>
    </output_cluster_id_list>
    <input_cluster_id_list type="list">
        <item type="int">0x0</item>
        <item type="int">0x3</item>
        <item type="int">0xA</item>
        <item type="int">0x700</item>
        <item type="int">0x701</item>
        <item type="int">0x703</item>
        <item type="int">0x800</item>
    </input_cluster_id_list>
</record>

Node_Desc_rsp

When generated, optional parameters will not be included if the status parameter does not indicate success (0). The contents of this descriptor are not needed for most applications. Note that some parameters are separated in the record but are packed into a single byte when transmitted.

Parameters

Parameter Type Description
status int The ZDO status code of reading the node descriptor from the device. Should be success (0).
nwk_addr int The 16-bit network address of the device.
logical_type* int Refer to ZigBee specification.
complex_desc_avail* int Refer to ZigBee specification.
user_desc_avail* int Refer to ZigBee specification.
aps_flags* int Refer to ZigBee specification.
frequency_band* int Refer to ZigBee specification.
mac_capability_flags* int Refer to ZigBee specification.
manufacturer_code* int Refer to ZigBee specification.
max_buffer_size* int Refer to ZigBee specification.
max_incoming_transfer_size* int Refer to ZigBee specification.
server_mask* int Refer to ZigBee specification.
max_outgoing_transfer_size* int Refer to ZigBee specification.
descriptor_capability_field* int Refer to ZigBee specification.

Example

<record type="Node_Desc_rsp">
    <status type="int">0x0</status>
    <nwk_addr type="MAC">0000</nwk_addr>
    <logical_type type="int">0x0</logical_type>
    <complex_desc_avail type="int">0x0</complex_desc_avail>
    <user_desc_avail type="int">0x0</user_desc_avail>
    <aps_flags type="int">0x0</aps_flags>
    <frequency_band type="int">0x8</frequency_band>
    <mac_capability_flags type="int">0x8F</mac_capability_flags>
    <manufacturer_code type="int">0x101E</manufacturer_code>
    <max_buffer_size type="int">0x52</max_buffer_size>
    <max_incoming_transfer_size type="int">0x80</max_incoming_transfer_size>
    <server_mask type="int">0x0</server_mask>
    <max_outgoing_transfer_size type="int">0x80</max_outgoing_transfer_size>
    <descriptor_capability_field type="int">0x0</descriptor_capability_field>
</record>

Power_Desc_rsp

When generated, optional parameters will not be included if the status parameter does not indicate success (0). The contents of this descriptor are not needed for most applications. Note that some parameters are separated in the record but are packed into a single byte when transmitted.

Parameters

Parameter Type Description
status int The ZDO status code of reading the node descriptor from the device. Should be success (0).
nwk_addr int The 16-bit network address of the device.
current_power_mode* int Refer to ZigBee specification.
available_power_sources* int Refer to ZigBee specification.
current_power_source* int Refer to ZigBee specification.
current_power_source_level* int Refer to ZigBee specification.

Example

<record type="Power_Desc_rsp">
    <status type="int">0x0</status>
    <nwk_addr type="MAC">0000</nwk_addr>
    <current_power_mode type="int">0x0</current_power_mode>
    <available_power_sources type="int">0x1</available_power_sources>
    <current_power_source type="int">0x1</current_power_source>
    <current_power_source_level type="int">0xC</current_power_source_level>
</record>