<sci_request version="1.0"> <send_message cache="false"> <targets> <device id="00000000-00000000-B827EBFF-FFB548F2"/> </targets> <rci_request version="1.1"> <do_command target="zigbee"> <discover/> </do_command> </rci_request> </send_message></sci_request>
<sci_reply version="1.0"> <send_message> <device id="00000000-00000000-B827EBFF-FFB548F2"> <rci_reply version="1.1"> <do_command> <error id="1" desc="Application call failed"/> </do_command> </rci_reply> </device> </send_message></sci_reply>
cp4pc.rci - Received do_command requestTraceback (most recent call last): File "./library/ext/cp4pc/rci/model/device.py", line 153, in handle_xml return self._xml_tag(target_node.handle_xml(xml_tree), attributes={'target': target}) File "./library/ext/cp4pc/rci/controller/zigbee.py", line 61, in handle_xml return TargetNode.handle_xml(self, xml_tree) File "./library/ext/cp4pc/rci/model/base.py", line 335, in handle_xml ret += child_node.handle_xml(xml_child) File "./library/ext/cp4pc/rci/controller/zigbee.py", line 110, in handle_xml ET.SubElement(device, 'parent_addr').text = '0x'+node.addr_parent[1:-2].lower()TypeError: 'int' object has no attribute '__getitem__'
<!--
See http://www.digi.com/wiki/developer/index.php/Rci for
an example of a python implementation on a NDS device to
handle this SCI request
-->
<sci_request version="1.0">
<send_message>
<targets>
<device id="00000000-00000000-B827EBFF-FFB548F2"/>
</targets>
<rci_request version="1.1">
<do_command target="xig">
<at hw_address="00:13:A2:00:XX:XX:XX:XX!" command="ND" />
</do_command>
</rci_request>
</send_message>
</sci_request>
<sci_reply version="1.0"> <send_message> <device id="00000000-00000000-B827EBFF-FFB548F2"> <rci_reply version="1.1"> <do_command target="xig"> <at_response command="ND" operation="get" result="ok" type="int" value="0x0"/> </do_command> </rci_reply> </device> </send_message></sci_reply>
<sci_reply version="1.0"> <send_message> <device id="00000000-00000000-B827EBFF-FFB548F2"> <rci_reply version="1.1"> <do_command target="xig"> <at_response command="NI" operation="get" result="ok" type="str" value="MySensor"/> </do_command> </rci_reply> </device> </send_message></sci_reply>
I found the reason is at the line 110 of file
vi library/ext/cp4pc/rci/controller/zigbee.py
ET.SubElement(device, 'type').text = self.TYPE_CONVERSION.get(node.type, '0') ET.SubElement(device, 'ext_addr').text = node.addr_extended[1:-2].lower()+'!' #remove '[' and ']' ET.SubElement(device, 'net_addr').text = '0x'+node.addr_short[1:-2].lower() # ET.SubElement(device, 'parent_addr').text = '0x'+node.addr_parent[1:-2].lower()