How does a Thread network decide which devices are Routers, and which devices are “demoted” to REED?
I’ve got 45 Ikea devices, 35 of them are capable of being Routers.
After a lot of tinkering and rebooting, all but one room is now stable - no dropouts for 5 or 6 day.
The lounge is problematic though.
Three Grilplatts plugs which are showing as Routers.
Six Kajplats GU10 light bulbs, one of which is shown as a Router
Four of the bulbs have very good (green) connections to one or two Routers.
One bulb is only showing weak (orange) or poor (red) connections to Routers that are in neighbouring rooms.
This bulb keeps going unavailable, once or twice a day, despite being within 15 feet of 4 Routers (which it doesn’t connect to, instead connecting to roters that are further away).
To try and fix this, I placed a Grillplats plug 4 feet away from the bilb (on top of a cabinet, close to ceiling height).
This plug has 4 “green” connections to other routers, but stubbonly refuses to become a Router, stuck as a REED.
I’m pretty sure that this device, if it was a Router, would fix the poor connection to the lightbulb.
I thought that Thread was supposed to optimise itself, promoting REED devices to Routers to fix weak links?
That article explains some of the basics, but completely skips over the “logic” used in deciding which devices become Routers.
Is the “brains” of the Thread network whichever device decides that it wants to be Leader?
In a Home Assistant Thread netword with a single Border Router, does the Border Router or HA software play any role in the network “mapping”?
Everything that I’ve read seems to suggest that the Thread devices operate without any outside help, and the Border Router just sends and receives Matter data out onto the Thread network with a destination address.
I’m beginning to think that Thread might be a mistake for me.
I had a power cut this morning that lasted less than 5 seconds.
My HA PC main wifi Mesh, and Router stayed up (UPS).
Wifi devices were all back online and working within 2 minutes.
3 hours on, and the Thread network is still trying to rebuild itself - devices going offline as the routing “tables” get rebuilt. That’s pretty poor
Okay, so you mentioned just Ikea devices in your mesh, right? From my experiences in my own Thread network ( 37 devices mostly Eve/Bosch) the new Ikea devices are the least reliable and last to be back on after reboot or power loss. Maybe you shouldn’t blame Matter/Thread, but those cheap Ikea stuff?
My Eve and Bosch Plugs are usually pretty quick in regards to their functions (e.g.: on/off) and pretty quick back online as well.
Maybe it helps to put some more reliable router devices into your network to stabilise your mesh?
It’s quite possible that Ikea are to blame. The smart plugs and E27 bulbs seem to come back online quickly after a power cut, and don’t randomly drop off.
Even the switches, motion sensors and door contacts seem to recover - as long as they can reach a Router.
The GU10 bulbs are nearly all bad. I’ve got 14 if them in 4 rooms, and all but 2 or 3 have dropped offline.
Thing is, aren’t all Thread devices supposed to undergo certification to qualify for the Logo and a QR Code?
I just assumed that Ikea Thread devices would work, as their Zigbee stuff seems to have been decent?
Maybe I should consider getting some GU10 bulbs from a different manufacturer?
Edit: Or just refit my Tapo GU10 wifi bulbs. Plenty of bad reviews for Nanoleaf GU10. Maybe GU10 and Thread don’t go together. Maybe the metal can downlighter fittings just cut down the RF signal too much.
Yeah, i had the same impression with the Ikea GUI10s. The metal sockets they sit in are surely blocking somewhat of that radio connection. So i plugged in an Eve Energy into the wall to next room, which worked so far.
Yeah, I’m not so sure about this article… There is a statement I don’t agree with it:
"If a device that can be a Router has no child devices connected to it, it becomes an End Device. When a child attempts to join, it can be promoted to Router role again. " I’ve got network maps and mesh diags showing devices as router without children, so I don’t think that statement is correct.
Anyway, I did spent a little time glancing through the actual Thread spec (so the following is somewhat approximate),
Threshold of 16. REEDs must ask the Leader to become a router as long as there are fewer than 16 active routers at any one time. Beyond this is less clear, but the spec does say if a Child comes on-line and wants to attach to a REED, that the REED must become an active router, so the number of active routers can grow beyond 16. However…
The max number of active routers however is 32.
In between 16 and 32, the Border Router itself gets involved as to whether it becomes an active router. This is part of the spec is not so clear to me, but I think it means enabling routing between devices on the mesh.
There is another threshold of 23. So when the network adds this number of active routers, then all the other active Routers have to go through a set of criteria to see if they can downgrade and become a REED again. The decision tree is a bit more than what I want to spend time with, but its along the lines of whether it has a small number of children, and whether its neighbors already have good quality links to the router’s other neighbors, and if so, then it will ask the Leader to become a REED.
Thanks for the detailed reply. It does make sense.
I guess the number of Routers is a balance between reliable connections and keeping data traffic volume under control.
I’ve just had my first 24 hour period with zero dropouts.
Looking at the web ui of Matter Server, I can see:
45 Thread Nodes, of which 10 are Sleepy End Devices.
21 Routers
14 REED
Looking at how the Routers are physically distributed around the house, it’s starting to look a lot more “even”. Quite different to the network layout the last time I checked, so it us gradually adapting.
Seems like Thread might actually work, but it takes a long time (several days) to optimise the mesh.
My next concern is:
What happens after a power cut?
Is the routing map stored somewhere and quickly reloaded when power is restored, or does the optimisation process start over from scratch?
I found a Silicon Labs document that goes into great detail about Thread, but still skips over quite a bit about how the mesh gets configured.
It does say though that the routing information is held in RAM (“because NVRAM would be too slow”) on the devices, with each router knowing where its neighbouring routers are, and each REED just knowing about its children.
Some basic info is held in NVRAM though.
Looks like a power outage does indeed mean that the mesh has to be rebuilt pretty much from scratch. That seems like a bit of an oversight.
Does anyone know how multiple boarder routers work in this scenario. I started out with an esp one but found it unreliable and bought a stick for HA. Lateron i bought a aqara doorbell where the hub also acts as boarder router. So currently i have three boarder routers.
I have hower the impression, that devices stick to the boarder router they enrolled with. When the esp router is down so are quite a lot of my sensors. Can this be right? And what options do I have to make this more stable?
Have you “shared” the devices that you added using the esp and the Aquara with the HA ZBT stick?
No idea if this will make a difference, but it’s all I can think of, short of deleting those devices, and re-adding them via the HA ZBT Matter integration using the Companion app with the correct credentials.
On my side my Matter/thread network composed of Bilresa (remotes), Myggbett (door sensor) and Myggspray (motion sensor), supported by Alpstuga (Air quality sensor) as routers has been rock solid for two months straight.
I’ve been able to buy some Grillplats (plugs) this week and expected them to strengthen a little bit more the network, used to that behaviour with Zigbee.
As soon as I plugged it, two of my Alpstuga routing devices were downgraded as end devices and everything collapsed. Had to pair again few sensors and reboot some others.
Grillplats was unplugged quick after. I don’t need them anyway. Will maybe try again when technology improve.
If it ain’t broken don’t fix it, especially with Matter/thread.
No they were all joined directly via the companion app. I was just wondering if they shouldn’t optimize their rooting. Or is it actually home assistant that is sticking to the border router it discovered them from?
So all the devices were joined from the compsnion app, using the credentials of the HA ZBT? (If you look at the list of available border routers, the one being used for for commissioning has a “key in a phone” symbol next to its name).
If all the devices were definitely added via the ZBT as the “credential-sharing” border router, then how did you add the other 2 border routers to your Thread network?
Im using the otbr integration and addon.
Started with esp one and then added the add on later. So esp network was formed by HA and then the second connection was added to the integration.