Таймаут EZSP/Ember в ZHA на Sonoff ZBDongle‑E: как восстановить связь
Ошибка EZSP/ember/serial timeout в ZHA почти всегда означает, что Home Assistant теряет стабильную связь с координатором по USB‑serial. Быстрее всего помогает: указать порт /dev/serial/by-id/..., убрать конкурирующие сервисы (Z2M/флешеры), и убедиться, что на донгле прошивка Zigbee NCP (не MultiPAN).
Оглавление
Что именно ломается при serial timeout
ZHA общается с Sonoff ZBDongle‑E (чип Silicon Labs) через протокол EZSP по последовательному порту. Таймаут появляется, когда:
- открыт не тот порт (после перезагрузки
/dev/ttyUSB0“переехал”); - порт занят другим процессом;
- донгл “подвисает” из‑за помех/питания/USB 3.0;
- стоит неподходящая прошивка/стек, и ZHA не может корректно поднять NCP.
Диагностика без перепрошивки (5–10 минут)
- Проверьте путь порта в ZHA
В настройках интеграции должен быть не/dev/ttyUSB0, а стабильный:
/dev/serial/by-id/....
Так вы исключите ситуацию, когда система назначила донглу другойtty*.
- Убедитесь, что порт не занят Типичный сценарий: одновременно включены ZHA и Zigbee2MQTT, или запущен аддон/контейнер, который тоже трогает USB‑UART. Симптом — ZHA то стартует, то уходит в таймаут.
Правило простое: один донгл — один “владелец” порта. Остановите всё, что может обращаться к этому serial, и только затем перезапускайте ZHA.
- Поймите, когда возникает таймаут
- Сразу при запуске ZHA → чаще порт/конфликт/прошивка.
- Через часы/дни → чаще USB‑помехи, питание, хаб, проброс в VM.
Прошивка: почему MultiPAN часто не взлетает с ZHA
Если донгл прошит в режим MultiPAN/мультипротокол (например, Zigbee+Thread), ZHA нередко получает несовместимость по ожидаемой версии EZSP/поведению NCP — внешне это выглядит как бесконечные таймауты, сбросы и невозможность поднять сеть.
Что делать:
- Верните донгл на прошивку Zigbee NCP (координатор, “только Zigbee”) для ZBDongle‑E.
- После прошивки выполните полный перезапуск Home Assistant.
- Если сеть не поднимается, проверьте, не изменился ли IEEE адрес координатора (иногда после смены ветки прошивки устройства “не узнают” координатор). В таком случае может понадобиться поднять сеть заново или восстановить бэкап Zigbee.
Если Thread вам не нужен — самый стабильный вариант для ZHA: донгл в режиме “только Zigbee” без мультипротокола.
Быстрый ориентир: симптом → вероятная причина
| Симптом | Чаще всего причина | Первое действие |
|---|---|---|
| Таймаут сразу при старте ZHA | порт не тот / порт занят / MultiPAN | by-id, выключить конкурентов, вернуть Zigbee NCP |
| Отваливается раз в сутки | USB‑помехи/питание/хаб | удлинитель, USB 2.0, питаемый хаб |
| В VM “то видно, то нет” | нестабильный проброс USB | пробросить устройство целиком, закрепить по ID |
USB, питание и виртуализация: как убрать «случайные» отвали
-
Уведите донгл от помех
Поставьте USB‑удлинитель 0.5–1 м. Часто это полностью прекращает serial timeout. -
Избегайте USB 3.0 рядом с донглом
По возможности используйте USB 2.0 порт и не подключайте рядом SSD/флешки/хабы USB 3.0. -
Питание и хабы Если донгл через хаб — проверьте другой хаб или используйте питаемый. Нестабильное питание даёт “рандомные” таймауты и reset‑loop.
-
Если Home Assistant в VM/контейнере
- Пробрасывайте USB‑устройство целиком, а не “виртуальный COM”.
- Закрепляйте порт в ZHA по
/dev/serial/by-id/.... - Отключите на хосте агрессивное энергосбережение USB, если оно усыпляет устройство.
Частые ошибки
- Указан
/dev/ttyUSB0вместо/dev/serial/by-id/.... - Одновременно запущены ZHA и Zigbee2MQTT (или другой сервис), оба лезут в один донгл.
- Донгл прошит MultiPAN/мультипротокол, а ожидается обычный Zigbee‑координатор.
- Донгл воткнут прямо в порт рядом с USB 3.0/SSD без удлинителя.
- Прошивку меняли, но не перезапустили HA полностью (в т.ч. питание/USB).
FAQ
Нужно ли переподключать все устройства после исправления?
Если вы не меняли тип прошивки и IEEE координатора не изменился — чаще всего сеть поднимется сама. Если IEEE сменился или вы переходили с/на MultiPAN, может потребоваться переподнятие сети и повторное спаривание.
Как понять, что проблема именно в USB, а не в прошивке?
Если ZHA стабильно стартует, но отваливается через время, и помогает переподключение донгла/перезагрузка — это типичный признак USB‑помех/питания/хаба.
Можно ли “вылечить” таймаут только настройками, без прошивки?
Иногда да: правильный by-id, отсутствие конкурирующих процессов и USB‑удлинитель часто решают проблему полностью. Если таймауты с самого старта и вы точно исключили конфликты — тогда уже проверяйте ветку прошивки (Zigbee NCP vs MultiPAN).