Перевод ZBDongle‑E в RCP для Zigbee2MQTT: пошагово
Чтобы перевести Sonoff ZBDongle‑E в RCP для Zigbee2MQTT, обычно прошивают MultiPAN RCP, затем настраивают Zigbee2MQTT на работу не с USB-портом, а через tcp://…:9999 с adapter: ember. Ниже — короткая инструкция и как откатиться назад.
Если вам нужен только Zigbee2MQTT без Thread/Matter, режим RCP почти никогда не нужен: проще и стабильнее прошивка Zigbee Coordinator (NCP) и подключение к /dev/serial/by-id/....
Оглавление
Когда нужен RCP на ZBDongle‑E
RCP имеет смысл в двух сценариях:
- Thread/Matter: донгл используется как радиомодуль для Thread (это отдельная история от Zigbee2MQTT).
- MultiPAN (Zigbee + Thread на одном донгле): Zigbee “отдаётся” наружу сервисом multiprotocol, а Zigbee2MQTT подключается к нему по сети (TCP).
Если ваша цель — просто поднять Zigbee2MQTT и забыть, чаще выигрывает схема “один донгл = один протокол”.
Прошивка MultiPAN RCP
- Остановите Zigbee2MQTT/ZHA/любые сервисы, которые используют донгл (иначе порт будет занят).
- Выберите способ прошивки:
- Через веб-прошивальщик в браузере (обычно нужен Chromium-браузер и доступ к USB).
- Через аддон прошивки в Home Assistant (если донгл подключён прямо к хосту HA).
- В списке прошивок выберите именно MultiPAN RCP (не OpenThread RCP).
- Запустите прошивку и дождитесь завершения, затем переподключите донгл.
После перехода на MultiPAN у части установок “ломается” существующая Zigbee-сеть (например, из‑за смены идентификаторов/адреса адаптера). Если сеть большая, заранее сделайте бэкап Zigbee2MQTT и планируйте время на возможную перепривязку устройств.
Настройка Zigbee2MQTT через TCP:9999
Логика такая: донгл в режиме RCP обслуживает multiprotocol-сервис, а Zigbee2MQTT подключается к “прокладке” по TCP.
- Поднимите/включите multiprotocol сервис (в Home Assistant это обычно отдельный аддон), укажите в нём ваш ZBDongle‑E.
- Убедитесь, что Zigbee-интерфейс публикуется на TCP-порту (часто это
9999). - В
configuration.yamlZigbee2MQTT пропишите подключение по TCP:
serial:
adapter: ember
port: tcp://IP_ИЛИ_ИМЯ_ХОСТА:9999
- Запустите Zigbee2MQTT. Если с первого раза не поднялось — сделайте ещё один перезапуск: multiprotocol-стек иногда инициализируется дольше, чем ожидает Zigbee2MQTT.
Если вы откатываетесь обратно на “обычный Zigbee”, фиксируйте порт как /dev/serial/by-id/..., а не /dev/ttyUSB0 — так он не будет “прыгать” после перезагрузок.
Частые ошибки
- Zigbee2MQTT не стартует после RCP: проверьте, что указан
port: tcp://…:9999, а не/dev/ttyUSB…, и чтоadapter: ember. - Таймауты/нет связи с адаптером: multiprotocol-сервис не запущен, выбран не тот USB-девайс, либо порт
9999не опубликован наружу. - Прошивальщик не видит донгл: попробуйте другой USB-порт (часто стабильнее USB 2.0), короткий кабель с линиями данных, отключите все сервисы, которые могли “держать” устройство.
- После прошивки устройства пропали из сети: планируйте миграцию — иногда проще создать сеть заново и перепривязать устройства, чем “чинить” старую после смены режима.
FAQ
Можно ли оставить RCP и подключать Zigbee2MQTT по USB, как раньше?
Обычно нет: в MultiPAN Zigbee2MQTT чаще работает через TCP (через multiprotocol), а не напрямую с UART.
Что выбрать: OpenThread RCP или MultiPAN RCP, если нужен Zigbee2MQTT?
Для Zigbee2MQTT в контексте RCP почти всегда нужен MultiPAN RCP. OpenThread RCP — это про Thread и сам по себе Zigbee2MQTT не “ускоряет” и не упрощает.
Как откатиться обратно на Zigbee Coordinator (NCP)?
Остановите Zigbee2MQTT/multiprotocol, прошейте прошивку Zigbee Coordinator, затем верните порт в Zigbee2MQTT на /dev/serial/by-id/... (и оставьте adapter: ember).