Ошибка No valid USB adapter found означает, что Zigbee2MQTT при запуске не смог определить валидный USB-адаптер: discovery (автоматическое определение устройств) не находит подходящий донгл, и аддон (дополнение Home Assistant) падает при старте. В ветках форума помогало явное указание типа адаптера, например строка adapter: zstack в разделе serial конфигурации (подтвердили в одной ветке из двух), а также удаление лишнего пробела и возврат старых настроек. Везде хватило правки configuration.yaml.
Как выглядит проблема
Zigbee2MQTT не запускается, а в журнале появляется ошибка о том, что валидный USB-адаптер не найден.
Симптом встречается в трех вариантах:
- аддон не запускается сразу после обновления до Zigbee2MQTT 2.0.0;
- сборка 2.0.0-1 падает с той же ошибкой, хотя до этого год работала без проблем;
- адаптер SkyConnect перестает определяться посреди использования, после чего Zigbee2MQTT уже не стартует.
Текст ошибки в журнале:
Error: USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.
Сообщение само подсказывает, чего не хватает - валидных adapter и port в конфигурации.
Причины
Единственная причина, которая прозвучала в обсуждениях, - конфигурацию раньше уже меняли при попытках починить что-то другое и не вернули обратно. Она названа в одной ветке из трех, в остальных причина не уточнялась.
| Причина | Как проверить | Что сделать |
|---|---|---|
| Забытые правки конфигурации после прошлых попыток что-то починить (названа в одной ветке из трех) | Открыть configuration.yaml и проверить раздел serial: не осталось ли строк от прошлых правок | Вернуть измененные строки к прежнему рабочему виду |
Решения
Проблема решалась правкой configuration.yaml. Ниже три варианта, каждый из которых помог в своей ветке.
Указать adapter: zstack
В разделе serial конфигурации добавьте или исправьте строку adapter: zstack:
adapter: zstack
Это пробовали в двух ветках, в одной пользователь подтвердил, что после правки аддон запустился. Документация Zigbee2MQTT подтверждает, что zstack входит в список допустимых значений строки adapter. Как добраться до конфигурации аддона, шаг за шагом показано в гайде по установке и настройке Zigbee2MQTT в Home Assistant.
Значение zstack подходит только донглам на чипах Texas Instruments, например Sonoff ZBDongle-P. Донглам на Silicon Labs (Sonoff ZBDongle-E, SkyConnect, ZBT-1 и ZBT-2) нужен ember. Как отличить модель P от E и что делать с ошибкой версии протокола, разобрано на странице Adapter EZSP protocol version is not supported.
Убрать пробел перед строкой adapter
В одной ветке аддон не запускался, и помогло удаление лишнего пробела перед строкой adapter в конфигурации. После этого Zigbee2MQTT стартовал. Это опыт одного пользователя форума, в документации такой случай не описан.
Вернуть конфигурацию к прежнему виду
В ветке, где SkyConnect перестал определяться посреди работы, причиной оказались настройки, измененные при прошлых попытках решить другую проблему. Возврат конфигурации к прежнему виду вернул аддон в строй. Это тоже опыт одного пользователя, подтверждений от других нет.
Если не помогло
Один из допустимых типов адаптера в одной ветке не сработал, а отключение legacy-опций (параметров совместимости со старым поведением Zigbee2MQTT) дало лишь частичный результат у одного пользователя.
Перебор со значением adapter: ember в той же ветке, где в итоге помог adapter: zstack, результата не дал. Значение ember само по себе допустимое и входит в список документации, но именно там не подошло. Если при выборе типа адаптера Zigbee2MQTT пишет про версию протокола, это отдельная ситуация: ошибка Adapter EZSP protocol version is not supported by Host.
Второй вариант взят из обсуждения на GitHub и остается без подтверждений - добавление в configuration.yaml отключения legacy-опций:
advanced:
homeassistant_legacy_entity_attributes: false
homeassistant_legacy_triggers: false
legacy_api: false
legacy_availability_payload: false
device_options:
legacy: false
С отказом от legacy-режима в Zigbee2MQTT 2.x связана и пропажа кнопок и пультов из автоматизаций - если после обновления пропали именно они, начните с той страницы.
Частые вопросы
Какое значение указать в adapter?
Значение берется из списка документации: zstack, ember, deconz, zigate или zboss. Какой тип нужен именно вам, зависит от вашего донгла. В обсуждаемых ветках zstack помог в одной из двух, где его пробовали, а ember в одном случае не сработал, поэтому подбирать значение наугад не стоит.
Нужно ли вместе с adapter указывать port?
Сообщение ошибки требует указать оба параметра - и adapter, и port. В ветках, где проблему удалось закрыть, хватило правки конфигурации: помогли значение zstack, удаление лишнего пробела и возврат старых настроек. Конкретные значения port там не обсуждались, поэтому готового рецепта из этих обсуждений нет.
Ошибка появляется только после обновления?
Нет, обновление не обязательно. В двух ветках из трех ошибка возникла после обновления до Zigbee2MQTT 2.0.0 и до сборки 2.0.0-1, причем во втором случае аддон перед этим год работал нормально. В третьей ветке SkyConnect перестал определяться посреди работы, об обновлении там не сказано.
Это то же самое, что ошибка про незаданный тип адаптера?
Нет, это разные ошибки. Здесь discovery не находит валидный USB-адаптер и просит указать в конфигурации adapter и port. Если Zigbee2MQTT не стартует из-за того, что тип адаптера вообще не задан, это разбирается на отдельной странице: Zigbee2MQTT не запускается: не указан тип адаптера. Текст в журнале подскажет, какой из двух случаев у вас.



