Slow reaction zigbee devices (devices offline randomly)


I have been having issues lately with the reaction time of devices (lights / switches) when I use a remote (more extreme cases it takes 10 seconds before they turn on). Sometimes devices stop to respond (in the app or on the PC: the device has failed to report). The dashboards are always working fine no delays loading.

I am running HA on a raspberry pi 4 with 4GB ram, 240gb SSD and Sonoff Zigbee USB dongle. I rarely see the processor go above 13%, ram at 30% steady, CPU 36 Celsius.
Everything is up to date (as of writing this) core 2023.11.3, OS 11.1.
All zigbee devices are connected to ZHA and had this issues for at least 2-3 months (so it didn’t get better with updates).

I have a lot of zigbee devices 147 to be precise but I want (need) to add more.
My theory is that the network traffic is to congested for the sonoff coordinator to handle.
I use a lot of plugs with power meter for statistics (35 pieces) and a lot of individual lights (at least 22).
End devices: motion, light, smoke, door sensor, remote (at least 36) and much more (obviously).
I think my network is solid (i have a lot of devices acting as routers).

I thought I add a second coordinator (another sonoff dongle) split my network load and problem solved… until I tried to add the second coordinator and found out ZHA doze not allow it.
So I search for an alternative where I can use the second coordinator to split the load. I looked at zigbee2mqtt but I can’t make it work (i can’t make it work with the second adapter).

Is there anyone that has this issues (slow reaction time)?
Is this related to to many zigbee devices?
Or is this something I overlooked?

I’m open for suggestions.

1 Like

Are you using zigbee groups? Commands to groups will swamp a zigbee mesh very quickly because they are blasted out to all nodes in the network, just to make sure every device in the group gets them. This can cause messages to be lost or delayed, particularly if commands are sent in quick succession, by an automation or script for example.

If you have 2 identical Zigbee dongles, it is hard to use /dev/serial/by-id, and using ports can be difficult too, because they can change after a reboot.

I just started using groups (as a possible solution to my problem) as of yesterday so that is not the issue.
I do notice that my lights (8 pice) that is now a group reacts a bit faster.

They are the same brand, the new one is v2 so it has a different name.

if you want to use a V2 with Zigbee2MQTT, don’t forget to set the adapter type.

I thought lets try to migrate to the v2 dongle, maybe that works better…
I will never try that again, the response time got even whose (20 seconds to 1 minute), and a lot of devices wold not respond at all. So I reinstalled the old coordinator and only had to re add a few devices (i had made a backup but still some switches would not work).

Just an update:
I did not find a solution in ZHA for the slow reaction.
I managed to install zigbe2mqtt (with a second controller) and I am transferring the devices that were slow.
The lights, remotes and sensors I transferred are reacting lightning fast (as I was used to).
Devices that work well in ZHA will stay there.

1 Like

Regardless of the implementation used I highly recommend that you read and try to follow all the tips here → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage

Good tips. Especially the proximity from the router (in my case the routers) is a possible factor. From the beginning the ZHA coordinator was close to the routers so now I used an antenna cable to place the antenna further from the routers (on the other side of a wall).
Curious what the result will be.

I think i post an update:
Zigbee 2 mqtt has helped to stabilize the system. It is not perfect yet but it is back to enjoyable levels. Now I strategically transfer the devices that have issues.
I brought the devices in ZHA down from 147 to 107 and zigbee 2 mqtt has 57 (yes I am still adding more devices to the system).
I have purged the system from devices that were obsolete and disabled functions that I don’t need (monitoring identity, LQI, RSSI…).
I still need to move the zigbee coordinators away from my routers but first I need to change the layout of my network to be able to do so.

Disable functions how? I don’t think disabling entities has any effect on Zigbee/MQTT messages being processed.