
Three roles
A Zigbee network has a coordinator that forms it, routers that forward, and end devices that do neither. This lesson shows that a role is a configured setting, and that the coordinator is not in every path.
Three roles and what each one does
One coordinator forms a Zigbee network and holds the trust centre role. Routers are normally listening all the time, forward messages for other devices and can keep sleeping children. End devices do not forward for anyone, and a sleepy end device sleeps, uses exactly one parent and cannot be reached until it asks. A battery device does not route.
In the house the coordinator is the dongle. The computer running the controller software is the host, not the coordinator.
A role is a setting
Nothing in a device's shape tells you its role. The smart plug is a router because its firmware was configured as one. The Arduino documentation recommends router for mains devices, and the role is still chosen in firmware. The same hardware set up as an end device would not forward at all.
On the bench, making the plug an end device removes it from the links, and the wardrobe sensor, which used it as parent, picks another. Nothing moved. The role changed who forwards.
The coordinator is not in every route
Send a command from the wall switch to light B and the route is the wall switch, its parent light A, then light B. The coordinator is not on it. Once a network is formed, forwarding goes through routers, and a bound command between two devices stays local.
That does not make the coordinator unimportant. Joining new devices and the trust centre's work still need it. A network that loses its coordinator may carry on forwarding, and that is different from saying nothing happens.
What it costs when it goes wrong
Configure every mains device as an end device and the network has no routers: each device needs the coordinator in reach, and a sensor behind a wall has no parent to use. Joining and paths both build on the roles.
Common mistakes
- Deciding a role from the product. A plug is not a router because it is plugged in. The role is configured in the firmware.
- Putting the coordinator in every route. After forming, a bound command goes device to device through routers.
- Calling the host the coordinator. The coordinator is the radio role on the dongle. The computer running the controller is a separate thing.
Edit this page — content/fundamentals/zigbee/three-roles.mdx
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.