Здесь мы рассмотрим, как прошить смартсвитч TuyaMCU (умный переключатель) с помощью OpenBeken и подключить его к HomeAssistant. OpenBeken — это альтернативное программное обеспечение с открытым исходным кодом для устройств IoT, предлагающее независимость от поставщика в облаке, совместимость с несколькими экосистемами, возможность настройки и кроссплатформенная поддержка, включая BK7231T, BK7231N, XR809 и BL602.
На Алиэкспресс он называется Tuya Smart Life Wifi Glass Panel Light Switch настенный переключатель с сенсорным датчиком стандарта Alexa Google Home Voice Control.
Диапазон напряжения устройства 100-250 В 50/60 Гц и максимальный ток 10 А. Он подключается к Wi-Fi, используя сигнал 2,4 ГГц. Так как он предназначен для настенного монтажа, стеклянная пластина легко снимается, что позволяет монтировать его без инструментов. Коммутатор состоит из двух плат: основной платы, где расположены микросхемы TuyaMCU и WB2S, и дополнительной платы, на которой размещены реле и импульсный блок питания.
Материнская плата включает в себя несколько контактных площадок, которые напрямую подключаются к VCC, GND, TX и RX. Вот пример, который находится на данной плате. Убедитесь, что они верны на вашей, так как встречаются и другие в Интернете.
После несколько тестов стало ясно, что чип TuyaMCU не нужно снимать с платы для WB2S, но в случае проблем выпаивайте контакт 1, чтобы отключить его.
Прошиваем чип в соответствии с инструкциями OpenBeken, в данном случае удалось сделать это только с помощью Python. Память должна быть на 3,3 вольта.
Конфигурация OpenBeken
После базовой настройки запускается файл autoexec.bat следующего содержания:
startDriver TuyaMCU
setChannelType 1 toggle
linkTuyaMCUOutputToChannel 1 1 1setChannelType 2 toggle
linkTuyaMCUOutputToChannel 2 1 2setChannelType 3 toggle
linkTuyaMCUOutputToChannel 3 1 3
В панели приложения перетащите файл в файловую систему OBK:
Этот файл будет автоматически запускаться после каждого перезапуска. В первый раз его необходимо перезапустить вручную.
Значение отдельных команд:
- startDriver TuyaMCU – запускает драйвер TuyaMCU
- setChannelType n toggle – устанавливает тип канала n на On/Off
- linkTuyaMCUOutputToChannel n bool 1 – соединяет TuyaMCU dpID номер 1 с канал bool номер 1.
Значения dpID могут быть разными для разных видов устройств. Если хотим добавить поддержку чего-то нового, нужно узнать об этом, например, прослушав пакеты. Значения dpID также можно взять из описаний устройств, так как Tuya часто меняет только модуль WiFi, а остальное остается прежним.
Для этого переключателя существует 4 значения dpID (от dpID1 до dpID4), которые устанавливают состояние каждого реле, их четыре, поскольку этот чип используется во всех версиях переключателя (от 1 до 4 групп), необходимы только dpID для переключателей, которые физически присутствует.
Существует еще один набор из 4 dpID (от dpID7 до dpID10), которые представляют собой тип значения, который переключает реле через несколько секунд (пользовательский ввод — это число).
После перезагрузки теперь видны кнопки:
Сопряжение с Home Assistant очень простое, все благодаря автоматическому сопоставлению каналов OpenBeken с переменными TuyaMCU. Коммутатор TuyaMCU управляется так же, как и обычный коммутатор. Вот пример кода Yaml:
switch:
– platform: mqtt
# state_color: true
name: “Test A Switch (1)”
unique_id: “TestB_1”
availability:
– topic: “TestB/connected”
state_topic: “TestB/1/get”
state_on: 1
state_off: 0
command_topic: “TestB/1/set”
payload_on: 1
payload_off: 0
qos: 1
– platform: mqtt
# state_color: true
name: “Test A Switch (2)”
unique_id: “TestB_2”
availability:
– topic: “TestB/connected”
state_topic: “TestB/2/get”
state_on: 1
state_off: 0
command_topic: “TestB/2/set”
payload_on: 1
payload_off: 0
qos: 1
– platform: mqtt
# state_color: true
name: “Test A Switch (3)”
unique_id: “TestB_3”
availability:
– topic: “TestB/connected”
state_topic: “TestB/3/get”
state_on: 1
state_off: 0
command_topic: “TestB/3/set”
payload_on: 1
payload_off: 0
qos: 1
После прошивки чипа отсоедините припаянные кабели, снова подключите TuyaMCU, если его отпаивали, и соберите коробку, так как TuyaMCU не загружается полностью если не подключен к основной плате.