Troubleshooting new Conbee ii USB device disconnecting

I’ve just upgraded to a new conbee ii zigbee dongle, and installed the add-on in hass.io but it seems to be failing. From the hass logs, I can see recurring instances of the following:

Detecting HardwareAction.REMOVE usb hardware /dev/bus/usb/...
Detecting HardwareAction.ADD usb hardware /dev/bus/usb/... 
Detecting HardwareAction.REMOVE usb hardware /dev/bus/usb/...
Detecting HardwareAction.ADD usb hardware /dev/bus/usb/... 

Similar entry from /var/log/messages:

Jul 31 03:08:47  kernel: [37762.432360] usb 2-1: new full-speed USB device number 39 using xhci_hcd
Jul 31 03:08:47  kernel: [37762.581930] usb 2-1: New USB device found, idVendor=1cf1, idProduct=0030, bcdDevice= 1.00
Jul 31 03:08:47  kernel: [37762.581934] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 31 03:08:47  kernel: [37762.581936] usb 2-1: Product: ConBee II
Jul 31 03:08:47  kernel: [37762.581938] usb 2-1: Manufacturer: dresden elektronik ingenieurtechnik GmbH
Jul 31 03:08:47  kernel: [37762.581940] usb 2-1: SerialNumber: DE2433232
Jul 31 03:08:51  kernel: [37766.569855] usb 2-1: USB disconnect, device number 39
Jul 31 03:08:59  kernel: [37775.152805] usb 2-1: new full-speed USB device number 40 using xhci_hcd
Jul 31 03:08:59  kernel: [37775.302168] usb 2-1: New USB device found, idVendor=1cf1, idProduct=0030, bcdDevice= 1.00
Jul 31 03:08:59  kernel: [37775.302170] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 31 03:08:59  kernel: [37775.302171] usb 2-1: Product: ConBee II
Jul 31 03:08:59  kernel: [37775.302171] usb 2-1: Manufacturer: dresden elektronik ingenieurtechnik GmbH
Jul 31 03:08:59  kernel: [37775.302172] usb 2-1: SerialNumber: DE2433232
Jul 31 03:09:03  kernel: [37778.982489] usb 2-1: USB disconnect, device number 40
Jul 31 03:09:12  kernel: [37787.561205] usb 2-1: new full-speed USB device number 41 using xhci_hcd
Jul 31 03:09:12  kernel: [37787.710669] usb 2-1: New USB device found, idVendor=1cf1, idProduct=0030, bcdDevice= 1.00
Jul 31 03:09:12  kernel: [37787.710672] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 31 03:09:12  kernel: [37787.710674] usb 2-1: Product: ConBee II

And on it goes every few seconds. From what I can tell this is a common issue for usb dongles (and arduinos) with a few possible sources (see for example, here: Why is supervisor.hardware.monitor removing and adding USB devices), but documentation is a bit disorganised out there, so I thought I’d document my troubleshooting here in hopes of being a bit forensic about things and getting feedback from other users who have been through this before.

So possible issues identified “out there” are:

  • failing USB device itself
  • insufficient power for USB device causing power cycling
  • insufficient permissions on /dev/ttyACM or user not added to tty (or less commonly dialout group)
  • conflicting devices installed (especially modems)

First things first is to get a sense of where the device is connected, and confirm is isn’t a simple hardware failure: try various USB ports and watch to see if the issue recurs (in my case it does) to be sure it isn’t an issue with a USB cable (if one if being used, in my case they aren’t).

sudo lsusb -t will show devices and their connections:

$ sudo lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 1: Dev 41, If 0, Class=Communications, Driver=cdc_acm, 12M
    |__ Port 1: Dev 41, If 1, Class=CDC Data, Driver=cdc_acm, 12M
    |__ Port 9: Dev 2, If 0, Class=Human Interface Device, Driver=usbfs, 12M
    |__ Port 11: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 11: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

