Краткое руководство: привязки (binding) и группы (groups) в ZHA
Группа — это адрес Zigbee для multicast (одна команда → много устройств). Привязка (binding) — запись, которая заставляет источник отправлять команды напрямую на устройство или на группу, минуя Home Assistant. Используйте группы для одновременного управления лампами и привязки для быстрой локальной реакции (физические кнопки/пульты).
Коротко: группы — это «адреса» (много получателей), привязка — «связь» отправителя с адресом. Привязанная кнопка может работать без HA.
Основные отличия и когда что использовать
- Zigbee‑группа: создаётся в сети Zigbee, служит для groupcast. Хороша для однородных устройств (несколько ламп), минимальная задержка, работает локально, если источник посылает команды в эту группу.
- Привязка (binding): запись в binding table у источника (например, кнопки) → при нажатии источник шлёт команды сразу на target endpoint или на адрес группы. Самый быстрый вариант для локального управления.
- Home Assistant‑группа/автоматизация: нужна, когда требуется логика, интеграции, история и контроль через интерфейс — но это увеличивает задержку и требует доступности HA.
Когда выбирать:
- Требуется мгновенное, независимое от HA управление — делайте привязку к устройству или к Zigbee‑группе.
- Нужна сложная логика, расписания, интеграции — используйте HA‑автоматизации (можно комбинировать с привязками для базовой локальной работы).
Создание группы и привязки в ZHA (UI)
- Configuration → Integrations → ZHA → Configure → вкладка Groups → Create Group: задайте имя, выберите устройства (обычно лампы). Группа появится как entity в HA.
- Чтобы привязать устройство (источник): зайдите на страницу устройства (например пульт) → меню (три точки) → Manage Zigbee device → Bindings.
- Отметьте нужные кластеры (OnOff, LevelControl, ColorControl) и в Target выберите устройство или Zigbee‑группу → нажмите Bind.
- Для батарейных устройств разбудите источник (быстрые нажатия) прямо перед действием — иначе команда не дойдёт.
UI может показывать успешную привязку, но запись не сохранится в binding table устройства из‑за ограничений девайса или ошибки — всегда проверяйте по факту.
Проверка и отладка (ZHA Toolkit и логика)
Проверка по поведению: самый быстрый тест — нажать кнопку и посмотреть реакцию целевых устройств. Если не работает — читайте binding table.
Используйте ZHA Toolkit (через HACS) или дебаг‑логи ZHA/zigpy для чтения таблиц и принудительных операций. Примеры сервисов (Developer Tools → Services):
Прочитать binding table: service: zha_toolkit.binds_get data: ieee: "00:15:8d:00:04:7b:83:69" tries: 50 event_done: binds_done
Привязать вручную (пример): service: zha_toolkit.bind_ieee data: source_ieee: "00:15:8d:00:04:7b:83:69" target_ieee: "00:0d:6f:ff:fe:aa:bb:cc" cluster: 6 tries: 50
Практические приёмы:
- Для батарейных девайсов увеличьте параметр tries или многократно разбудите устройство.
- Если binds_get не показывает запись — попытайтесь привязать к отдельному устройству (не к группе), чтобы понять, в чём проблема.
- Проверьте endpoints и cluster в выводе binds_get: часто привязка «висит» на неправильном endpoint.
- Включите debug‑логи для zha и zigpy, если нужно собрать больше информации.
ZHA Toolkit полезен для автоматизации проверок: сначала вызов binds_get, затем при необходимости bind_ieee, затем повторный binds_get для подтверждения.
Частые ошибки
- Не тот cluster: устройство не поддерживает нужный кластер (OnOff/Level/ColorControl) — привязка не возможна.
- Неправильный endpoint: девайсы имеют несколько endpoint, указывайте корректный.
- Батарейные устройства «спят»: не принимают bind — требуются многократные нажатия/увеличение tries.
- Ограничения производителя: некоторые пульты можно привязать только к одному адресу или требуют конкретной последовательности.
- UI показал успешную операцию, а binding отсутствует — всегда проверяйте binding table.
FAQ
-
Как понять, привязалась ли кнопка к группе?
— Нажмите кнопку: если лампы реагируют локально и мгновенно (даже при выключенном HA), привязка/группа работают. Для точной проверки используйте zha_toolkit.binds_get. -
Можно ли привязать любую кнопку к любой лампе?
— Только если источник поддерживает клиент‑роль нужного кластера, а лампа — серверную роль. Также учитывайте endpoints. -
Если bind не работает через UI, что делать?
— Разбудите источник, попробуйте bind через zha_toolkit.bind_ieee, увеличьте tries, проверьте binds_get и логи.
Заключение
- Для локальной, быстрой реакции используйте привязки и Zigbee‑группы; для логики и интеграций — HA‑автоматизации. Всегда проверяйте binding table (zha_toolkit или дебаг‑логи), особенно для батарейных и фирменных устройств с ограничениями.
Если хотите, подготовлю готовые команды zha_toolkit для ваших IEEE‑адресов или конкретную инструкцию под модель пульта и ламп — пришлите модели и IEEE.