При ошибке No such file or directory Zigbee2MQTT или Docker не находит устройство по указанному пути. У одного пользователя форума помогли полный путь к донглу в поле port секции serial и указание типа адаптера в configuration.yaml.
Как выглядит проблема
В трех ветках форума пользователи столкнулись с такими симптомами:
- Zigbee2MQTT не стартует после того, как последовательный порт сменили на путь
/dev/serial/by-id; - донгл не удается добавить в контейнер Zigbee2MQTT, путь к устройству не находится;
- Zigbee2MQTT не может подключиться к координатору,
/dev/ttyUSB0пропал, и в разделе All hardware не видно ни одного устройства tty.
В логе при этом встречаются такие строки:
zh:ezsp:ezsp: Connection attempt 4 error: Error: Error: No such file or directory, cannot open /dev/ttyUSB0
Error: Error: No such file or directory, cannot open /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_feb48308ed12ec11a00521c7bd930c07-if00-port0
Error response from daemon: error gathering device information while adding custom device "usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_2e3c30544a4eef11a8e445b3174bec31-if00-port0": no such file or directory
Третья строка - ответ Docker при добавлении устройства в контейнер. Длинные имена Sonoff в ошибках относятся к ITead Sonoff Zigbee 3.0 USB Dongle Plus (ZBDongle-P) на чипе Texas Instruments, его тип адаптера - zstack.
Причины
В одной ветке при добавлении устройства в Docker указали неполный путь. Еще в двух, по одной на каждую версию, участники предполагали сбой конфигурации после удаления аддона из репозитория или потерю распознавания ZB-GW04 на Raspberry Pi.
| Причина | Как проверить | Что сделать |
|---|---|---|
| В Docker указано только имя файла из папки by-id | Посмотрите, начинается ли путь к устройству на хосте с /dev/serial/by-id/ | Указать полный путь при передаче устройства в контейнер |
| Возможный сбой конфигурации после удаления аддона Zigbee2MQTT из репозитория | Проверьте путь и тип адаптера в configuration.yaml | В этой ветке помогло указать оба значения |
| Возможная потеря распознавания ZB-GW04 на Raspberry Pi | Посмотрите, есть ли последовательные устройства tty в All hardware | В этой ветке помогла перепрошивка ZB-GW04 |
Что помогло
Начните с проверки configuration.yaml. В двух ветках форума помогли разные решения - настройка пути и типа адаптера в одной и перепрошивка ZB-GW04 в другой; на каждое приходится по одному сообщению об успехе.
Полный путь и тип адаптера в configuration.yaml
После смены порта Zigbee2MQTT удалось запустить с такой секцией serial:
serial:
port: >-
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_feb48308ed12ec11a00521c7bd930c07-if00-port0
adapter: zstack
Используйте путь своего донгла. Полный путь и тип адаптера показаны и в документации по настройкам адаптера.
Перепрошивка координатора ZB-GW04
При исчезновении /dev/ttyUSB0 и отсутствии tty в All hardware помогла перепрошивка ZB-GW04. Смежная проблема с запуском Zigbee2MQTT относится к SLZB-06 после обновления прошивки.
Если не помогло
При установке через Docker проверьте передачу устройства с хоста, то есть системы, где работает Docker, в контейнер. В одной ветке предложили заменить короткое имя устройства полным путем; результат остался неизвестным. Пример такой записи:
- /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_2e3c30544a4eef11a8e445b3174bec31-if00-port0:/dev/ttyUSB0
Использование полного пути на хосте подтверждает инструкция Zigbee2MQTT для Docker.
При других сообщениях в логе посмотрите смежные страницы - Failed to connect to the adapter (SRSP - SYS - ping), Failed to start EZSP layer with status=HOST_FATAL_ERROR и запуск без указанного типа адаптера. Базовая настройка донгла и Zigbee2MQTT разобрана в гайде по установке Zigbee2MQTT в Home Assistant.
Частые вопросы
Когда нужно вручную заполнять секцию serial?
Документация рекомендует заполнять serial, если Zigbee2MQTT не определяет адаптер автоматически. При таком сбое запуск прерывается с сообщением USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration. Оно прямо просит задать adapter и port в конфигурации. Для этого сообщения есть отдельный разбор ошибки no valid USB adapter found.
Какой тип адаптера указать для Sonoff ZBDongle-P?
Для Sonoff ZBDongle-P нужен zstack. Этот вариант относится к Zigbee 3.0 USB Dongle Plus на чипе Texas Instruments. В документации также перечислены ember, deconz, zigate и zboss. Это допустимые значения для разных адаптеров; выбирать нужно по конкретному устройству. Ошибка при отсутствии настройки разобрана отдельно - запуск без типа адаптера.
Как записать длинный путь, не разрывая конфиг?
Укажите путь одной строкой или используйте свернутое значение YAML с записью port: >-. Второй способ применен в рабочей конфигурации из ветки форума. Сам путь перенесен на следующую строку с отступом. Оба способа относятся к записи значения port в секции serial файла configuration.yaml.



