Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CC2531 router not connecting to CC2531 cordinator - ongoing #19461

Open
mrneutron42 opened this issue Oct 28, 2023 · 1 comment
Open

CC2531 router not connecting to CC2531 cordinator - ongoing #19461

mrneutron42 opened this issue Oct 28, 2023 · 1 comment
Labels
problem Something isn't working

Comments

@mrneutron42
Copy link

mrneutron42 commented Oct 28, 2023

What happened?

Same issue as https://github.com/Koenkk/Z-Stack-firmware/issues/243 and https://github.com/Koenkk/zigbee2mqtt/issues/18798

I have a CC2531 USB dongle with SMA connector CC2531 USB stick as the Zigbee coordinator.
It's loaded with the 20211115 version of CC2531ZNP-Prod.hex and it's working for Zigbee devices.
According to the ZHA Visualization diagram, the only connections to the CC2531 coordinator are 3 Zigbee routers (two IKEA TRADFRI and one Sonoff S31). Thus, it should not be at or near it's Zigbee connection limit.

I have another CC2531 USB dongle and loaded it with the 2020_09_29 version of router-cc2531-std.hex.
The CC2531 USB board with router firmware in it blinks the red LED once per second when powered up - indicating it's in pairing mode. When I activate Zigbee pairing from withint the ZHA addon in Home Assistant, the CC2531 with router firmware never pairs with the CC2531 coordinator!

To try and debug the setup, I loaded the CC2531 router with the 2020_09_29 version of router-cc2531-diag-usb.hex.
I put the CC2531 USB board with router firmware into a USB port on my Windwos 10 machine and a COM5 port showed up in the Windows Device Manager....good.
When I open PUTTY to view the serial port info, I see this over and over.
PANID:F5B,Ch:15,Join:0

PANID:F5B,Ch:15,Join:0

PANID:F5B,Ch:15,Join:0

To rule out a hardware problem with the CC2531 USB router, I bought another one to test. That arrived this week and I programmed it with the 2020_09_29 version of router-cc2531-diag-usb.hex.
SAME RESULTS - it blinked the red LED indicating pairing mode but did not pair with the CC2531 coordinator and I saw the Join:0 message over an over from the serial port.

I checked and all of my CC2531 USB sticks have different IEEE addresses, so address conflict can't be the problem.
The IEEE address of the coordinator is:
0x00 12 4B 00 19 49 B6 20
The IEEE address of the routers I'm testing are:
0x00 12 4B 00 1C DD 44 0D
0x00 12 4B 00 01 43 3D 5A

Here are my Home Assistant component versions:
Home Assistant 2023.9.3
Supervisor 2023.10.0
Operating System 11.0
Frontend 20230911.0 - latest

What did you expect to happen?

I expected the CC2531 USB dongle with router firmware loaded to pair with the CC2531 USB dongle with coordinator firmware loaded into it, when the coordinator was put into pairing mode.

How to reproduce it (minimal and precise)

Load two CC2531 USB dongles with custom Z-Stack-firmware:
load 20211115 version of CC2531ZNP-Prod.hex in the coordinator
load 2020_09_29 version of router-cc2531-std.hex into the router
Try and Zigbee pair the router to the coordinator.

Zigbee2MQTT version

not sure where to find in Home Assistant

Adapter firmware version

2020_09_29 version of router-cc2531-std.hex into the router

Adapter

CC2531 USB dongle with SMA connector

Debug log

