How do I troubleshoot TimeoutError(s) for light bulbs that won't turn on / off?

Hello,

I have about 50 innr bulbs (repeaters) that make up the backbone of my zigbee network. Most of these bulbs turn on / off with an acceptable level of reliability. In addition, I have 13 Aeotec motion sensors (end devices) that function with an acceptable level of reliability.

However, in 1 room, there are 9 bulbs and they do not function reliably. For example, if I turn the light group on / off, then 25% of the time at least 1 bulb will fail to turn on / off. It is never 1 particular bulb that is a problem - it could be any of the 9 bulbs (unpredictable). I even tried a different brand of bulbs (Sengled), and I had the same problem. When a bulb doesn’t turn on / off, the log registers a “command failed” and a “TimeoutError.”

After a bulb fails to turn on / off, I can send the on / off command again, and the bulb will respond appropriately at least 99% of the time. However, sometimes, that doesn’t work and the bulb will require a reset. After resetting most of the bulbs (because 8 of them are on the same switch), they all work perfectly at first, and then back to the same story 10 minutes later.

I have tried different bulbs, I put an innr plug (repeater) in the room. I have used a WiFi Analyzer app to ensure their is no interference with any WiFi networks. The ZHA Visualization network map always shows at least 5 green (high strength) connections to every bulb in question.

Does anyone have any ideas on how to troubleshoot from here?
Thank you.

Raspberry Pi 3B+
Home Assistant OS 6.6
supervisor-2021.10.8
core-2021.11.5
ConBee II coordinator
innr SP224 plugs
innr SP220 bulbs
Aeotec motion sensors

Very common and still tricky to troubleshoot.

How many ZigBee devices do you have?
I’m not familiar with ZHA yet, but when you say groups, are they ZigBee groups or entities grouped together? Also, have you updated the firmware of your ConBee II?

I have 53 zigbee devices total.
They are entities grouped together into a “light group”
Yes, the firmware had already been upgraded to the latest version: 2.12.06.

Thank you for your response.

Did you ever resolve this? Having a similar problem with a couple of bulbs here. There are two groups (3 bulbs and 2 bulbs) and one random bulb will regularly not turn off when I turn off the groups. It could be any of the five. Toggling it off afterwards always works, but often the initial toggle will turn off four of five.

From this experience I learned to lower my expectations of how well these systems work.

In the 1 room with 9 bulbs, the reliability increased significantly when I reduced the number of bulbs in that room to 5.

At this point, the reliability of the bulbs turning on/off (throughout the whole house) is around 90%. However, if I enter a room with 4 bulbs and 3 turn on, I can live with that, but if I exit a room with 4 bulbs and 1 stays on, that is a problem for me.

This “lights off” blueprint I made has solved that problem and made the bulbs turn off properly more than 99% of the time. It turns off a light, waits 5 seconds (then checks to make sure motion sensor is still off), then turns the light off again.

blueprint:
  name: Motion Light Off
  description: Turn lights off after (a delay in) sensing motion.
  domain: automation
  input:
    motion_entity:
      name: Motion Sensor
      selector:
        entity:
          domain: group
    wait_time:
      name: Wait Time
      selector:
        number:
          mode: slider
          min: 0
          max: 30
          unit_of_measurement: minutes
      default: 3
    light_target:
      name: Light
      selector:
        entity:
          domain: light

description: ""
mode: single
trigger:
  - platform: state
    entity_id:
      - !input motion_entity
    to: "off"
    for:
      hours: 0
      minutes: !input wait_time
      seconds: 0
condition: []
action:
  - service: light.turn_off
    data: {}
    target:
      entity_id: !input light_target
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - if:
      - condition: state
        entity_id: !input motion_entity
        state: "off"
    then:
      - service: light.turn_off
        data: {}
        target:
          entity_id: !input light_target

If you have not already then suggest upgrading to a modern Zigbee Coordinator like for example ITead’s “Sonoff ZBDongle-P (CC2652 based updated to latest firmware) as well as add at least a few "know good"dedicated Zigbee Router devices between the Zigbee Coordinator and any devices having issues.

Having a few “great” Zigbee Routers (a.k.a. Zigbee signal repeaters / Zigbee range extenders) with better radios and antennas for better reception can affect performance positively as communication signals do not need to make as many jumps and not as many messages have to be resent. And having a Zigbee Coordinator with better radio and antenna can obviosuly have the same benefits.

To get the best suggest Zigbee Router devices today buying a few of ITead’s Sonoff ZBDongle-E (based on EFR32MG21) and flashing with Zigbee Router firmware then power them via USB-changers to work as stand-alone devices, (or alternatively for an out-of-the-box product buy a few of IKEA’s Trådfri Signal Repeater devices and/or Aeotec’s Range Extender Zi devices).

Also recommend reading and following all the additional tips here → Zigbee networks: how to guide for avoiding interference and optimize for getting better range + coverage

The last time I looked at Aeotec’s product line, they didn’t have those. Good to know, thanks.

I have the ConBee II. Do you know if the Sonoff would be such a noticeable upgrade?

Yes it should, but be sure to use USB extension cable to USB 2.0 port

Well, welcome to the magical world of Zigbee! Joking aside, there’s one more thing you could try: Create a ZHA group with all the lights. Note that these are different from Home Assistant groups because they are created by your coordinator. You can create groups here: ZHA → Configure → Groups.

As far as I understand it, if you are using a Zigbee group, the coordinator will send only one command message to all the lights. If it’s a normal Home Assistant group, each light will receive its own message, which is much more prone to error because each of these messages has a chance of not being delivered. In theory, if you use a Zigbee group, either all the lights will switch on or none will.

If you want to try this, remember to delete any existing groups that contain these lights.

Yeah I remember trying that at first, but if the network isn’t reliable (little to no TimeoutErrors) then it is much worse because if one bulb out of the group doesn’t respond, then the whole group gets stuck.

I appreciate the suggestion, thank you.