Статья

Прошиваем WiFi устройства Tuya без проводов, на примере розеток

В процессе построения своего "умного дома" появилась необходимость дистанционно управлять розетками. Так как я еще только познаю азы построения "умного дома", то выбор был сделан в пользу WiFi устройств. И после небольшого поиска были найдены розетки Avatto. Для пробы заказал одну розетку, а после некоторого времени использования решил прикупить еще несколько.

Розетки легко были добавлены в приложение TuyaSmart и далее интегрированы в Home Assistant и Алису. В целом, работа розеток меня устраивала и нареканий на этот счет к ним нет. Единственное, что не давало мне покоя - это привязка к китайским серверам. 

Покрутив розетку в руках, понял, что аккуратно разобрать её я не смогу. Спустя какое-то время поисков в интернете, я наткнулся на статью о разборе похожей розетки, но разбирать и паять все равно было мало желания. Поэтому продолжил поиски и наткнулся на проект TUYA-CONVERT, который позволяет устройства Tuya прошивать по воздуху на свои прошивки. 

Попробовал - получилось.

Для этого процесса нам потребуются:

  • устройство с Linux (я использовал Raspberry Pi) с WiFi адаптером, работающим в AP режиме;
  • второе устройство: смартфон/ноутбук или другое устройство, которое сможет подключиться к созданной точке AP;
  • устройство-пациент, которое будем "лечить".

Подготовительные работы

Если в качестве рабочей машины будет использоваться Raspberry Pi, то на нем нужно предварительно отключиться от WiFi сети.

sudo killall wpa_supplicant # редактируем wpa_supplicant.conf sudo nano /etc/wpa_supplicant/wpa_supplicant.conf # в файле нужно закомментировать блок network={} # после чего сохраняем файл и закрываем # перезагружаем Raspberry Pi sudo reboot

  • Далее скачиваем архив с проектом и распаковываем его, например, в папку /tmp.

# переходим в папку /tmp cd /tmp # скачиваем архив wget https://github.com/ct-Open-Source/tuya-convert/archive/master.zip # распаковываем архив unzip master.zip # переходим в папку cd tuya-convert-master

  • Либо, если установлен git, клонируем репозиторий.

# переходим в папку /tmp cd /tmp # клонируем репозиторий git clone https://github.com/ct-Open-Source/tuya-convert.git # переходим в папку проекта cd tuya-convert

  • Запускаем скрипт install_prereq.sh для установки необходимых зависимостей.

./install_prereq.sh

Процесс обновления прошивки

Переходим к самому интересному:

  • запускаем скрипт start_flash.sh и соглашаемся с предупреждением о рисках;

./start_flash.sh

подключаем второе устройство (например, смартфон) к WiFi сети  vtrust-flash;переводим прошиваемое устройство в режим сопряжения (держим нажатую кнопку 5 секунд или подольше);нажимаем Enter и ждем.

Подключаемся к новой сети и заходим в браузере по ip 192.168.4.1 для входа на страницу настройки. После чего, указываем настройки для подключения к домашней сети WiFi, сохраняем и перезагружаем.
После перезагрузки, находим ip устройства в настройках нашего роутера и открываем этот ip в браузере.
Заливаем свою прошивку на устройство и перезагружаем.

Нюансы и советы

  • На сайте проекта написано, что размер прошивки не должен превышать 512КБ (не проверял).
  • У меня на этап "соединения" с устройством уходило несколько попыток (то телефон отключится от сети, то устройство выйдет из режима сопряжения).
  • Скрипт при запуске отключает запущенные docker-сервис и веб-сервера для доступа к необходимым портам.
  • Tuya периодически выпускает патчи, мешающие работе проекта tuya-convert. Рекомендуется не подключать прошиваемое устройство к TuyaSmart, чтобы исключить обновление родной прошивки.
  • Список совместимых устройств можно посмотреть тут (обновление по http) и тут (обновление по https).

Тоже прошивал таким образом, спасибо за труд!

После перепрошивки устройство становится homekit ready?

Нет, после этого устройство становится отвязанным от китайских серверов и доступным для самостоятельной настройки и прошивки на желаемую прошивку, в том числе и ту, которая совместима с homekit

Спасибо, полезно! Какая из этих прошивок 

совместима с homekit? 

Отлично, положим в копилку!

Классные розетки. После Туи перешёл на такие же от Shelly. Перепрошивать не нужно и ценник нормальный.

я свои blitzwolf SHP-P2, SHP-P5, oukitel P2 и ноунейм SmartSocket так перепрошивал. Причем для одной из них не нашел в интернете конфигурации esphome, пришлось самому создавать (хорошо, что для нее была tasmota, где были указаны необходимые пины). Если кому надо, yaml-файлы конфигов могу выложить.

Нюансы. Как я делал.

1) WiFi, как в первом разделе, выключать не нужно

2) Свою прошивку можно закинуть в папку files

3) Свою прошивку можно сделать через Esphome - что удобнее. Но для этого его надо установить (например в hass.io). Т.к. потребуется калибровка всех датчиков: напряжения, тока, мощности. А там в начале сделал прошивку, закинул в files, её прошил. Потом проверяешь параметры розетки (её подключаешь через какой-нибудь измеритель, смотришь при 0 потреблении, потом подключаешь разные мощности и смотришь что выдаёт розетка, что измеритель). Потом калибруешь - в конфиг прописываешь что показала розетка и как есть на самом деле. И новая прошивка уже заливается по воздуху.

когда прошиваешь разные устройства, то проще прошить базовой tasmota, а уже из ее веб-интерфейса прошивать каждое устройство "своей" прошивкой.

Что то новое! лайк

А Dohome розетки кто нибудь использовал, они вроде на али сразу с хомкитом идут? не сертифицирован конечно, но прошит вроде.

Тоже прошивал этим способом, только диммер. Все равно пришлось разбирать и смотреть логическим анализатором, что в итоге esp на mcu отсылает. 

"Розетки легко были добавлены в приложение TuyaSmart и далее интегрированы в Home Assistant и Алису. В целом, работа розеток меня устраивала и нареканий на этот счет к ним нет. Единственное, что не давало мне покоя - это привязка к китайским серверам."


Розетки Avatto со скриншота в статье из коробки распознаются Алисой как розетки Яндекс (донором для которых являются), так что если задача сужается для использования конкретных розеток конкретно с Алисой, то делать ничего не нужно. Для других али-девайсов, конечно, способ видимо рабочий =)

Моя хотелка - устройства привязанные к моему серверу, а уж он в свою очередь интегрирован с Алисой

То ли прошивал не то, но всегда выдавал 

Device did not appear with the intermediate firmware

Сначало выключаем интернет потом скачиваем архив facepalm

Ну у меня апельсинка к сети ещё и кабелем подключена, к примеру. Так, что, отключение WiFi не равно отключению интернета...

Вернуться назад

Устройства


Вернуться назад