Как перепрошить wifi розетку

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

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

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

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

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

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

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

Источник

Wi-Fi-розетка с энергомониторингом BlitzWolf BW-SHP8: обзор, прошивка ESPHome, Home Assistant

Продолжим знакомится с умными управляемыми розетками от китайского производителя Blitzwolf. Полгода назад я рассказывал о накладной 16А розетке — BW-SHP2, сегодня речь пойдет о розетке BW-SHP8 — функционально аналогичной но имеющей другой форм-фактор.

Содержание

Где купить ?

  • Banggood — цена на момент публикации $ 15,99
  • Aliexpress — цена на момент публикации $ 15,74

Начну как всегда — про возможности этой розетки из коробки, а потом расскажу как ее перепрошить под ESPHome, интегрировать с Home Assistant, подробнее остановимся на ее конфигурации.

Параметры

  • Основные параметры идентичны BW-SHP2 —
  • Диапазон напряжений — 110-240 В
  • Максимальный ток нагрузки — 16 А
  • Максимальная мощность нагрузки — 3680 Ватт
  • Интерфейс управления — wi-fi 2.4 ГГц
  • Размер — 80*80*54 мм
  • Приложение управления — Smart Life, Tuya Smart, интеграция с Amazon Alexa, Google Assistant и IFTTT.

Поставка

Поставляется в характерной для продукции Blitzwolf бело-зеленой коробке. На ней крупными символами указан номер модели. Под крышкой коробки — видим лицевую сторону розетки, никакой особой защиты нет, но при этом все доехало в целости и сохранности

В комплекте — кроме розетки еще имеется один винт, который крепит переднюю пластиковую крышку, инструкция и гарантия. Инструкция — на пяти языках, русского нет, но есть английский. Лично мне инструкция не пригодилась совершенно.

Внешний вид

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

Что самое приятное — розетка рассчитана на круглые подрозетники. Сзади имеется три отверстия-колодцы для подключения питания — фаза, ноль и заземление. Провода зажимаются при помощи винтов с боковой поверхности — все надежно и удобно. Без заземления работает нормально.

Подрозетник

Для теста я взял самый обычный, пластиковый подрозетник купленный в ближайшем хозяйственном супермаркете.

Розетка входит в него отлично — с запасом, и по ширине и по глубине. У кого в подрозетниках есть немного лишнего провода — не проблема будет его уложить. Верхняя массивная пластиковая крышка — полностью перекрывает подрозетник — красота при монтаже нарушена не будет.

Внешняя крышка крепится к корпусу розетки на защелках и винтом. Металлический обод имеет по краям отверстия для крепления к подрозетнику. Отверстия совпадают с подрозетником — на 100%. Единственное — нужно разжится крепежными винтами или покупать подрозетник с ними.

Конструкция

Сразу что неприятно удивило при внешнем осмотре — ржавчина на головках трех шурупов, на которых крепится плата розетки.

Дорожки к силовым контактам — хорошо пропаяны, на плате заметны следы не отмытого до конца флюса. SHP2 — в этом плане была намного аккуратнее

Усы контакта заземления крепятся при помощи винта к контактной колодке. Блестящая головка винта весьма контрастирует с ржавой — шурупа. Кнопка управления и светодиод — вынесены на проводах отдельно.

Обнадежило наличие на плате подписанных контактов для перепрошивки, правда при ближайшем рассмотрении — их оказалось 5 на 4 подписи, к тому расположенные немного криво. Но к этому вопросу я вернусь позже.

А пока — подключаем к розетке провода питания, включаем в сеть и рассмотрим функции штатного приложения

Tuya Smart

В качестве штатного приложения управления используется Tuya Smart или Smart Life. Я рекомендую первое — из-за интеграции с Home Assistant. Переходим в меню добавления устройства, выбираем розетку и запускаем мастер подключения

В справке — на русском по шагам расписано что нужно сделать чтобы перевести розетку в режим сопряжения, после прочтения возвращаемся на первый шаг мастера установки.

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

При подключении смартфон должен быть подключен к сети 2.4 Ггц, вводим параметры wi-fi и через пару минут — получаем сообщение о успешном подключении розетки

Новое устройство добавляется в общий список. Включать и выключать — можно из главного окна, для подробностей — надо зайти в плагин. Центральную часть экрана занимает индикатор активности розетки, он же является и выключателем.

