Я немного занимаюсь домашней автоматизацией, у клиентов стоит разное оборудование и в маленьких проектах я использую стандартные шлюзы от производителя с их облаками, но в при большой инфраструктуре ставлю свой шлюз. Если в качестве системы управления домом используется MajorDoMo то оборудование Tuya работает из коробки, не надо никаких лишних движений по извлечению ключей, регистраций на сайтах и тому подобное. В случае же с HomeAssistant всё немного печальнее и по этому на вопрос: шить или не шить, было принято решение шить!
Вот собственно и выключатель
Все вайфай выключатели у меня фирмы MOES, марка выключателей WS-EU-RFB-N. Паять было лень и решил сначала прошить по воздуху. Это возможно если прошивка сделана на базе SDK до февраля 2022 года, вот с помощью этой программы, у меня не получилось, видимо прошивка на базе SDK поздней версии. По этому пришлось разобрать выключатели и паять.
Модуль в этом выключателе CBU с процессором BK7231N, (на фото RX и TX не чипа, а программатора)
Припаиваемся к плате
качаем прошивальщик под Linux или под Винду и отсюда прошивку под свой чип.
У меня Linux и по этому я буду делать всё в командной строке. Мне старая прошивка не нужна и мне не надо делать бэкап, я попробывал забэкапить, но после обратной заливки устройство не заработало, по этому я бросил эту затею и просто прошиваю, для моего чипа обязательно шить с адреса 0x0 и с ключом -u
./uartprogram -w OpenBK7231N_QIO_1.17.366.bin -u -s 0x0
у меня порт /dev/ttyUSB0, если у Вас другой то надо его указать с соответствующим ключом. После запуска ненадолго замыкаем СБРОС на GND (сигнал CEN контакт 18) и модуль начинает прошиваться.
После прошивки перезапускаем модуль, должна появиться точка доступа с именем начинающимся с «OpenBK7231N_», заходим по айпи адресу: 192.168.4.1 и задаем имя точки доступа и пароль. Сохраняем, перезагружаемся. Входим по айти адресу который выдал роутер. На надо рассказать прошивке что к какому контакту подключено, это делается в кнопке
попадаем в конфигурирование GPIO модуля
Pin number | Symbol | I/O type | Function |
---|---|---|---|
1 | P14 | I/O | Led 1 |
2 | P16 | I/O | Led 2 |
3 | P20 | I/O | Led 3 |
5 | P23 ADC | I/O | Кнопка 1 |
8 | P8 | I/O | подключена микросхема RF |
10 | P6 | I/O | Реле L3 |
11 | P26 | I/O | Реле L2 |
12 | P24 | I/O | Реле L1 |
17 | P28 | I/O | Кнопка 3 |
19 | P9 | I/O | Кнопка 2 |
20 | P17 | I/O | Led Wi-Fi |
Далее устанавливаем параметры MQTT, думаю что в какие поля писать не составит проблем. В MQTT публикуются и управляются только Rel и LED, нажатия кнопки не публикуются, чтобы публиковалась кнопка надо выбрать dInput и указать номер порта отличный от портов реле и LED, состояния будут публиковаться, но управлять реле эти кнопки не будут, управление в этом случае надо делать через автоматизацию которая будет управлять данными реле.
Для того чтобы завести это в HomeAssistant есть соответствующая кнопка
откроется конфиг для HomeAssistant
в конфигурации будет name: с номером канала который задан в конфигурации модуля, в HomeAssistant будет выглядеть так: switch.1 switch.2 и т.д. если у Вас несколько выключателей то строку name: надо изменить, например сделать такое же как unique id тогда в HomeAssistant реле будут выглядеть switch.bt01_relay_1 switch.bt01_relay_2 и т.д.
добавляем в свой configuration.yaml код с каждого реле (строка mqtt: и switch: должны написаны один раз), после чего эти имена можно использовать в автоматизациях, lovelace. Вот пример использования lovelace
Если у Вас такой же выключатель, то можно просто загрузить конфиг, для этого войдите в меню
и в соответствующей вкладке вставьте конфиг
{ "vendor": "MOES", "bDetailed": "0", "name": "Smart Switch", "model": "WS-EU2-RFB-N", "chip": "BK7231N", "board": "TODO", "flags": "1088", "keywords": [ "TODO", "TODO", "TODO" ], "pins": { "6": "Rel;3", "14": "LED_n;4", "16": "LED_n;5", "20": "LED_n;6", "23": "Btn;1", "24": "Rel;1", "26": "Rel;2", "28": "Btn;2" }, "command": "", "image": "https://kusheev.com/wp-content/uploads/2023/12/08.jpeg", "wiki": "https://kusheev.com/archives/1617" }
и нажмите кнопку загрузки
Некоторые модули возможно перепаять на модули ESP которые поддерживают другие прошивки. Ниже сравнительная таблица модулей используемых в устройствах Tuya и поддерживаемые прошивки и возможные замены на модули ESP8266/8285
модуль | процессор | замена | прошивка | примеч | |
AXY2S | ECR6600-TS2D | ESP-02s | |||
AXY3L | ECR6600-TS2D | ESP12 | |||
AXY3S | ECR6600-TS2D | ESP12 | |||
AXYU | ECR6600-TS2D | ||||
AXYU-HM | ECR6600-TS4D | ||||
AXYU-IPEX | ECR6600-TS2D | ||||
CB1S | BK7231N | OpenBeken | |||
CB2L | BK7231N | OpenBeken | |||
CB2S | BK7231N | ESP-02s | OpenBeken | ||
CB3L | BK7231N | ESP12 | OpenBeken | ||
CB8P | BK7231N | OpenBeken | |||
CBLC5 | BK7231N | OpenBeken | |||
CBLC9 | BK7231N | OpenBeken | |||
CBU | BK7231N | OpenBeken | |||
CBU-IPEX | BK7231N | OpenBeken | |||
CR2S | W701P-VA2-CG | ESP-02s | |||
CR3L | W701M-VT2-CG | ESP12 | замена не полная, кроме нижних GPIO | ||
CR3L-IPEX | RTL8720CM | ||||
CRG1 | W701P-VA2-CG | ||||
FL_M99_V1 | BK7231N/BL2028N | ESP-02s | OpenBeken | ||
FL_M99_V2 | BK7231N/BL2028N | ESP-02s | OpenBeken | форум | |
FL_M99_V3 | BK7231N/BL2028N | ESP-02s | OpenBeken | форум | |
T1-2S | T1A | ||||
T1-LC5 | T1A | ||||
T1-U | T1A | ||||
T1-U-IPEX | T1A | ||||
TCS905-3S | BK7231NSP | ||||
TCS905-3S | BK7231NSP | ESP12 | |||
TCS905-U | BK7231N | OpenBeken | |||
TCS905-U | BK7231N | ||||
TYLC4 | ESP8266 | ||||
TYLC5S | ESP8285 | ||||
TYLC6E | ESP8285 | ||||
TYLC8 | ESP8285 | ||||
TYWE1S | ESP8266EX | ||||
TYWE2L | ESP8285 | ||||
TYWE2S | ESP8285 | ESP-02s | |||
TYWE3L | ESP8266 | ESP12 | |||
TYWE3S | ESP8266 | ESP12 | |||
TYWE3SE | ESP32 | ESP12 | замена не полная, кроме нижних GPIO | ||
WB1S | BK7231T | OpenBeken | |||
WB2L | BK7231T | OpenBeken | |||
WB2S | BK7231T | ESP-02s | OpenBeken | ||
WB3L | BK7231T | ESP12 | OpenBeken | ||
WB3S | BK7231T | ESP12E | OpenBeken | ||
WB3S-IPEX | BK7231T | ESP12E | OpenBeken | ||
WB8P | BK7231T | OpenBeken | |||
WBLC5 | BK7231T | ESP-01D | OpenBeken | отличаются разным расположением GND | |
WBLC9 | BK7231T | OpenBeken | |||
WBR1 | W701 | ||||
WBR1D | W701D-VA1-CG | ||||
WBR1D-IPEX | W701D-VA1-CG | ||||
WBR2 | W701-VA2-C | ESP-02s | |||
WBR2D | W701D-VA1-CG | ESP-02s | |||
WBR3 | W701-VA2-CG | ESP12 | |||
WBR3D | W701D-VA1-CG | ESP12 | |||
WBR3L | W701H-VT2-CG | ESP-02s | |||
WBR3N | RTL8720CS | ESP12 | |||
WBR3T | W701DH-VA1-CG | ESP12 | |||
WL2H-U | LN882H | ||||
WL2H-U-IPEX | LN882H | ||||
WR1 | RTL8710BN | WiFi-IoT | |||
WR1-IPEX | RTL8710BN | WiFi-IoT | |||
WR2 | RTL8710BN | ESP-02s | WiFi-IoT | ||
WR2 | RTL8710BN | ESP-02s | WiFi-IoT | ||
WR2E | RTL8710BN | ESP-02s | WiFi-IoT | ||
WR3 | RTL8710BN | ESP12 | WiFi-IoT | ||
WR3E | RTL8710BN | ESP12 | WiFi-IoT | ||
WR3L | RTL8710BX | ESP12 | WiFi-IoT | ||
WR3LE | RTL8710BX | ESP12 | WiFi-IoT | ||
WR4 | RTL8710BN | ESP08 | WiFi-IoT | ESP12 подходит по распиновке, но у WR4 нет антенны на плате | |
WR5E | RTL8710BN | WiFi-IoT | |||
WT3 | T2 | ESP12 | |||
WXU | T103C-HL | ||||
WXU-IPEX | T103C-HL | ||||
XR1 | XR809 | OpenXR809 | |||
XR1-IPEX | XR809 | OpenXR809 | |||
XR2 | XR809 | ESP-02s | OpenXR809 | ||
XR3 | XR809 | ESP12 | OpenXR809 | замена не полная, кроме нижних GPIO | |
WL2S | LN882H | ESP-02s | форум | ||
LN02 | LN882H | ESP-02s | возможная замена, чип взят с форума | форум |