Zigbee network is a mess...... I think it might be because of "null" devices

Regardless of how many routers are in your network, only the current 'best' 16 will get used (16 max is the number of eligble neighbors for any router including the coordinator). That is limited by the size of the neighbor table (a neighbor table is maintained by each routing device). But if the neighbor table is full 'best' means the ones that haven't stopped reporting their status and become stale-- I don't think a stronger router coming online will 'bump' a weaker (but still viable) neighbor out of the table (that's what a Zigbee heal is for). EDIT: According to Si Labs, "If there are no 'stale' entries, then it will look to overwrite entries that have the most failures or worst neighbor quality". So a weaker (but still normally functioning) neighbor router will get bumped out of the neighbor table in favor of a stronger one.

It's normal to see changes over time but I wouldn't expect to see the same nodes in the age 0-2 state, since that means they are always in the synchronization phase (Silicon Labs calls it the probationary period).

In very large installations (commercial building lighting applications is one example I read about) they do try to reduce the number of routing capable nodes to reduce link status traffic overhead. But those are networks with potentially hundreds of routers in-range of each other (and obviously purpose-built stacks and devices to achieve this).

1 Like

I just fixed a problem I didn't even know I had. I had a Iris plug plugged into the same UPS as my Hubitat to control the power to my Raspberry Pi server (in case i have to force reboot it). It sits literally 2.5" from my Hubitat. After all this discussion about the neighbor table, I decide to take a closer look at mine and noticed that it had an LQI of 130!! I figured, it must be noise from the UPS. So, pulled it, put it on a short (6") pigtail plug so it isn't sitting on the UPS and BOOM....LQI is now 255. The strangest thing is, I have had another Iris plug that is not that far away from Hubitat that has nothing routing through it (when I scan with my Xbee). That LQI was 220. So, I planned to take care of that next. Well, now it's LQI is 255!!! I have no idea why getting a better signal from one Zigbee module would help the signal from another but it did. I'm now getting above 250 LQI on every module in my neighbor table. So odd. But hey, I'll take it!!

I just noticed that I have "null" devices as well.


But I have Xbee. With Xbee it was very easy to track what device was it. Zigbee ID was the same, only network ID charged. So, I went into device properties and changed "Device Network ID".

I suspect that " Device network ID" gets messed up after reboot.

What do you mean by that? Device network ID will change if your device rejoins the network and gets a new Network ID. The Device ID will not change, since it is what is locked in the database.

Well, that what you would expect. But apparently not the case. I have not remove device from hubitat and I did not join device back. Zigbee ID was correct, network ID was not. I just edited network ID , that is all I did... Now device appears correctly in router table....
@mike.maxwell may know why is that. I don't know why network ID would change by itself...

The 16 bit address can and will change from time to time, the 64 bit address does not.

1 Like

I am having one of those "car stops making the sound as soon at you get to the mechanic" moments. For the last 3 weeks straight, my network has been unreliable at best. As I found earlier, all of my routers were changing 16 bit addresses every few minutes. I am going to assume that is was because they were continually trying to rejoin the network for some reason. My routing and neighbor table was changing significantly with every page refresh (just a few seconds between refreshes) with new "null" devices showing up every time.

I have powered off the hub for 20 minutes 4 times over the last few weeks with no change. I even waited until the wife was out running errands and shut the power off to the whole house for 20 minutes out of pure desperation. Kept thinking I was missing a router somewhere that was causing the issue. Still no luck. Waited several days between each of the attempts.

At about 4 pm today, I decided to shut down the zigbee radio for 20 minutes and see if I could get it to rebuild. This time, it seemed to work. I don't know why shutting down the radio would be any different than power down the hub. Assuming that part is just coincidence. My routing and neighbor table is no longer changing faster than I can refresh the page, all of my devices are responding quickly and as expected, no more "null" devices in the neighbor table. Its has been stable for over 3 hours now.

Zigbee is supposed to heal itself, right? It just takes a little longer than pushing it along by removing the coordinator for 20 min. What am I missing? Why did it work this time and not before? Why didn't the network heal itself like it was supposed to? Feeling a little foolish right now. I am sure there is something obvious that I am missing but have no idea what it could have been.

I think I need to get an xbee. Seems like a necessary diagnostic tool for Zigbee...

1 Like

So, are you saying that is normal if "Device network ID" in device settings, not to match ID that device has at the moment? "Null'' record in router table - does not brеак anything?

The hub updates the 16 bit address when it changes.

Mike, what is the best way to update firmware of hue products connected directory to hubitat such as motion sensors and buttons.

Earlier in this thread it was recommended to update his firmware.

there is only one way, the device needs to be removed from Hubitat, joined to a hue bridge, then updated from there...

Just went through this myself. The best way to keep things stable:

  1. Do not remove the device from Hubitat
  2. Reset the remote/sensor so by holding the reset button for ~10 seconds. You know you are successful when it flashes multiple colors.
  3. Add it via the Hue app.
  4. Check for updated software on the app. Let it sit for 24 hours (it takes a while to update firmware sometimes; I had one device wait 10 hours, another was ready in 10 minutes)
  5. Once you confirm via the HUe app that it is up to date, delete it from the Hue app
  6. Reset the remote/sensor (it should be flashing multi color)
  7. Discover devices (Zigbee) on the Hubitat app
  8. The device “should” come back as a previously discovered device. Automations and rules should work as before
  9. Done
2 Likes

Thanks, I'll give this a go now. I have a few of them around the house. I've discovered it's better to pay a little more for Hue than cheap out.

I'm having the same issue of zigbee routers changing their zigbee network ID every 5 minutes, including my XBee and my Tradfri router. I'm unsure as to why.

@mike.maxwell I know you say they change when they change, but every 5 minutes?

Nope...

Just changed again.

Edit: on the C-5 hub, I noticed there was power to the zigbee radio when the hub was powered off, so I unplugged the zigbee radio for 10 mins. See how I go.

You should see this thread for possible temporary solution

Just read your comment about a custom app which refreshes your devices every X minutes. Would you mind sharing the code? I'm interested in doing this to see if it makes a difference to some twitchy Xiaomi gear.

This doesn't help the Xiaomi gear, if you run my drivers on them this is already done at the most optimum times possible. Sleepy end devices can't receive commands all the time, only when they checkin and messages are only guaranteed to be left in the queue on the repeating devices for 7.68 seconds. Timing is everything.

2 Likes