ZHA Bindings Manager shows you what’s really going on with direct Zigbee bindings in ZHA: which switch controls which light, which bindings are stale or broken, and what each device can actually do. It also lets you create and remove bindings without hand-writing zha_toolkit service calls.
Why?
Direct bindings let devices talk to each other without Home Assistant. A switch bound to a light keeps working even when HA is down. That’s great until something goes wrong, because bindings are invisible in HA’s normal UI.
It started for me with an outside light that kept turning on from the wrong switch. Nothing in Home Assistant was triggering it. An old binding, left behind by re-pairing, was. Once the map showed it, the cause was obvious.
ZHA Bindings Manager helps answer questions like:
- What does this switch control, and what controls this light?
- Has re-pairing left an old or duplicate binding behind?
- Which endpoint on a multi-gang device is involved?
- Is a binding pointing at a device, endpoint or group that no longer exists?
- Does the target device’s firmware actually support the command being sent?
What it does
- Map. Every ZHA device and group, with arrows for each binding, colour-coded by cluster. Drag one device onto another to create a binding; click an arrow to inspect or remove it. You can also lay devices over your own floor plan.
- Bindings table. Every binding in one searchable list, with Binding Health checks that explain problems in plain English: what’s wrong, why it matters, and what to do. Click a device to see both what it controls and what controls it. Export to CSV, JSON or PDF.
- Devices and endpoints. An “exploded” view of any device, endpoint by endpoint: clusters, bindings in and out, groups, firmware and quirk. Run a live check of which commands a device really supports.
- Clean-up. Finds bindings left behind when you remove a device, and removes them with Unbind all. Scans of devices you’ve removed are forgotten automatically.
- Zigbee Capability Explorer. A community database built from real device scans, answering “can this device do X, on this firmware, from which endpoint?” Useful before you buy a remote or switch you want to bind directly.
Two ways to install
- The integration (recommended). Adds a ZHA Bindings page to the sidebar with no dashboard setup. Your data is shared across every browser and device, Home Assistant notifies you when removing a device leaves bindings behind, and updates always load fresh. It’s a custom repository in HACS for now; I’ve submitted it to the default list.
GitHub - hsolgaard/zha-bindings-manager-integration: Home Assistant integration for ZHA Bindings Manager: sidebar page, shared storage and removed-device notices · GitHub - The card on its own. In the default HACS store under Dashboard. No restart needed, and data is kept per browser.
GitHub - hsolgaard/zha-bindings-manager: Visualise, diagnose and manage Zigbee bindings in Home Assistant ZHA. · GitHub
Both run the same card and share one version number. Install one or the other, not both.
Requirements: ZHA, zha-toolkit, and Home Assistant 2024.7 or newer for the integration (2023.7 for the card on its own).
The capability database needs you
The Capability Explorer is only as good as the scans people share. After a supported-command check, the card can prepare a GitHub submission for you to review. It contains no IEEE addresses, entity IDs, areas, device names or bindings, and nothing is uploaded automatically. Common devices are just as useful as unusual ones, because repeat scans raise confidence.
Feedback
Ideas, bug reports and testing are very welcome. GitHub issues are best for bugs, so the diagnostic detail doesn’t get lost. Thanks to everyone in the original thread, especially @RedKing in the original thread and MattWestb on GitHub, whose testing shaped a lot of this.
This continues the original Dashboards & Frontend thread: [Link to original thread]
