Zigbee Groups vs Home Assistant Scenes: When the Hub Makes Lights Lag
Paul Riker
August 25, 2026
A Home Assistant scene that turns on eight Zigbee bulbs is eight commands and a hope they land in the same blink. Sometimes they do. Sometimes the last lamp catches up like a late actor. The room looks broken. You add more automations. You buy a faster coordinator. The lag was the hub talking to each device because a group would have been one multicast-shaped message on the mesh. Zigbee groups (and bindings) exist so the radio does the chorus. HA scenes exist so the brain does the chorus. When the brain is busy or the mesh is chatty, you see the stagger.
This is not “never use HA scenes.” Scenes are how you mix Zigbee, Wi-Fi, and a switch that is not on the mesh. Groups are how you make one fabric of bulbs act like one light. Use both on purpose. I still have scenes named for guests. I do not have scenes that are secretly eight service calls I wrote when I was new and proud of YAML.
The first week of HA teaches entity_id lists. The second year teaches that lists do not scale on 2.4 GHz. If your living room grew from two bulbs to eight, the YAML that was cute is now a radio problem. Refactor is cheaper than silicon. It is also less fun, which is why the forum is full of coordinator SKUs and thin on group IDs.
What a group actually does
In Z2M or ZHA you put bulbs in a Zigbee group. A command to the group address hits members without HA listing eight entity_ids. The coordinator still speaks. The mesh does less unicast spam. Transitions can look like one event. Binding a switch to a group can work when HA is down. That last sentence is why people who care about wall switches still learn groups after they learned scenes.
Groups are not magic. Bad members still drop. A bulb on a lamp switch still leaves the chorus. USB 3 still screams. Groups do not thicken a starved mesh. They reduce chatter when the mesh is already a mesh.

What an HA scene actually does
A scene stores states across domains: lights, covers, a media player, an input boolean. It is the right tool for “movie night” that is not only bulbs. It is the wrong tool for “all ceiling lights on” if those lights are eight Zigbee endpoints HA will poke in a loop. You can make a scene that calls a group entity if you exposed the group. That is the hybrid: scene for the house mood, group for the Zigbee chorus inside the mood.
HA’s light groups (helper) are not always Zigbee groups. A helper group is still HA sending many commands unless you wired the underlying Zigbee group. Name them so you do not confuse the two. I have debugged “I made a group” that was only a helper. The mesh never heard a group command. The stagger stayed.
When the hub makes lights lag
HA restarting. MQTT lag. A loaded Pi. Automations that expand a scene into a script with delays you added to “fix” the stagger and then made worse. Z2M queue piled up behind a device interview. These are hub-path problems. A bound switch to a Zigbee group still feels instant because HA is not in the press. If your wall switch goes through HA as an event and then a scene, you chose the slow path for the most human interaction in the house.
Fix: bind or group for the switch. Use HA for the 2 a.m. logic and the mixed devices. Do not put the hallway on a scene that waits for the recorder.

Transitions and the pretty stagger
A 1-second transition on eight unicasts is eight animations that start at different times. A group transition is one instruction. If you love fades, groups matter more, not less. People add longer transitions to hide stagger and get a gooier stagger. Shorten HA’s fingers. Lengthen the mesh’s chorus.
Z2M versus ZHA for groups
Both can group. The UI and the name of the entity differ. Z2M’s group is obvious in the frontend. ZHA’s is in the integration and has improved, and people still miss it. If you switched stacks to “fix lag,” start with Zigbee2MQTT versus ZHA when the coordinator is not what broke. If you switched and never remade groups, you went back to unicast scenes by accident. Recreate the chorus after a migration. The new stack does not inherit your old group addresses unless you migrated the network with that data intact.
Group membership that includes a router bulb you power off will make the group look flaky. Membership is a mesh fact. Review it when you rearrange lamps. HA scenes do not care if a lamp is unplugged until they try. Groups care in a different way: the switch still “works” for whoever is listening. The dark lamp is still dark. That is correct physics, not a hub bug.
When scenes still win
Mixed tech. A Wi-Fi bulb in the same “mood.” A switch that cannot bind. A one-off color you will not encode in a group. Scenes are the glue. Groups are the chorus line. Glue the chorus, do not chorus through glue.
Also win: preview and undo in HA, and a UI a partner can tap. They will not open Z2M. Give them a scene that calls the group.
Color and temperature in a chorus
Groups that mix RGB and white-only bulbs will receive commands some members ignore. The stagger then looks like “color is late” when it is “color never applied.” Keep color-capable in one group and cheap white in another, or accept that movie-night purple will skip the hallway Cree. HA scenes can set per-entity color and hide this. Groups cannot hide mismatched hardware. That is a reason to use a scene on top of two groups, not eight unicasts.
Brightness 1 versus off is another chorus fight. Some bulbs treat 0 as off and drop from being useful routers. Some stay on the mesh at 1. If you “turn off” a room via a group of router bulbs, you may be dimming your mesh. I leave always-on routers out of the off group or I use smart switches that keep mains up. The lag you see after 11 p.m. might be a mesh you turned off with a scene named goodnight. Groups make that footgun faster, not safer. Design membership with routing in mind.
A practical layout
One Zigbee group per room ceiling. Wall switch bound to that group. HA scene “evening” sets the group plus the Wi-Fi lamp plus the cover. HA scene does not list eight zigbee bulbs. Automations that fire on motion call the group entity, not a loop. If you cannot expose the group, fix that before you buy silicon.
Name helpers ha_living_ceiling and Zigbee groups z2m_living_ceiling so logs tell the truth. When a guest says the lights are haunted, you will open the log, not the shopping tab. Haunted is usually a helper that still unicasts, or a member you powered off, or a scene that also toggles a Wi-Fi plug on a sad AP. Split those ghosts. The mesh can only answer for the mesh.
The close
If the lights ripple, the hub is conducting. Put the chorus on a Zigbee group and bind the switch. Use HA scenes for moods that leave the mesh. A faster coordinator will not make eight unicasts into one blink. A group will. The stagger is a software path. Change the path before you change the stick.
Watch a press with the Z2M log or ZHA log open. If you see a stack of set commands to eight IEEE addresses, you did not use a group no matter what the helper is named. If you see one group command, the ripple that remains is RF or a bad member. Those are different tickets. I will not sell you a new stick for the first ticket. I will not sell you a new scene for the second. Read the log. Then pick the tool that matches the line you actually saw.