Привет! Если у вас есть Sonoff Zigbee 3.0 USB Dongle Plus V2 и вы пытаетесь подключить его к Zigbee2MQTT, но получаете ошибки — эта статья для вас. Особенно если у вас новая прошивка 8.x.x (EZSP v14) — стандартные инструкции уже не работают!
Я сам потратил кучу времени, чтобы разобраться, и теперь делюсь с вами пошаговым гайдом. Без воды, только рабочие команды и объяснения.
Раньше для Sonoff Dongle Plus использовался драйвер ezsp. Но начиная с прошивки 8.0.2 (EZSP v14) — этот драйвер больше не поддерживается!
Error: 'ezsp' driver is not compatible with firmware 8.x.x or above (EZSP v14+). Use 'ember' driver instead.
👉 Решение: нужно использовать adapter: ember, а не ezsp.
Подключите стик к Raspberry Pi или серверу и выполните в терминале:
ls /dev/serial/by-id/
Вы должны увидеть что-то вроде:
usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_XXXXXXXXXXXXXXXXXXXXXXXXXXXX-if00-port0
Также проверьте:
lsusb | grep -i "Silicon Labs"
Должно быть: CP210x UART Bridge — это нормально.
Откройте конфиг Zigbee2MQTT:
nano /opt/zigbee2mqtt/data/configuration.yaml
ИЛИ, если у вас установка в домашней директории:
nano ~/zigbee2mqtt/data/configuration.yaml
Найдите или добавьте секцию serial. Она должна выглядеть точно так:
serial:
port: /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_XXXXXXXXXXXXXXXXXXXXXXXXXXXX-if00-port0
adapter: ember
baudrate: 115200
rtscts: false
XXXXXXXXXXXXXXXXXXXXXXXXXXXX на ваш реальный серийный номер из ls /dev/serial/by-id/.adapter: ember — это ключевая строка! Без неё не заработает./dev/ttyUSB0 — он может меняться. Используйте путь из /dev/serial/by-id/.Убедитесь, что пользователь, от которого запускается Zigbee2MQTT, имеет доступ к порту.
Проверьте группу:
groups $USER
Если нет группы dialout — добавьте себя:
sudo usermod -a -G dialout $USER
👉 Обязательно перезагрузите систему:
sudo reboot
Если Zigbee2MQTT падает с ошибкой MQTT failed to connect, exiting... (Connection refused: Not authorized) — проблема в MQTT.
Проверьте секцию mqtt в том же configuration.yaml:
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://localhost'
user: ваш_пользователь
password: ваш_пароль
Если вы используете Mosquitto с аутентификацией — создайте пользователя:
sudo mosquitto_passwd -c /etc/mosquitto/passwd ваш_пользователь
И перезапустите Mosquitto:
sudo systemctl restart mosquitto
sudo systemctl restart zigbee2mqtt
sudo journalctl -u zigbee2mqtt -f
Вы должны увидеть:
[INFO] Connected to adapter (channel 11, panId ...)
[INFO] Coordinator firmware version: '{"meta":{"build":397,"ezsp":14,"major":8,"minor":0,"patch":2 ...}'
[INFO] Currently 0 devices are joined.
[INFO] Connected to MQTT server
[INFO] Zigbee2MQTT started!
🎉 Поздравляю! Ваш стик работает!
http://ВАШ_IP:8080Cannot lock portЗначит, порт занят другим процессом. Проверьте:
sudo lsof /dev/ttyUSB0
Убейте мешающий процесс: sudo kill -9 PID.
No such file or directoryВы указали неверный путь к стику. Выполните ls /dev/serial/by-id/ и скопируйте актуальный путь.
Не запускайте npm start вручную, если сервис уже работает. Используйте только sudo systemctl restart zigbee2mqtt.
Если у вас старая прошивка — обновите её до 8.0.2 для стабильности.
wget https://raw.githubusercontent.com/electrolama/eflasher/master/eflasher.py
chmod +x eflasher.py
sudo systemctl stop zigbee2mqttpython3 eflasher.py -p /dev/serial/by-id/ваш_путь -f имя_файла.ota
Теперь вы знаете, как подружить Sonoff Zigbee Dongle Plus V2 с новой прошивкой и Zigbee2MQTT. Главное — используйте adapter: ember и правильный путь к устройству.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!