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