В процессе построения своего "умного дома" появилась необходимость дистанционно управлять розетками. Так как я еще только познаю азы построения "умного дома", то выбор был сделан в пользу 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 и ждем.
Нюансы и советы
- На сайте проекта написано, что размер прошивки не должен превышать 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