Переезд с ZHA на Zigbee2MQTT на ZBDongle‑E: два рабочих сценария

Чтобы мигрировать Zigbee сеть с ZHA → Zigbee2MQTT на Sonoff ZBDongle‑E, либо создайте сеть заново (надёжнее), либо поднимите Zigbee2MQTT с тем же channel/PAN ID/EXT PAN ID/network_key — тогда часть устройств обычно подхватывается без массовой перепривязки.

Оглавление

Что важно учесть до старта

  1. Один донгл — одна интеграция. ZHA и Zigbee2MQTT не могут одновременно владеть одним и тем же USB‑адаптером.
  2. В ZBDongle‑E (EFR32MG21, Silicon Labs) для Zigbee2MQTT используйте:
    • serial.adapter: ember (это ключевой момент).
  3. «Сохранение сети» держится на 4 параметрах, которые должны совпасть 1-в-1:
    • channel, pan_id, ext_pan_id, network_key.

network_key — секрет сети. Не вставляйте его в тикеты, чаты и скриншоты, не включайте подробные логи без необходимости.

Подготовка (обязательно)

  1. Сделайте backup Home Assistant (полный снимок).
  2. В ZHA сохраните backup сети и выпишите параметры: channel, PAN ID, Extended PAN ID, Network Key.
  3. Убедитесь, что MQTT-брокер уже работает (иначе Zigbee2MQTT не стартует корректно).

Сценарий A: новая сеть и перепривязка

Выбирайте, если сеть «сыпалась», устройств немного или не хотите разбираться с ключами/байтами.

Шаги:

  1. Остановите и удалите интеграцию ZHA (освободите порт донгла).
  2. Установите Zigbee2MQTT.
  3. Укажите порт и адаптер, запустите — сеть создастся автоматически.
  4. По очереди делайте factory reset устройств и добавляйте через Permit join.
  5. Проверьте автоматизации (часто меняются entity_id, если имена не переносили).

Плюс: предсказуемо. Минус: долго, особенно с батарейными датчиками.

Сценарий B: перенос сети без массового re-pair

Цель — чтобы Zigbee2MQTT поднялся в той же Zigbee-сети, и устройства «узнали» координатор по тем же параметрам.

1) Установите Zigbee2MQTT, но не запускайте

Откройте файл configuration.yaml Zigbee2MQTT (в каталоге аддона/конфига).

2) Полностью остановите ZHA и освободите порт

Остановите/удалите ZHA и перезагрузите Home Assistant, чтобы гарантированно освободить /dev/serial/....

3) Настройте ZBDongle‑E (обязателен ember)

Минимальный пример:

serial:
  port: /dev/serial/by-id/usb-Silicon_Labs_Sonoff_ZBDongle-E_...-if00-port0
  adapter: ember

mqtt:
  server: mqtt://core-mosquitto:1883

frontend: true
homeassistant: true

4) Перенесите параметры сети (самый важный шаг)

Добавьте в advanced: ваши значения из ZHA:

advanced:
  channel: 15
  pan_id: 0x1A63
  ext_pan_id: [0xDD, 0xCC, 0xBB, 0xAA, 0x44, 0x33, 0x22, 0x11]
  network_key: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]

Частая ловушка — порядок байт в ext_pan_id. Если после старта Zigbee2MQTT сеть вроде поднялась, но устройства «не просыпаются», проверьте, не нужен ли обратный порядок массива (реверс).

5) Имена устройств (чтобы не переименовывать руками)

Если не перенести friendly_name, в Home Assistant вы получите «свежие» названия и, как следствие, больше ручной правки. Практичный минимум:

  • заранее подготовить соответствие IEEE адрес → имя;
  • заполнить devices.yaml Zigbee2MQTT под свои устройства.

(Даже при идеальном переносе сети часть устройств может потребовать точечный re-pair — это нормально.)

6) Первый запуск и Interview

  1. Запустите Zigbee2MQTT и откройте Web UI.
  2. Начинайте Interview с устройств-роутеров (розетки/реле/лампы), затем остальные.
  3. Батарейные устройства нужно разбудить (кнопка/вскрытие/движение — зависит от модели) и повторить Interview.

Если связь «плавает», первым делом вынесите донгл на USB‑удлинителе подальше от мини‑ПК/USB3 и Wi‑Fi — это часто даёт прирост стабильности без настроек.

Частые ошибки

  • Zigbee2MQTT не видит донгл: указан неправильный serial.port или занято ZHA; используйте путь из /dev/serial/by-id/.
  • Выбран не тот драйвер: для ZBDongle‑E нужен serial.adapter: ember.
  • Устройства не подхватились без перепривязки: проверьте совпадение channel/pan_id/ext_pan_id/network_key, затем попробуйте реверс ext_pan_id и сделайте Interview, начиная с роутеров.
  • Батарейные «мертвые»: их почти всегда нужно будить вручную во время Interview или на время включить режим присоединения и сделать re-pair точечно.

FAQ

Можно ли мигрировать вообще без перепривязки?
Иногда да, если параметры сети перенесены точно и устройства «видят» координатор. На практике разумный план — ожидать 0–30% точечного re-pair для «упрямых» устройств.

Нужно ли менять Zigbee-канал при миграции?
Если сеть была стабильной — нет. Смена канала добавляет переменных и повышает шанс переподключений.

Когда лучше сразу выбрать Сценарий A?
Если сеть долго копила проблемы, вы хотите «чистый старт», или устройств мало и перепривязка займёт приемлемое время.