Ошибка Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR. означает, что Zigbee2MQTT не смог запустить слой EZSP - протокол, по которому он обменивается данными с координаторами на чипах Silicon Labs. Zigbee2MQTT при этом не стартует, и устройства Zigbee перестают работать. Самая частая причина - координатор занят другим приложением, обычно интеграцией ZHA (встроенной Zigbee-интеграцией Home Assistant): отключение ZHA решило проблему во всех 4 ветках форума, где это пробовали. Реже виноваты неверный порт или скорость соединения (baudrate) и несоответствие типа адаптера прошивке координатора.
Текст ошибки
Ключевая строка лога выглядит так:
Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
Ошибка встречается и с USB-стиками (Nabu Casa SkyConnect, Sonoff Zigbee 3.0 USB Dongle Plus V2, Sonoff Zigbee Dongle-E), и с сетевыми координаторами (SMLIGHT SLZB-06M). В 16 учтенных ветках форума рядом фигурируют и такие строки лога:
Error: NCP EZSP protocol version of 12 does not match Host version 13- на адаптере прошивка с версией EZSP 12, а Zigbee2MQTT ждет версию 13;Error: Cannot discover TCP adapters at this time. Specify valid 'adapter' and 'port' in your configuration.- сетевой координатор не найден, Zigbee2MQTT просит проверить опцииadapterиport;Failed to init port with error Error: Error Resource temporarily unavailable Cannot lock port- порт уже открыт другим процессом;Failed to init port with error Error: getaddrinfo ENOTFOUND slzb-06m.local- сетевой координатор не находится по имени хоста;Error: ERROR_WRONG_DIRECTION;taskZB | Client limit has been reached!- так SLZB-06M сообщает о достижении лимита клиентов;Got unexpected response from the API: Service not enabled.
Причины
У ошибки несколько независимых причин, поэтому проверяйте их как чек-лист. В таблице причины отсортированы по числу веток форума, где они встретились.
| Причина | Веток форума | Что проверить |
|---|---|---|
| Интеграция ZHA включена и использует тот же координатор | 4 | Отключить или удалить ZHA |
| Порт или baudrate в конфиге не совпадают с адаптером | 3 | Путь /dev/serial/by-id и скорость для вашей модели |
Тип адаптера (adapter) не совпадает с прошивкой координатора | 3 | Чип Texas Instruments (Sonoff ZBDongle-P) - zstack, чипы Silicon Labs (ZBDongle-E, SkyConnect, ZBT-1/2) - ember |
| Другая виртуальная машина все еще держит стик | 1 | Выключить вторую ВМ |
| На стике прошивка RCP (multiprotocol) вместо NCP | 1 | Прошить EmberZNet NCP |
| MQTT-брокер (сервер, через который Zigbee2MQTT и Home Assistant обмениваются сообщениями) не запущен к моменту старта Zigbee2MQTT | 1 | Запустить Mosquitto broker |
Решения по порядку проверки
Проверяйте по порядку: сначала то, что помогало чаще всего.
1. Отключите ZHA
ZHA может держать координатор. Работать со стиком может только одно приложение, поэтому Zigbee2MQTT не получает доступ к порту. Документация Zigbee2MQTT советует отключить интеграцию ZHA и перезапустить аддон Zigbee2MQTT. Помогло в 4 ветках из 4.
2. Проверьте порт и baudrate
Сверьте значения port и baudrate с вашей моделью адаптера. Пример из ветки с Sonoff Zigbee 3.0 USB Dongle Plus V2 (в другой ветке для такого же адаптера стояла скорость 230400):
serial:
port: >-
/dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_6c8d24a3d973ef11a446dd1e313510fd-if00-port0
adapter: ember
baudrate: 115200
Проверка порта и скорости помогла в 4 отчетах из 5 (всего 4 ветки), в одном отчете не помогла.
Как правильно оформить секцию serial, подробно описано в гайде по установке и настройке Zigbee2MQTT в Home Assistant.
3. Прошейте координаторную прошивку
Для драйвера ember нужна прошивка EmberZNet NCP с поддерживаемой версией EZSP, документация Zigbee2MQTT требует EZSP v13. Если на стике стоит роутерная или multiprotocol (RCP) прошивка, причина может быть в ней. Документация описывает случай, когда адаптер прошит роутерной прошивкой вместо координаторной. По отчетам пользователей перепрошивка помогла в 3 случаях, в 3 - не помогла, еще в одном дала частичный результат. На форуме прошивались через сборщик прошивок silabs-firmware-builder и страницу обновления прошивки SkyConnect.
4. Укажите zstack для стиков Texas Instruments
Стикам на чипе Texas Instruments (например, Sonoff ZBDongle-P) нужен драйвер zstack. Указание правильного типа адаптера помогло во всех 3 отчетах из 2 веток:
port: /dev/ttyUSB0
adapter: zstack
5. Выключите вторую виртуальную машину
В одной ветке причиной была вторая виртуальная машина, которая все еще держала стик. После ее выключения проблема ушла.
6. Добавьте legacy-опции перед обновлением
Перед обновлением Zigbee2MQTT до версии 2.0.0 одному пользователю помогло добавление в конфиг опций, отключающих legacy-режимы:
advanced:
homeassistant_legacy_entity_attributes: false
homeassistant_legacy_triggers: false
legacy_api: false
legacy_availability_payload: false
device_options:
legacy: false
7. Включите watchdog и расписание повторов
Когда сетевой координатор недоступен, Zigbee2MQTT после 10 неудачных попыток старта прекращает пробовать. Одному пользователю помогло включение watchdog (механизма автоперезапуска аддона) и расписание повторных запусков 1,2,3,4,5,7,10,15,20,30,45,60 в настройках аддона.
8. Переустановите аддоны с нуля
Одному пользователю помогла полная переустановка: удалить аддоны Mosquitto broker и Zigbee2MQTT, установить их заново и выбрать стик на странице первичной настройки (onboarding) Zigbee2MQTT.
Когда Zigbee2MQTT снова запустится, проверьте, что устройства вернулись. Если устройства Zigbee не появляются в Home Assistant, у этой ситуации есть отдельный разбор.
Ошибки MQTT в логе
Строки MQTT в том же логе означают, что не запущен MQTT-брокер. Ищите в логе:
MQTT error: getaddrinfo ENOTFOUND core-mosquitto
MQTT failed to connect, exiting... (getaddrinfo ENOTFOUND core-mosquitto)
В этом случае сначала установите или запустите аддон Mosquitto broker, а уже потом разбирайтесь с EZSP-ошибкой.
Если ничего не помогло
Здесь собраны приемы, которые на форуме не сработали или остались без подтверждения. Непроверенные можно пробовать после основных решений, а не сработавшие приведены для справки.
Не помогло:
- опция
adapter: ezsp- в одной ветке не помогло, в другой результат неизвестен, а сама опция устарела; - перестановка стика в другой USB-порт - в одной ветке не помогло, в другой помогло лишь частично;
- шаги из связанной задачи форума по TypeError при старте - не помогло в одной ветке;
- удаление папки zigbee2mqtt целиком, удаление записи Sonoff USB в настройках ВМ и перезагрузка - не помогло.
Результат не подтвержден:
- установка драйвера Windows CP210x версии 6.7.0.0 для ZBDongle-E с чипом CP2102;
- замена
adapter: ezspнаadapter: emberв секции serial; - статические IP-адреса для координатора и Home Assistant с резервированием в роутере;
- перезагрузка хоста и сверка адреса и порта координатора с конфигом;
- удаление файла
state.jsonиз папки Zigbee2MQTT.
Частые вопросы
Можно ли оставить ZHA, если Zigbee2MQTT работает с тем же координатором?
Нет, ZHA придется отключить или удалить. Координатор обслуживает только одно приложение, и ZHA с Zigbee2MQTT не могут одновременно работать с одним стиком. Документация Zigbee2MQTT советует выключить интеграцию ZHA и перезапустить аддон Zigbee2MQTT.
Что означает строка NCP EZSP protocol version of 12 does not match Host version 13?
Прошивка адаптера работает по версии EZSP 12, а Zigbee2MQTT ждет версию 13. Для драйвера ember документация Zigbee2MQTT требует прошивку с EZSP v13 и пишет, что прошивку адаптера придется обновить. Перепрошивка на координаторную прошивку EmberZNet NCP в целом помогла в 3 отчетах форума, в 3 других не помогла.
Почему ошибка возникла после обновления до Zigbee2MQTT 2.0.0?
В двух ветках про версию 2.0.0 тип адаптера в конфиге не подходил к стику. Помогло указать adapter: zstack для стиков Texas Instruments (3 отчета из этих 2 веток). Одному пользователю помогло и добавление legacy-опций со значением false перед обновлением. Сверьте тип адаптера с чипом стика.
Поможет ли перестановка стика в другой USB-порт?
Вряд ли: в одной ветке форума перенос в другой порт не помог, в другой помог лишь частично. Эта ошибка чаще связана с занятым портом и настройками adapter, port или baudrate, поэтому сначала пройдите чек-лист причин и основные решения.
Что означает Cannot lock port в логе?
Порт координатора уже открыт другим процессом. Строка Failed to init port with error Error: Error Resource temporarily unavailable Cannot lock port встречалась в ветке про переезд на SLZB-06M с ошибкой 502 Bad Gateway, где помогло отключение ZHA. Занять адаптер может и другая виртуальная машина: в одной ветке стик заработал после ее выключения.



