Troubleshooting Zigbee2MQTT Issues with TP-Link Deco X50 Routers - My Experience

Hi everyone,

I wanted to share my recent experience with Zigbee2MQTT and TP-Link Deco X50 routers. It’s been a frustrating journey, and I hope this helps anyone facing similar issues.

The Setup

I’m running Zigbee2MQTT with around 110 Zigbee devices, including many routers. Unfortunately, I’ve been facing persistent connectivity problems and frequent device drops. One major issue is that my TP-Link Deco X50 routers don’t allow manual selection of Wi-Fi channels for the 2.4GHz band, which makes interference with Zigbee quite likely. My Zigbee network was operating on channel 20, which overlapped with the Deco Wi-Fi channels.

The Problem

This morning, I noticed a series of errors in my Zigbee2MQTT logs:

[10:41:36] error: zh:zstack:znp: Failed to determine if path is valid: 'Error: spawn udevadm ENOENT'
[10:41:36] error: z2m: Failed to set permit join to false (...) failed with status '(0x11: BUFFER_FULL)' (expected '(0x00: SUCCESS)')

These “BUFFER FULL” errors suggested that Zigbee2MQTT was overwhelmed, likely because of interference. My devices were constantly dropping, and I received warnings like this one:

[10:41:49] warning: z2m: Failed to ping 'Chambre Raph et Cel - luminaire - tradfri led light' (...) failed with status '(0x11: BUFFER_FULL)' (expected '(0x00: SUCCESS)')

The Solution: Wi-Fi Channel Optimization

Using the TP-Link Deco app, I tried the “optimize network” feature. It switched my Wi-Fi 2.4GHz channel from 9 to 2. After restarting Zigbee2MQTT, I noticed more of my devices coming back online, and the “BUFFER FULL” errors disappeared. This confirmed that channel overlap was the root cause of the problem.

Moving Zigbee2MQTT to Channel 25

I decided to change my Zigbee network from channel 20 to channel 25 to avoid future overlap with Wi-Fi. Now, my Zigbee operates on a frequency that’s well outside the range of my 2.4GHz Wi-Fi network, which is on channel 2. While I hope this improves stability over time, I can’t help but feel a bit anxious about whether it will hold.

My Disappointment with TP-Link Deco X50

To be honest, I’m relatively disappointed with the TP-Link Deco X50 routers. They are quite expensive, but the inability to manually choose and lock Wi-Fi channels is frustrating. This lack of control is causing issues with my Zigbee network, and if you’re running a setup similar to mine, I’d recommend looking for routers that give you more control over channel selection to avoid interference headaches.

Key Takeaways

For anyone running Zigbee:

  1. Watch out for channel overlap between Zigbee and Wi-Fi. If your router automatically selects channels, this can lead to interference and connectivity issues.

  2. Avoid routers that don’t allow manual channel selection, like the TP-Link Deco X50. Not being able to lock your channels might result in network instability, especially with a large Zigbee setup.

  3. Consider using Zigbee channel 25, as it avoids most 2.4GHz Wi-Fi interference.

I hope this helps! If anyone has suggestions or is experiencing the same issues, feel free to share. And if someone knows about better solutions (like, a hacked FW of the Deco allowing for fix the wifi channels??? ;)) let me know!

Zigbee channel 25 can still be affected by the side band of Wifi channel 11 ZigBee and Wi-Fi Coexistence | MetaGeek

If your Deco X50 is running in mesh mode (i.e. you have multiple Deco routers), then changing the channel might not actually fix anything in the long term. Mesh systems will usually use different Wifi channels for each node, but maybe yours doesn’t. Only way to be totally sure is to use a wifi analyser app on your mobile to check which channels are in use.

One final option in case you want to go nuclear: disable 2.4ghz Wifi on your router if your other devices support 5ghz Wifi. You might not be able to do that if you’re running legacy stuff or ESP boards, but hopefully there’s a setting which allows you to only enable 2.4ghz on a single node in your mesh.