Краткое руководство: привязки (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)

  1. Configuration → Integrations → ZHA → Configure → вкладка Groups → Create Group: задайте имя, выберите устройства (обычно лампы). Группа появится как entity в HA.
  2. Чтобы привязать устройство (источник): зайдите на страницу устройства (например пульт) → меню (три точки) → Manage Zigbee device → Bindings.
  3. Отметьте нужные кластеры (OnOff, LevelControl, ColorControl) и в Target выберите устройство или Zigbee‑группу → нажмите Bind.
  4. Для батарейных устройств разбудите источник (быстрые нажатия) прямо перед действием — иначе команда не дойдёт.

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.