zha log after clicking "Add Devices to this device" in Home Assistant:
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=3, profile_id=0, cluster_id=32822, data=Serialized[b'\x03\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_rsp: [<Status.SUCCESS: 0>]
[0x0000:zdo] No handler for ZDO request:ZDOCmd.Mgmt_Permit_Joining_rsp([<Status.SUCCESS: 0>])
0xA35B: Device seen - marking the device available and resetting counter
0xA35B: Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6F26), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=2, source_route=None, extended_timeout=False, tsn=0, profile_id=49246, cluster_id=6, data=Serialized[b'\x08\x86\n\x00\x00\x10\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6F26:1:0x0006] Received ZCL frame: b'\x08\x86\n\x00\x00\x10\x00'
[0x6F26:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Decoded ZCL frame: OnOff:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Received command 0x0A (TSN 134): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
[0x6F26:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6F26), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=6, data=Serialized[b'\x08\x86\n\x00\x00\x10\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6F26:1:0x0006] Received ZCL frame: b'\x08\x86\n\x00\x00\x10\x00'
[0x6F26:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Decoded ZCL frame: OnOff:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Received command 0x0A (TSN 134): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
[0x6F26:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Duplicate 134 TSN
[0x3B80](TRADFRI Signal Repeater): Device seen - marking the device available and resetting counter
[0x3B80](TRADFRI Signal Repeater): Update device availability - device available: True - new availability: True - changed: False
0x4F3B: Device seen - marking the device available and resetting counter
0x4F3B: Update device availability - device available: True - new availability: True - changed: False
0x6B1C: Attempting to checkin with device - missed checkins: 2
[0x6B1C:1:0x0000] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=10, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0x6B1C:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4])
[0x6b1c] Extending timeout for 0x0a request
0x6685: Device seen - marking the device available and resetting counter
0x6685: Update device availability - device available: True - new availability: True - changed: False
0x6C77: Device seen - marking the device available and resetting counter
0x6C77: Update device availability - device available: True - new availability: True - changed: False
0x268C: Device seen - marking the device available and resetting counter
0x268C: Update device availability - device available: True - new availability: True - changed: False
0xCB61: Device seen - marking the device available and resetting counter
0xCB61: Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6C77), src_ep=2, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=25, data=Serialized[b'\x01\xe7\x01\x00\x0b\x10\r\x01\xe0I\x00B'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6C77:2:0x0019] Received ZCL frame: b'\x01\xe7\x01\x00\x0b\x10\r\x01\xe0I\x00B'
[0x6C77:2:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=231, command_id=1, *direction=<Direction.Server_to_Client: 0>)
[0x6C77:2:0x0019] Decoded ZCL frame: Ota:QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4107, image_type=269, current_file_version=1107315168)
[0x6C77:2:0x0019] Received command 0x01 (TSN 231): QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4107, image_type=269, current_file_version=1107315168)
[0x6C77:2:0x0019] OTA query_next_image handler for 'Philips SML001': field_control=0, manufacturer_id=4107, image_type=269, current_file_version=1107315168, hardware_version=None, model='SML001'
[0x6C77:2:0x0019] No OTA image is available
[0x6C77:2:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=231, command_id=2, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0019] Sending reply: query_next_image_response(status=<Status.NO_IMAGE_AVAILABLE: 152>, manufacturer_code=None, image_type=None, file_version=None, image_size=None)
0x7F43: Device seen - marking the device available and resetting counter
0x7F43: Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xA35B), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1026, data=Serialized[b'\x18q\n\x00\x00)\x95\x08'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0xA35B:1:0x0402] Received ZCL frame: b'\x18q\n\x00\x00)\x95\x08'
[0xA35B:1:0x0402] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=113, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0xA35B:1:0x0402] Decoded ZCL frame: TemperatureMeasurement:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=int16s, value=2197))])
[0xA35B:1:0x0402] Received command 0x0A (TSN 113): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=int16s, value=2197))])
[0xA35B:1:0x0402] Attribute report received: measured_value=2197
0xE1F6: Device seen - marking the device available and resetting counter
0xE1F6: Update device availability - device available: True - new availability: True - changed: False
[0xC2EE](TRADFRI signal repeater): Device seen - marking the device available and resetting counter
[0xC2EE](TRADFRI signal repeater): Update device availability - device available: True - new availability: True - changed: False
[0x6F26](S31 Lite zb): Device seen - marking the device available and resetting counter
[0x6F26](S31 Lite zb): Update device availability - device available: True - new availability: True - changed: False
0xA35B: Device seen - marking the device available and resetting counter
0xA35B: Update device availability - device available: True - new availability: True - changed: False
[0x3B80](TRADFRI Signal Repeater): Device seen - marking the device available and resetting counter
[0x3B80](TRADFRI Signal Repeater): Update device availability - device available: True - new availability: True - changed: False
0x4F3B: Device seen - marking the device available and resetting counter
0x4F3B: Update device availability - device available: True - new availability: True - changed: False
0x6B1C: last_seen is 70018.7224559784 seconds ago and ping attempts have been exhausted, marking the device unavailable
0x6B1C: Update device availability - device available: False - new availability: False - changed: False
0x6685: Device seen - marking the device available and resetting counter
0x6685: Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6C77), src_ep=2, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1030, data=Serialized[b'\x08\xe8\n\x00\x00\x18\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6C77:2:0x0406] Received ZCL frame: b'\x08\xe8\n\x00\x00\x18\x00'
[0x6C77:2:0x0406] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=232, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0406] Decoded ZCL frame: PhilipsOccupancySensing:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=bitmap8, value=<bitmap8: 0>))])
[0x6C77:2:0x0406] Received command 0x0A (TSN 232): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=bitmap8, value=<bitmap8: 0>))])
[0x6C77:2:0x0406] Attribute report received: occupancy=<bitmap8: 0>
[0x6C77:2:0x0406] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=232, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0406] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x268C), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1029, data=Serialized[b'\x18\x13\n\x00\x00!\x15\x16'], tx_options=<TransmitOptions.NONE: 0>, radius=27, non_member_radius=0, lqi=0, rssi=None)
[0x268C:1:0x0405] Received ZCL frame: b'\x18\x13\n\x00\x00!\x15\x16'
[0x268C:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=19, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x268C:1:0x0405] Decoded ZCL frame: RelativeHumidity:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5653))])
[0x268C:1:0x0405] Received command 0x0A (TSN 19): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5653))])
[0x268C:1:0x0405] Attribute report received: measured_value=5653
0x6C77: Device seen - marking the device available and resetting counter
0x6C77: Update device availability - device available: True - new availability: True - changed: False
0x268C: Device seen - marking the device available and resetting counter
0x268C: Update device availability - device available: True - new availability: True - changed: False
0xCB61: Device seen - marking the device available and resetting counter
0xCB61: Update device availability - device available: True - new availability: True - changed: False

