How to read Basic information (Model, Manufacturer) of Home Automation compliant devices

Hi!
With XbeeUSB3, how to communicate with ZHA(Home automation) compliant devices with xbee python library. Having Coordinator setup (CE:1, ZS:2, AP:2), I am able to discover the devices as RemoteZigBeeDevice. But cannot get any basic information using (Cluster ID 0000) and Profile ID 0x104 (HA) for the devices using Explicit data sending. Tried to use attribute ID: 0005

DATA_TO_SEND = bytearray(b’\x00\x01\x00\x05\x00’)

Please let me know, How to know/set the Endpoint. What steps should be done after discovering the device and sending Explicit data. Any extra configuration.

Followed instruction in: https://www.digi.com/resources/documentation/Digidocs/90002002/Reference/r_send_ZCL_cmds.htm?tocpath=API%20Operation|_____4

Output of following python code results exception:
NODES: []

Traceback (most recent call last):
…, line 77, in
main()
…, line 69, in main
reponse = xbee.send_expl_data(nodes[0], DATA_TO_SEND, 0xE6, 0x1, 0x0000, 0x0104)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…\xbee-python\digi\xbee\devices.py", line 3797, in send_expl_data
return self._send_expl_data(
^^^^^^^^^^^^^^^^^^^^^
…\xbee-python\digi\xbee\devices.py", line 2054, in dec_function
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
…\xbee-python\digi\xbee\devices.py", line 2068, in dec_function
raise TransmitException(transmit_status=response.transmit_status)
digi.xbee.exception.TransmitException: There was a problem with a transmitted packet response (status not ok)

Python code:
# Instantiate a local XBee object.
xbee = ZigBeeDevice(“COM12”, 9600)

# Define the device discovered callback.
def dcallback(remote):
    print("MAC: ", remote)

try:
    xbee.open()

    # Get the XBee network object from the local XBee.
    xnet = xbee.get_network()

    xnet.clear()

    # Add the device discovered callback.
    xnet.add_device_discovered_callback(dcallback)

    xnet.set_deep_discovery_options(deep_mode=NeighborDiscoveryMode.CASCADE, del_not_discovered_nodes_in_last_scan=False)

    # Configure the discovery timeout, in SECONDS.
    xnet.set_deep_discovery_timeouts(node_timeout=25, time_bw_requests=3, time_bw_scans=5)

    # Start the discovery process.
    xnet.start_discovery_process(deep=True, n_deep_scans=5)

    while xnet.is_discovery_running():
        time.sleep(0.5)

    nodes = xnet.get_devices()
    print("NODES:", nodes)

    DATA_TO_SEND = bytearray(b'\x00\x01\x00\x05\x00')

    xbee.set_sync_ops_timeout(20)
    response = ""

    reponse = xbee.send_expl_data(nodes[0], DATA_TO_SEND, 0xE6, 0x1, 0x0000, 0x0104)
    print("Response: ", response)

The software you are working with is not a finished application for working with the Home Automation profile. It is a general library for communicating with the Digi XBee modules. You will need to look at the profile you are working with to determine how to connect to it and what is needed to send data over it.

1 Like

Thanks for the clarification and support. Yes, it seems like that as this software is better suited for communication where both coordinator and endpoint/router parameters can be controlled via XCTU as per need. But zigpy and zigpy-xbee based application seems promising for ZHA compliant devices. With that, I am able to start the network and discover a device. It reads the basic information of the device. Need on study more for further development.