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)