Tuya Zigbee Lan Gateway - прошиваем и подключаем к HomeAssistant
Как прошить Tuya Zigbee Lan Gateway и подключить к HomeAssistant через zigbee2mqtt.
Предыстория
Меня интересует “Умный дом”, в частности, реализации на базе Open Source решений, одним из таких является HomeAssistant.
C 2021 года у меня работает шлюз Xiaomi, который круглый и втыкается в розетку. Данное устройство я купил с рук и оно уже было прошито под OpenWRT. Там я оставил только LumiMQTT, Zigbee2MQTT. А HomeAssistant находится на одном из домашних серверов.
Но весь этот процесс происходит по остаточному принципу, когда появляется свободное время, сажусь, читаю, настраиваю.
Но часто бывает, что просто читаю и ничего не понимаю. Очень уж бываю уставшим.
Также я занимался видеонаблюдением Frigate NVR, об этом даже подготовил отдельную статью. Связка HomeAssistant, Mosquitto, Frigate, Telegram bot отлично себя показала, работает в полевых условиях уже 3й месяц без замечаний,
Очень хотелось приобрести устройство, которое выполняло только одну задачу - Zigbee. Ну было бы простым и надежным. И такое устройство есть - это Tuya Zigbee Lan Gateway.
И такое одно устройство приобрел, подключил по инструкции к приложению SmartLife. Устройство определилось и работает. Но в облаке Tuya, что меня не устраивает.
Устройство должно уметь работать полностью локально.
Но решение уже есть и о нем будет далее.
Железо
Шлюз из себя предстваляет систему на базе Realtek 8196E и Zigbee устройство. Между собой процессор и плата общаются посредством UART. Также на моем устройстве установлена EEPROM GD25Q127C.
Полезные ссылки
- Hacking the LIDL Silvercast Zigbee Gateway a step-by-step tutorial
- LIDL Zigbee firmware-hacking
- Hacking Tuya Zigbee Ethernet Gateway
- Link to Ember V8 firmware
- Zigbee Ethernet Gateway #2
- Using the Lidl Livarno Lux Zigbee gateway with Zigbee2MQTT
Мои приключения
Устройство я купил в сентябре 2024 года. Тогда быстро настроил под SmartLife и на этом остановился. Для подключения к HomeAssistant предлагали следующее решение - установить расширение Tuya Local. И, кажется, это бы работало уже без самого облака, но я подстчитал, что такое решение не подойдет.
Зимой, я наткнулся на этот тред. Прочитал бегло и ничего не понял. Тред идет с 2021 года.
Весной, я наткнулся на статью Paul Banks о том, как проводить процедуру, как через USB-TTL подключаться и выкачивать образ, затем определить пароль пользователя root. Прочитал, тоже много не понятного. Например, в HomeAssistant нужно устанавливать расширение ZHA. Отложил в беклог.
Летом, еще раз перечитал, узнал новости, в этот раз пазл сложился. Из новостей приятным было узнать, что Zigbee2MQTT включили поддержку EZSP, Ember.
Порядок действии:
- Вскрыть корпус;
- Вытащить плату, аккуратно отсоеденить антенну;
- Припаять 6 пинов на плату;
- Подключить согласно распиновке USB-TTL (у меня CP2102);
- На компьютере запустить команду sudo screen /dev/ttyUSB0 38400;
- Подать питание на плату;
- Нажать ESC как можно быстрее;
- Войти в UBOOT, выкачать к себе на компьютер образ системы;
- На компьтере запустить скрипты и получить пароль пользователя root;
- Перезагрузить плату;
- Войти в консоль под пользователем root, используя полученный пароль;
- Скачать программу serialmonitor на плату;
- Заменить скрипты в /tuya - убрать старый скрипт, добавить новый, который запускает serialmonitor;
- Настроить zigbee2mqtt;
- Настроить HomeAssistant.
Что пошло не так?:
- Производитель изменил UBOOT, теперь нажатие на ESC не прерывает процесс загрузки;
- Попытался считать данные с EEPROM с помощью клипсы - не удалось. Пишут что клипсы не правильные;
- Купил клипсу Pomona, подцепил к чипу - все равно не работает;
- Достал паяльник, выпаял чип, припаял к адаптеру, смог прочитать образ, запаял чип назад, включил вроде работает.
Я плохо пяю, поэтому всячески стараюсь избегать данной операции, но тут прижало, решил быть спокойным, с новым паяльником начал процесс. Но все равно пошло не по плану, сдул один конденстатор C25, запаял все назад, прочистил изопропиловым спиртом, подключил - работает.
Мои рекомендации для 2025 года.
Start Here
Для 2025 я рекомендую эту статью. Выполните все действия.
Если ESC не работает
Если ESC не работает, то можно воспользоваться методом, очень осторожно, который описан здесь. Метод простой - делаем так, чтобы процессор подумал, что флешки нет. Включается аварийны режим UBOOT, оттуда все можно вытащить.
Или поступить как я, выпаять схему, прочитать ее на программаторе, например, на TL866.
Как узнать пароль пользователя root, если есть образ под рукой?
Для способа вытащить образ через программатор, то эта статья будет очень полезной. Я смог так узнать пароль пользователя root от своего устройства.
Рекомендую сперва создать Python venv окружение, чтобы не засорять систему.
Переход от V7 к V8 версии EZSP, Ember.
Итак я успешно выполнил все предыдущие действия, устройство доступно, настроен zigbee2mqtt, но zigbee2mqtt не может запустить zigbee стек.
Статья предлагает нам установить версию прошивки NCP_UHW_MG1B232_678_PA0-PA1-PB11_PA5-PA4.gbl. Таким образом, мы прошиваем версию прошивки на Zigbee платы до V7.
Но современная версия (на момент сентября 2025 года) Zigbee2MQTT требует V8 версию. Эту версию прошивки можно взять отсюда. Скачиваем, устанавливаем удаленно с помощью скрипта upgrade_ncp.py, изменяем конфигурацию Zigbee2MQTT на следующую:
serial:
port: tcp://IP:8888
adapter: ember
baudrate: 115200
rtscts: false
После этого Zigbee2MQTT должен поднятся и работать.