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

23 декабря 2019, 17:20

В процессе построения своего "умного дома" появилась необходимость дистанционно управлять розетками. Так как я еще только познаю азы построения "умного дома", то выбор был сделан в пользу 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
1600x_image.png?1577036182

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

Скрипт будет посылать пакеты данных для поиска и обмена данными с устройством.

Скрипт будет посылать пакеты данных для поиска и обмена данными с устройством.

После окончания резервного копирования будет выведена информация о чипе и предложено выбрать новую прошивку для заливки.

Я выбрал Tasmota. 

После удачной прошивки и перезагрузки устройства в списке WiFi сетей должна появиться точка доступа tasmota-xxxx либо ESPURNA-XXXXXX, если была выбрана прошивка ESPurna.

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

После перезагрузки, находим ip устройства в настройках нашего роутера и открываем этот ip в браузере.

Переходим в "Firmware Upgrade".

Заливаем свою прошивку на устройство и перезагружаем.

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

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


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Андрей Попов (andreypopov)
    Андрей Попов (andreypopov) 2 месяца назад

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

  2. (iliagmyzin)
    (iliagmyzin) 2 месяца назад

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

    • Александр Тумайкин (205kin)

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

      • (molokolab)
        (molokolab) 23 дня назад

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

  3. Life Control (LifeControl)
    Life Control (LifeControl) 2 месяца назад

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

  4. Алексей Рожанков (arozjankov)

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

  5. (lsnsk)
    (lsnsk) отредактировано 2 месяца назад

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

  6. (rupunx)
    (rupunx) 2 месяца назад

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

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

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

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

    • (lsnsk)
      (lsnsk) 2 месяца назад

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

  7. Илья Яшин (yshinig)
    Илья Яшин (yshinig) 2 месяца назад

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

  8. (den23rus)
    (den23rus) 2 месяца назад

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

  9. (Stalix)
    (Stalix) месяц назад

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

  10. (idea_generator)
    (idea_generator) отредактировано месяц назад

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

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

    • Александр Тумайкин (205kin)

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

К списку статей

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.