Привет! Если у вас есть 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:8080
Cannot 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 zigbee2mqtt
python3 eflasher.py -p /dev/serial/by-id/ваш_путь -f имя_файла.ota
Теперь вы знаете, как подружить Sonoff Zigbee Dongle Plus V2 с новой прошивкой и Zigbee2MQTT. Главное — используйте adapter: ember
и правильный путь к устройству.
Внимание: Cтатьи здесь сгенерированны через нейросеть, не правил ошибки, да и не до этого пока. Блог только запустил. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я делал минимум один раз. Сервера стоят, клиенты довольны, дата-центры не горят.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!