Кроме кнопки питания в нижней части экрана имеются кнопки вызова меню запланированного по дате и времени включения или выключения — как однократное так и постоянное. В меню обратного отсчета — задается интервал через который нужно включить или выключить розетку.

Очень полезным является окно энергомониторинга. Даже без нагрузки оно показывает напряжение в сети, при нагрузке — потребляюмую мощность и ток. Большие цифры — это дневное потребление, в нижней части окна будет формироваться список потребления по месяцам.

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

Home Assistant

Как и большинство других устройств Tuya Smart — розетка после добавления в приложение автоматически появляется в Home Assistant под тем же именем. Если простые розетки — которые умеют только включать и выключать можно так и оставить,

то розетка с энергомониторингом — должна отдавать эти показания в систему. Но штатная интеграция в Home Assistant этого не позволяет. Она отдает только управление реле, которое видно в системе как обычный switch.

ESPHome

Подготовка

К сожалению без паяльника не обойтись. Я не стал подпаиваться к криво подписанным контактам на плате. Удобнее и главное точнее оказалось припаять провода к контактам самого модуля

В розетке установлен управляющий модуль TYWE2S, он подписан и сам — с внутренней стороны, и в сети легко найти его распиновку.

В результате я припаял 4 провода к выводам самого модуля. Паяльник для этого должен иметь достаточно тонкое жало

Контакты соответствуют распиновке — для верности можно перепроверить с подписями на модуле. Контакт 3.3 В и GND — нужно подключать к одноименным контактам USB-UART контроллера, RX и TX — к противоположным, RX к TX и TX к RX.

Для включения режима прошивки нужно припаять перемычку между выводом I00 и GND. Все провода нужны только для первой перепрошивки через USB

Далее остается подключить USB-UART контроллер к припаянным проводам и подключить к USB сервера ESPHome

Проект

В дашборде ESPHome — справа выбираем круглую кнопку с + для создания нового проекта. Задаем произвольное имя для ноды — только без пробелов

Выбираем тип — базовый модуль ESP8285, задаем имя и пароль сети wi-fi а также пароль для перепрошивки по воздуху

Базовая подготовка проекта завершена — можно приступать к конфигурированию

Прошивка

В ESPHome создается новый конфигурационный файл. Система очень настойчиво предлагает выбрать метод перепрошивки. Выбираем контроллер USB to UART — для перепрошивки по воздуху пока рано

Перед первой прошивкой — я решил немного подправить конфиг розетки, взяв за основу настройки SHP2. Я добавил ручной ИП адрес, веб сервер на 80 порту и управление реле на GPIO14 — все аналогично “двойке”

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

Первый запуск

После прошивки, устройство можно отключить от контролера и включить в сеть — чтобы проверить его работоспособность и корректность прошивки. Провода сразу я отпаивать не стал. Важный момент — с перемычкой между I00 и GND — розетка запускаться не желала, поэтому, чтобы сразу не отпаивать, я ее разрезал.

После загрузки — в дашборде ESPHome проект переходит в онлайн. Нажав на синий квадратик со стрелкой — переходим на вебсервер розетки. Первый записанный мной конфиг имеет только управление реле и данные о уровне wi-fi сигнала, версии прошивки и времени с момента включения.

Настройка

Как я уже сказал — конфиг от внешней розетки полностью подходит и для внутренней. Для начала нужно прописать сенсор для энергомониторинга HLW8012.

После перепрошивки появятся данные о напряжении в сети и потребляемой мощности. Настроечные коэффициенты от SHP2 — не совсем подходят к 8 версии, изначально параметры не соответствуют действительности

Для подстройки и использую бытовой ваттметр — можно заменить на любое, корректно работающее устройство с энергомониторингом. Для напряжения, через обычную пропорцию рассчитывается коэффициент voltage_div — у меня получилось 816, вместо 945 у двойки

Аналогично с применением нескольких нагрузок — с стабильной мощностью — подстраивается и коэффициент нагрузки current_resistor.

Конфигурация

Давайте рассмотрим мой рабочий конфиг для розеток Blitzwolf. Ссылка на github

Первая секция — substitutions — она позволяет унифицировать конфиги, вынеся индивидуальные данные в самый верх — здесь это подстановка имени и данных коэффициентов, этот раздел можно расширить при необходимости