setup details from Home Assistant "zha-#############-Zigbee Coordinator-#########" json file:
"data": {
"ieee": "REDACTED",
"nwk": 0,
"manufacturer": "Texas Instruments",
"model": "CC2531, Z-Stack Home 1.2 (build 20211115)",
"name": "Texas Instruments CC2531, Z-Stack Home 1.2 (build 20211115)",
"quirk_applied": false,
"quirk_class": "zigpy_znp.zigbee.device.ZNPCoordinator",
"manufacturer_code": 0,
"power_source": "Mains",
"lqi": null,
"rssi": null,
"last_seen": "2023-10-24T08:43:43",
"available": true,
"device_type": "Coordinator",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Coordinator: 0>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AlternatePanCoordinator|FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 143>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=1, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=True, *is_coordinator=True, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=False, *is_security_capable=False)",
"endpoints": {
"2": {
"profile_id": "0xc05e",
"device_type": "0x0820",
"input_clusters": [
"0x0000"
],
"output_clusters": []
},
"1": {
"profile_id": "0x0104",
"device_type": "0x0400",
"input_clusters": [
"0x0000",
"0x0006",
"0x000a",
"0x0019",
"0x0501"
],
"output_clusters": [
"0x0001",
"0x0020",
"0x0500",
"0x0502"
]
}

setup details from Home Assistant "config_entry-ZHA-#########" json file:
},
"manufacturer": "Texas Instruments",
"model": "CC2531, Z-Stack Home 1.2 (build 20211115)"
"custom_components": {},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"after_dependencies": [
"onboarding",
"usb"

"config_entry": {
  "entry_id": "6e327245e37dd80a063e444635565745",
  "version": 3,
  "domain": "zha",
  "title": "TI CC2531 USB CDC, s/n: __0X00124B001949B620 - Texas Instruments",
  "data": {
    "device": {
      "path": "/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001949B620-if00",
      "flow_control": null,
      "baudrate": 115200
    },
    "radio_type": "znp"
@mrneutron42 mrneutron42 added the problem Something isn't working label Oct 28, 2023
@sweetpants
Copy link

Same problem here, Have tried several versions of CC2531 firmware, but none alows met to join the CC2531 as a router.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
problem Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants