Ошибка Adapter EZSP protocol version is not supported by Host в Zigbee2MQTT

Ошибка «Adapter EZSP protocol version is not supported by Host» означает, что Zigbee2MQTT (хост) и прошивка донгла работают на разных версиях протокола EZSP - так Zigbee2MQTT общается с прошивкой EmberZNet на адаптере. В разных ветках помогали остановка ZHA (интеграции Zigbee Home Automation), правка настроек MQTT и типа адаптера и прошивка донгла под его модель; у каждого способа по одному подтверждению.

Как выглядит проблема

Zigbee2MQTT не запускается, а в логе появляется ошибка о неподдерживаемой версии протокола EZSP. В собранных ветках форума проблема выглядела так:

  • Zigbee2MQTT не стартует на SkyConnect: версия протокола EZSP адаптера не поддерживается, следом идут ошибки последовательного порта;
  • аддон Zigbee2MQTT 2.0 не запускается после обновления: ошибка чтения настроек, донгл не распознается или прошивка адаптера не поддерживается;
  • Zigbee2MQTT не запускается, потому что хост не поддерживает версию протокола EZSP адаптера.

Основной текст ошибки:

Error: Adapter EZSP protocol version (9) is not supported by Host [13-14].
Error: Adapter EZSP protocol version (8) is not supported by Host [13-16].
Error: Adapter EZSP protocol version (12) is not supported by Host [13-16].

В тех же ветках встречаются сопутствующие строки:

Error: Not supported, cannot set
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

В ветках фигурируют SONOFF Zigbee 3.0 USB Dongle Plus V2 (модель E) и Sonoff Dongle Plus V2.

Причины

В собранных ветках встретились три причины: одна названа участниками прямо, две остались предположениями.

ПричинаКак проверитьЧто сделать
В configuration.yaml есть ссылка на пустой groups.yamlНайти в configuration.yaml подключение groups.yaml и проверить сам файлУбрать ссылку на groups.yaml и добавить рекомендуемые настройки (решение 3)
ZHA запущена и держит последовательный порт (предположение)Проверить, не использует ли интеграция ZHA тот же донглОстановить ZHA и снова запустить Zigbee2MQTT (решение 1)
Прошивка донгла слишком старая для версии EZSP, которую поддерживает хост (предположение)Сверить прошивку донгла со списком поддерживаемых версий EmberZNetОбновить прошивку донгла (раздел «Если не помогло»)

Решения

Ниже пять решений. Каждое помогло в единственной ветке, где его пробовали: 1 подтверждение из 1.

1. Остановить ZHA перед запуском

Убедитесь, что ZHA не запущена и не занимает порт донгла, затем запустите Zigbee2MQTT. Помогло в одной ветке форума. Общее правило подтверждено FAQ Zigbee2MQTT: «the Zigbee Coordinator cannot already be connected or used by any other application». В FAQ ZHA прямо не названа, но случай из ветки под правило подходит.

2. Заполнить MQTT и указать порт с типом адаптера

Заполните сервер MQTT, пользователя и пароль, затем укажите порт и тип адаптера. Помогло одному пользователю форума. Конфигурация из ветки (значение adapter: ezsp в ней устарело, см. предупреждение ниже):

server: mqtt://core-mosquitto
user: user 
password: "password"
port: /dev/ttyUSB0
adapter: ezsp

По документации MQTT сервер обязателен, user и password - необязательные опции.

Пошаговая базовая настройка описана в гайде по установке Zigbee2MQTT в Home Assistant.

3. Убрать ссылку на groups.yaml и отключить legacy-настройки

Опыт одного пользователя форума, в документации Zigbee2MQTT этот путь не описан. Из configuration.yaml Home Assistant убрали ссылку на пустой groups.yaml, а в конфигурацию Zigbee2MQTT добавили блок, отключающий legacy-режимы (совместимость со старым поведением):

advanced:
  homeassistant_legacy_entity_attributes: false
  homeassistant_legacy_triggers: false
  legacy_api: false
  legacy_availability_payload: false
device_options:
  legacy: false

Ситуация возникла после обновления до Zigbee2MQTT 2.0. О других изменениях legacy-режимов в этой версии - кнопки и пульты пропали из автоматизаций.

4. Проверить донгл и указать порт с типом адаптера

Проверьте, что донгл распознается системой, затем укажите последовательный порт и тип адаптера. Подтверждено одной веткой форума. Помогшая конфигурация:

serial:
  port: /dev/ttyUSB0
  adapter: zstack

По документации настроек адаптера допустимые значения - zstack, ember, deconz, zigate или zboss. Если Zigbee2MQTT сообщает, что тип адаптера не указан, смотрите разбор этой ошибки. Когда аддон 2.0 не видит донгл, посмотрите страницу про ошибку no valid USB adapter found.

5. Определить модель донгла и прошить подходящую прошивку

У Sonoff Dongle Plus две модели: P работает со значением zstack, E - со значением ember. Определите модель и прошейте соответствующую прошивку Silicon Labs; в ветке пользовались сборщиком прошивок silabs-firmware-builder. Помогло в единственной ветке, где пробовали. В документации разделы разведены: страница zstack посвящена «ZBDongle-P», для «ZBDongle-E» есть отдельный раздел ember.

Если после обновления прошивки Zigbee2MQTT все равно не запускается, разберите случай с SLZB-06 после прошивки.

Если не помогло

Решений, которые кто-то пробовал и которые не сработали, в собранных ветках нет. Без подтвержденного результата остался один путь: обновить прошивку адаптера по гайду EmberZNet. Его пробовали в двух ветках: одно сообщение о частичном результате, один итог неизвестен, полных подтверждений нет. Гайд перечисляет поддерживаемые версии прошивки: «Currently supported firmware version: 7.4.x, 8.0.x, 8.1.x, 8.2.x, 9.0.x, 9.1.x».

Сходные симптомы дают ошибки соединения с адаптером: Failed to connect to the adapter (SRSP - SYS - ping) и ошибка EZSP-слоя HOST_FATAL_ERROR.

Частые вопросы

Помогает ли обновление прошивки донгла?

Это официальный путь из гайда EmberZNet, но подтверждений от пользователей нет. Прошивку обновляли в двух ветках с этой ошибкой: в одной сообщили о частичном результате, в другой итог остался неизвестным. Перед прошивкой сверьтесь со списком поддерживаемых версий, от 7.4.x до 9.1.x, и проверьте модель донгла: для Sonoff Dongle Plus от варианта, P или E, зависят и прошивка, и тип адаптера.

Может ли мешать интеграция ZHA?

Возможно, если ZHA запущена и держит последовательный порт донгла. В FAQ Zigbee2MQTT сказано, что координатор не должен быть уже подключен или использован другим приложением; ZHA там прямо не названа. В одной ветке форума Zigbee2MQTT заработал после остановки ZHA, но саму причину в этой ветке назвали предположением.

Что писать в настройке adapter?

Для донглов на EmberZNet, например Sonoff Dongle Plus модели E, пишите adapter: ember. Значение adapter: ezsp устарело, хотя в старых ветках и старых конфигурациях оно встречается. Для Sonoff Dongle Plus модели P, в документации она идет с чипом CC2652P, используют adapter: zstack. Полный список допустимых значений - zstack, ember, deconz, zigate, zboss.

Ошибка появилась после обновления до Zigbee2MQTT 2.0 - связано ли это?

Не всегда. Обновление до 2.0 названо в одной ветке из трех: аддон 2.0 не запускался после обновления, с ошибкой чтения настроек, нераспознанным донглом или неподдерживаемой прошивкой адаптера. Там помогли два действия сразу: убрать из configuration.yaml ссылку на пустой groups.yaml и отключить legacy-настройки в конфигурации Zigbee2MQTT. Еще одна ветка - ошибка сразу после onboarding, то есть мастера первого запуска.

С какими донглами встречалась ошибка?

В собранных ветках это SONOFF Zigbee 3.0 USB Dongle Plus V2 (модель E), Sonoff Dongle Plus V2 и SkyConnect. На SkyConnect за ошибкой о версии протокола следовали ошибки последовательного порта. Для Sonoff Dongle Plus перед любыми действиями определите модель, P или E: от нее зависят тип адаптера и прошивка.

Андрей Ковалев, редактор. Собирает решения из веток форума Home Assistant и сверяет команды и настройки с официальной документацией.