You can list USB power demands (h/t here: https://unix.stackexchange.com/questions/81508/get-power-consumption-of-a) using either of the following commands:

usb-devices | grep 'Product=\|MxPwr' or lsusb -v

$ usb-devices | grep 'Product=\|MxPwr'
S:  Product=EHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
S:  Product=xHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
S:  Product=CP1500EPFCLCD
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=2mA
S:  Product=xHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
S:  Product=EHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA

This shows potential maximum draw for each device and not necessarily the actual power being demanded. I don’t think there’s a way to show this on debian. But good to confirm there aren’t a ton of power hungry devices listed indicating that the device is failing when the bus can’t provide enough power (not my issue). From what I can tell most motherboards provide 500 mA. For a serious deep dive, see here: macos - Linux USB: turning the power on and off? - Stack Overflow for more on how to power cycle usb ports in linux. My conclusion here is that this is generally a red herring unless your motherboard is failing. I’ve confirmed that other devices don’t cycle on the same usb ports in my case.

I’ve seen other posts which indicate that it may be useful to add your docker (or other) user to the group tty or less commonly dialout group. The command to do this is sudo adduser dockeruser tty. Not the problem in my case.

Note, there are also messages in my logs about this device "not an MTP device" but this is a red herring - just the kernel observing that it isn’t a USB storage device (but is instead an MSC device). (useful writeup here: usb stick won't mount: "not an MTP device" - Linux Mint Forums).

Is there anything I’m missing here? About to go to dresden for a replacement.

Tried it on another PC and same issue with power cycling. Have asked for a replacement - will post back if that solves it.

1 Like

I’ve had a helpful exchange with Dresden tech support, who pointed out that this is known as the “loop-bug”. I’ve resolved it by flashing the device. Fair warning - if you update firmware within a web GUI like phoscon, it will fail silently, which was my problem. A flash from command line did the trick - instructions are here

3 Likes

THANK YOU THANK YOU THANK YOU! I received my Conbee II yesterday and was having no luck configuring it. Followed this link, flashed it, and now all seems well!

Was this done from the CLI in HA or on some other Linux machine?

I did it from the command line on another RPi 4 if I recall correctly.

Thank you, I had the same problem. Reinstalled HA twice and upgraded my Rapsberry Pi.
Don`t know why nobody is talking more about it.
I bought the deconz in October 2021 and only updated through the web-gui. The flashing with windows did the trick.

My issue was in Home Assistant with the error:
zigpy deconz No response to ‘Command.device_state’ command with seq id ‘0x02’

The dropping off of the ConBee and ConBee II devices is not uncommon. They are very susceptible to interference and also any voltage drop on the USB port.

The best thing I found with deConz and a Conbee or Conbee II.
Make sure it is no where near any other wireless or computer device. This is not just a Raspberry thing, if you plug it directly into a PC USB port without an extension cable it will sometimes fail to form a mesh, or get so much interference it doesn’t work
Use a powered USB hub so the USB port is powered independently of the device the Conbee is connected to.

By following the above, I got my conbee to work 99% of the time, though I still have times when it will fail to initialise after a full OS / container restart due to dropping off and not initialising before the rest of the system comes back up, needing Home Assistant to be restarted a couple of times before the USB is detected again.

If I was doing this again, I would not use deConz or a Conbee stick of any kind. They are too sensitive to interference and voltage changes on the USB line. I would get an Elelabs USB stick, a Digi Xbee USB stick or the good old TI CC2530 / CC2531 based dongle and use Zigbee2MQTT or the native ZHA integration.

Even now, with using a powered hub and keeping the Conbee II I have away from other devices (tried with 3 different Conbee II’s with same result btw) I would never trust it enough to act as any kind of alerting system while I was out or anything.

Well, that is a little disheartening. I just want something that is stable.

1 Like

If you want stable, maybe wait for the Home Assistant Yellow, or pre-order one.
They come with the Silicon Labs Zigbee chip in-built.

Other than that, Xbee USB stick from Digi is pretty good and the Elelabs USB stick listed on the ZHA Integration page is also pretty decent. I have tested both of them and they seem robust. A lot have good luck with the Texas Instruments CC2530/CC2531 based sticks too.
Obviously only the Conbee is compatible with Deconz, so you’d have to move to ZHA or Zigbee2MQTT if you go away from Conbee’s

Zigbee Home Automation - Home Assistant (home-assistant.io)

Just FYI, I’ve had zero problems with my Conbee after getting it properly flashed and on an active USB cable. It’s interesting to hear that others have had issues, as I have had none with stability. I wonder if some of these may be related to faulty units that should have been replaced?

I have also had the exact same issues. The Conbee II was working and then started to connect and disconnect. I finally have managed to resolve the issue and it was nothing at all to do with Home Assistant but with the firmware on the Conbee II.

I tried to update the firmware on a windows laptop (How to update ConBee/ConBee II firmware in Windows 10 - Flemming's Blog). However I could see windows was also having difficulty staying connected to the device and the update would not go. So, and I dont really know why I tried this, I decided to try and get a version of the GCFFlasher for my mac. I found the source on github and compiled it and somehow I managed to get the firmware to update that way. However it still would not connect when in DeCONZ/Phoscon. So I went back to the windows laptop and used GCFFlasher again. Again I could not flash the device but when I used the option to specify the serial number the device could be flashed again and “hey presto” it all worked again.

@deeteeakl
I had the exact issue, see here: https://github.com/home-assistant/addons/issues/2430#issuecomment-1214117944

To which version do you have reflashed your conbee II? I have reflashed the current stable: deCONZ_ConBeeII_0x26720700.bin

Does the solution also work up until today? Or has the issue come back?

thx

Just one final update in case users arrive here with similar issues. Though I was able to get stability with the conbee device, I continued to experience range problems and (by extension) dropping zigbee devices. After some further research (basically working through the Zigbee-MQTT website list of adapters: Supported Adapters | Zigbee2MQTT) I settled on the Smlight SLZB-06 PoE Zigbee Adapter. Direct to ethernet and powered off a hub in my case, this adapter is night and day better than the Conbee. I can place it wherever I need to in the house (as it’s no longer tethered to the server via USB) and the range is really stellar. And it’s actually cheaper than the Conbee2 in the end!