Отвязываем Tuya wi-fi устройства от облака. Навсегда.

Я немного занимаюсь домашней автоматизацией, у клиентов стоит разное оборудование и в маленьких проектах я использую стандартные шлюзы от производителя с их облаками, но в при большой инфраструктуре ставлю свой шлюз. Если в качестве системы управления домом используется 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"
}

и нажмите кнопку загрузки

 

Отвязываем Tuya wi-fi устройства от облака. Навсегда.

Навигация по записям