- Прошиваем WiFi устройства Tuya без проводов, на примере розеток
- Тумайкин Александр (205kin)
- Подготовительные работы
- Процесс обновления прошивки
- Wi-Fi-розетка с энергомониторингом BlitzWolf BW-SHP8: обзор, прошивка ESPHome, Home Assistant
- Содержание
- Где купить ?
- Параметры
- Поставка
- Подрозетник
- Tuya Smart
- Home Assistant
- ESPHome
- Проект
- Прошивка
- Настройка
- Видеоверсия обзора
- Вывод
Прошиваем 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: $ |
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: $ |
pin: |
number: GPIO3 |
mode: INPUT_PULLUP |
inverted: True |
on_press: |
— switch.toggle: relay |
Следующий — раздел switch — собственно реле, управление на пине 014. id — указывается для создания внутренних сценариев, например переключение при помощи кнопки. Реле в свою очередь при смене состояния — управляет светодиодами розетки, синий при включенной и красный при выключеной. Состояние при старте — включено.
switch: |
— platform: gpio |
name: $ |
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: $ |
icon: mdi:led-on |
restore_mode: ALWAYS_ON |
pin: |
number: GPIO1 |
inverted: True |
— platform: gpio |
id: red_led |
name: $ |
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: $ |
icon: mdi:current-ac |
unit_of_measurement: A |
voltage: |
name: $ |
icon: mdi:flash-circle |
unit_of_measurement: V |
power: |
name: $ |
icon: mdi:flash-outline |
unit_of_measurement: W |
change_mode_every: 8 |
update_interval: 10s |
За ним идет пара необязательных но интересных сенсора — время работы в секундах и уровень сигнала wi-fi. Замыкает конфигурацию — текстовый сенсор — с версией прошивки и датой ее заливки.
— platform: uptime |
name: $ |
— platform: wifi_signal |
name: $ |
update_interval: 60s |
text_sensor: |
— platform: version |
name: $ |
Так выглядит веб сервер розетки с такой конфигурацией.
В Home Assistant устройства ESPHome заходят через меню интеграций, и все сенсоры, выключатели, лампочки — появляются в системе. Сколько инстансов подключены к одному ESPHome устройству — неважно. Все они являются полноправными частями умного дома и работают в скриптах и автоматизациях.
Для удобства я сделал что-то вроде аналога вебсервера в lovelace, только датчик uptime перевел из секунд в более удобоваримый вид.
Видеоверсия обзора
Вывод
Отличный вариант управляемой розетки — на этот раз встраиваемой. Причем делать это очень легко благодаря установке в круглый подрозетник. Розетка способна тянуть достаточно мощные устройства, потребляющие более 3 кВт — утюги, бойлеры, стиральные машины. При этом она будет накапливать и сохранять статистику.
К минусам отнесу — огрехи при сборке — в виде ржавчины на шурупах и следов флюса. Также некоторая сложность заключается в первой перепрошивки — нужна разборка и пайка.
Источник