WiFi Smart Socket Tuya -> ESPHOME

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

Начал с умных Wi-Fi розеток. Чтобы их вскрыть пришлось прогреть феном место соединения и большими плоскогубцами разорвать две половинки. К сожалению это оставляет несколько зазубрин на пластике, но мне всё равно на внешний вид.

Дальше убеждаемся что чип правильный. У меня стоит M32-v1.0 совместимый с TYWE2S

На всех моих платах TX и RX были соеденены перемычкой из припоя, которую нужно удалить. На обратной стороне есть контакт 00 — это GPIO0 который нужно замкнуть на GND чтобы перевести чип в режим прошивки.

Дальше проще. Припаиваемся и подключаем простой USB-UART в режиме 3.3 В.

MK         USB-UART
TX ------> RX
RX ------> TX
GND------> GND
VCC------> 3.3V

Идем в свой ESPHOME и создаем новое устройство, даем имя и с настройками по умолчанию генерируем стартовую прошивку. Если всё пройдет успешно, то потом мы её легко допишем. Скачиваем bin файл и идем на сайт ESP home web. Подключаем наш USB-UART к ПК и прошиваем устройство.

После перезагрузки устройство должно сразу подключиться к нашей Wi-Fi сети и отобразиться в списке домашнего сервера esphome. После этого можно отпаять все провода, собрать корпус обратно и включить в розетку.

Теперь можно отредактировать его конфигурацию и перепрошить уже по wi-fi. Вот мой код, который нужно вставить ниже строки captive_portal:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO01
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Button"
    on_press:
      - switch.toggle: relay

switch:
  - platform: gpio
    id: led
    pin:
      number: GPIO13
      inverted: true

  - platform: gpio
    name: "Plug"
    pin: GPIO14
    id: relay

    # Turn on LED
    on_turn_on:
      - switch.turn_on: led

    # Turns off LED
    on_turn_off:
      - switch.turn_off: led    

Код простой, комментарии излишни. Мы получаем минимальный функционал — кнопка, светодиод и реле. Впоследствии можно будет добавить еще счетчик электроэнергии, если потребуется, а пока без надобности. Главное для меня что теперь осушитель снова включается по ночам если влажность поднимается выше 70%.