substitutions:
plug_name: bw2
current_res: «0.00221»
voltage_div: «945»

Далее — раздел esphome: в нем содержится имя проекта, состоящее из переменной части из первого раздела и постоянной — socket, платформа и плата, после него секция с настойками wi-fi сети и при необходимости статическим ИП адресом. За ней следует включение логирования, пароли для подключения и обновления, а также веб сервер.

esphome:
name: $_socket
platform: ESP8266
board: esp8285
wifi:
ssid: ‘SSID’
password: ‘password’
manual_ip:
static_ip: 192.168.0.92
gateway: 192.168.0.1
subnet: 255.255.255.0
# Enable logging
logger:
# Enable HA API
api:
password: ‘password’
ota:
password: ‘password’
web_server:
port: 80

Далее — бинарный сенсор на пине 03, его имя также состоит из двух частей — этот принцип касается всех сенсоров, он замыкается кнопкой на корпусе розетки. При нажатии он переключает состояние реле, по его id, в противоположное состояние.

binary_sensor:
— platform: gpio
name: $_button
pin:
number: GPIO3
mode: INPUT_PULLUP
inverted: True
on_press:
— switch.toggle: relay

Следующий — раздел switch — собственно реле, управление на пине 014. id — указывается для создания внутренних сценариев, например переключение при помощи кнопки. Реле в свою очередь при смене состояния — управляет светодиодами розетки, синий при включенной и красный при выключеной. Состояние при старте — включено.

switch:
— platform: gpio
name: $_relay
pin: GPIO14
id: relay
restore_mode: ALWAYS_ON
on_turn_on:
— switch.turn_on: blue_led
— switch.turn_off: red_led
on_turn_off:
— switch.turn_off: blue_led
— switch.turn_on: red_led

Далее в этом разделе у нас идут два светодиода. Сначала синий — на пине 01, и его состояние как и у реле — включить при старте. Второй — красный 0 на пине 13 — он по умолчанию выключен. Включается только при отключении реле.

— platform: gpio
id: blue_led
name: $_LED_Blue
icon: mdi:led-on
restore_mode: ALWAYS_ON
pin:
number: GPIO1
inverted: True
— platform: gpio
id: red_led
name: $_LED_Red
icon: mdi:led-on
restore_mode: ALWAYS_OFF
pin:
number: GPIO13
inverted: True

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

sensor:
— platform: hlw8012
sel_pin:
number: GPIO12
inverted: True
cf_pin: GPIO04
cf1_pin: GPIO05
current_resistor: $
voltage_divider: $
current:
name: $_current
icon: mdi:current-ac
unit_of_measurement: A
voltage:
name: $_voltage
icon: mdi:flash-circle
unit_of_measurement: V
power:
name: $_power
icon: mdi:flash-outline
unit_of_measurement: W
change_mode_every: 8
update_interval: 10s

За ним идет пара необязательных но интересных сенсора — время работы в секундах и уровень сигнала wi-fi. Замыкает конфигурацию — текстовый сенсор — с версией прошивки и датой ее заливки.

— platform: uptime
name: $_Uptime
— platform: wifi_signal
name: $_wi-fi_Signal
update_interval: 60s
text_sensor:
— platform: version
name: $_firmware_version

Так выглядит веб сервер розетки с такой конфигурацией.

В Home Assistant устройства ESPHome заходят через меню интеграций, и все сенсоры, выключатели, лампочки — появляются в системе. Сколько инстансов подключены к одному ESPHome устройству — неважно. Все они являются полноправными частями умного дома и работают в скриптах и автоматизациях.

Для удобства я сделал что-то вроде аналога вебсервера в lovelace, только датчик uptime перевел из секунд в более удобоваримый вид.

Видеоверсия обзора

Вывод

Отличный вариант управляемой розетки — на этот раз встраиваемой. Причем делать это очень легко благодаря установке в круглый подрозетник. Розетка способна тянуть достаточно мощные устройства, потребляющие более 3 кВт — утюги, бойлеры, стиральные машины. При этом она будет накапливать и сохранять статистику.

К минусам отнесу — огрехи при сборке — в виде ржавчины на шурупах и следов флюса. Также некоторая сложность заключается в первой перепрошивки — нужна разборка и пайка.

Источник