Перепрошивка миниатюрного Wi-Fi реле MINI Smart Switch

Очередная покупка дешевого китайского Wi-Fi реле для домашней автоматизации, с названием MINI Smart Switch, стала поводом для небольшого исследования.

Это устройство представляет собой компактный модуль, предназначенный для скрытой установки — например, внутри распределительной коробки за выключателем или за люстрой, чтобы управлять освещением удалённо.

После вскрытия корпуса внутри обнаружился модуль SM-028_V1.3, на котором установлен 32-разрядный микроконтроллер BL602C20 на ядре RISC-V.

Стоит отметить, что данный модуль является довольно распространённым и применяется производителями в самых разных устройствах экосистемы Tuya: его можно встретить в умных розетках, сетевых фильтрах (удлинителях), датчиках движения и даже в некоторых контроллерах для светодиодных лент. Однако в данном случае перед нами не готовая розетка, а именно Wi-Fi реле, которое требует аккуратного подключения к проводке. Сам чип BL602C20 интересен тем, что поддерживает Wi-Fi 802.11 b/g/n и может использоваться не только для релейного управления, но и, например, для управления RGBA (RGBW) лентами благодаря наличию необходимых широтно-импульсных модуляторов (PWM) на выводах.

Само реле не имеет никаких опознавательных надписей на корпусе. На упаковке продавец ручкой отметил галочку около значения 16А, аналогичная надпись красуется и на корпусе самого устройства. Однако у меня есть серьезные сомнения в том, что это реле выдержит ток 16А. Максимальная безопасная нагрузка для подобных «безымянных» компонентов вряд ли превышает 1-2 А, а отзывы пользователей подтверждают, что при попытке коммутации мощных нагрузок, близких к заявленным, устройство может выйти из строя.

Из коробки данное реле работает через облачные серверы Tuya с использованием приложения SmartLife (или Tuya Smart). К такому подходу я отношусь крайне негативно по ряду причин:

  • задержки при выполнении команд;
  • обязательное наличие интернета (при обрыве соединения устройство становится бесполезным);
  • зависимость от стороннего сервера (если сервера Tuya «лягут» или компания закроет сервис, реле превратится в кирпич);
  • сложности с интеграцией — штатная прошивка проблематично и нестабильно интегрируется в локальные домашние серверы, например Home Assistant, из-за особенностей работы облачного API.

Поэтому реле было решено перепрошить в альтернативную прошивку, которая позволит управлять устройством исключительно локально.

На модуле SM-028_V1.3, а также в документации к чипу, предусмотрены контактные площадки (или выводы) TX, RX, GND и 3,3В — это стандартный интерфейс UART, необходимый для подключения к компьютеру. Кроме того, на модуле имеется вывод BT (Boot), который играет важную роль при прошивке. Для корректной работы с программатором вывод BT необходимо подтянуть к питанию +3,3В через резистор номиналом 10 кОм. Чтобы перевести микроконтроллер BL602 в режим прошивки, нужно кратковременно замкнуть вывод BT на общий провод (GND) — обычно это делают пинцетом или перемычкой в момент подачи питания или перед началом записи прошивки.

На просторах интернета для чипов семейства BL602 (ID602) я нашёл подходящий бинарный файл с прошивкой OpenBeken (OBK), которая является аналогом Tasmota. Это именно то, что мне требуется: OpenBeken умеет работать с MQTT, поддерживает управление через Web API, а также имеет удобную веб-страницу для настройки всех параметров. Выпаяв модуль из реле и подключив его к переходнику USB-TTL, я приступил к прошивке. Стоит учитывать, что модуль довольно прожорливый — питания от большинства простых переходников может не хватить для стабильной работы чипа BL602, поэтому в таком случае модуль необходимо запитать от отдельного источника постоянного тока напряжением 3,3В, соблюдая полярность.

После прошивки я вернул модуль на место в реле.

Когда я подал питание на MINI Smart Switch, в списке Wi-Fi сетей появилась точка доступа с именем, начинающимся на OpenBL602-. Подключившись к ней со смартфона и перейдя в браузере по адресу http://192.168.4.1, в разделе Config я зашёл в подраздел настройки Wi-Fi, ввёл данные своей домашней сети и нажал Submit. Реле перезагрузилось и подключилось к локальной сети.

Для корректной работы реле дополнительно требуется настроить порты ввода-вывода. В роутере или с помощью сканера сети находим IP-адрес нашего устройства, подключаемся к нему через браузер, переходим в настройки (Config) и выбираем раздел Configure Module.

В этом устройстве задействовано три основных порта:

  • на выводе P21 висит реле, поэтому в выпадающем меню выбираем Relay;
  • на выводе P14 висит светодиод — тут можно выбрать поведение на своё усмотрение, либо отображение состояния реле, либо индикацию подключения к Wi-Fi;
  • на выводе P20 висит тактовая кнопка — выбираем Btn, и по нажатию кнопки реле будет переключать состояние.

Внизу страницы нажимаем Save для сохранения изменений.

Если требуется работа с MQTT, в настройках заходим в соответствующий раздел Configure MQTT, вписываем адрес брокера, логин, пароль и топики, после чего сохраняем.

Для работы с Home Assistant в настройках заходим в раздел Home Assistant Configuration и нажимаем кнопку Start Home Assistant Discovery — после этого реле автоматически появится в панели управления Home Assistant без необходимости ручного прописывания сущностей.

Также прошивка поддерживает управление простыми HTTP-командами, что удобно для интеграции в различные сценарии или скрипты:

Данное Wi-Fi реле обошлось мне в 320 рублей. Несмотря на сомнительные заявления о токе 16А и необходимость доработки в виде перепрошивки, покупкой я остался доволен. После замены прошивки устройство стало полностью локальным, быстрым и надёжным компонентом моей системы умного дома, не зависящим от внешних облачных серверов Tuya.

Программма BK7231 Easy UART Flasher 📥 Скачать
Прошивка OpenBK7231T_UA_1.18.277.bin 📥 Скачать