OpenBK7231T/OpenBeken — это альтернатива прошивкам Tasmota/esphome для новых чипов, используемых на данный момент в устройствах Tuya вместо esp8266 совместимых. Прошивка OpenBeken взаимодействует с умным домом по протоколу MQTT и совместима с Home Assistant.
В репозитории на гитхабе можно найти сборки под разные чипы, используемые в устройствах Tuya, такие как:
- BK7231T (WB3S, WB2S, WB2L, etc)
- BK7231N (CB2S, CB2L, WB2L_M1, etc)
- T34 (T34 is based on BK7231N)
- BL2028N (BL2028N is a Belon version of BK7231N)
- XR809 (XR3, etc)
- BL602 (SM-028_V1.3 etc)
- W800 (W800-C400, WinnerMicro WiFi & Bluetooth), W801
- W600 (WinnerMicro chip), W601 (WIS600, ESP-01W, TW-02, TW-03, etc)
Список уже портированных устройств
Статьи на русском языке, опыт прошивки:
- Прошивка WiFi розетки на чипе Т34 (T34 is based on BK7231N)
- LED RGB Strip (Magic Home) на чипе BL602
- Удлинитель (переноска на 220в) на чипе BK7231T (автор Бывальцев Дмитрий Сергеевич)
Видео материал на русском языке
Если Вы написали Ваш опыт прошивки OpenBK7231T_App на русском языке, просьба прислать ссылку мне на почту (svet740@gmail.com), я добавлю её на этой страничке. Инструкций много не бывает))
Материал по проекту OpenBK7231T_App для быстрого поиска:
- Сам проект на github
- Форум сообщества проекта
- Релизы прошивок
- Утилита для прошивки под Windows
- Утилита для прошивки под linux из командной строки
- Утилита для прошивки чипов BL602 (полная версия, 800+ Мб)
- Утилита для прошивки чипов BL602 (сокращенная версия, 33 Мб)
Описание ролей (значений) пинов
Вы можете установить роли контактов в разделе «Настройка модуля» или использовать один из шаблонов на странице «Быстрая настройка». Для каждого вывода также устанавливаете значение соответствующего канала. Это необходимо для модулей с несколькими реле. Если у вас есть 3 реле и 3 кнопки, каждая кнопка управляет своим реле, тогда каждой группе состоящей из одного реле и одной кнопки нужно присвоить уникальный номер канала. Если канал у вех будет, скажем 0, то при нажатии на любую кнопу будут срабатывать все реле.

- Button — кнопка (без фиксации) с активным низким уровнем (при нажатии замыкается на землю).
- Button_n (как Button, но логическое значение вывода инвертировано)
- Relay- Тип реле, нормально разомкнутое.
- Relay_n (инвертировано, нормально замкнутое)
- LED - на выходе 0, не светится.
- LED_n (инвертировано)
- Button Toggle All - эта кнопка переключает все каналы одновременно.
- Button Toggle All_n (инвертировано)
- PWM - выход широтно-импульсной модуляции для светодиодных диммеров (с поддержкой диммирования по MQTT и Home Assistant)
- PWM_n - (инвертировано).
- LED WiFi - светодиод для индикации состояния соединения WLan. Состояния индикатора следующие: Индикатор горит = режим клиента. Успешно подключен к маршрутизатору. Мигание полсекунды - подключение к роутеру (долгое мигание говорит о проблеме с подключением). Быстрое мигание (200 мс) - режим открытой точки доступа. В безопасном режиме светодиод может не работать.
- DigitalInput — this is a simple digital input pin, it sets the linked channel to current logical value on it, just like digitalRead( ) from Arduino. This input has a internal pull up resistor.
- DigitalInput_n (инвертировано)
- ToggleChannelOnToggle — переключает канал в следующее состояние, если был 0 - в 1, если был 1 - в 0 (с устранением дребезга).
- DigitalInput_NoPullUp — то же, что и DigitalInput, но без программируемого подтягивающего резистора. Используется, например, для датчика воды XR809 и датчика двери.
- DigitalInput_NoPullUp_n (инвертировано)
- ADC (аналогово-цифровой преобразователь) — converts voltage to channel value which is later published by MQTT and also can be used to trigger scriptable events
- AlwaysHigh - always outputs 1
- AlwaysLow - always outputs 0
- Btn_NextColor (и _n) — для RGB ленты с кнопками, устанавливает следующий предопределенный цвет
- Btn_NextDimmer (и _n) — для RGB ленты с кнопками, при удержании регулирует яркость
- IRRecv - ИК-приемник
- IRSend - передатчик IR
Безопасный режим
Рабочий (обычный, нормальный) режим работы устройства, считается, когда устройство проработало более 30 секунд поле запуска.
Для перехода в безопасный режим, надо несколько раз включать, выключать устройство не давая войти в рабочий режим.
В безопасном режиме устройство войдет в режим открытой точки доступа, т.е. АР.
В безопасном режиме системы контактов не инициализированы.
Безопасный режим нужен для восстановления устройств после плохих конфигураций и ошибок.
Консольные команды
Существует несколько консольных команд, которые позволяют автоматизировать ваши устройства. Команды можно вводить вручную в командной строке, можно отправлять по HTTP (как в Tasmota), можно отправлять по MQTT, а также - заскриптовать.
| Команда | Описание |
|---|---|
| addRepeatingEvent 15 -1 SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle | Каждые 15 секунд будет отправляться команда SendGet. Значение "-1" указывает на беспрерывность выполнения. |
| addEventHandler OnClick 8 SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle | Выполнить на 8-ом пине (не канал!) |
| addChangeHandler Channel1 != 0 SendGet http://192.168.0.112/cm?cmnd=Power0%20On | Включить 1 канал (не вывод, который указан в конфиге, а канал!). Например включить реле. |
| addChangeHandler Channel1 == 0 SendGet http://192.168.0.112/cm?cmnd=Power0%20Off | Выключить 1 канал. Например выключить реле. |
| addChangeHandler Channel1 == 1 addRepeatingEvent 60 1 setChannel 1 0 | Выключить канал 1 через 60 секунд после включения. |
| addRepeatingEvent 5 -1 led_enableAll !$led_enableAll | Через каждые 5 секунд включить, выключить светодиод. Значение "-1" указывает на беспрерывность выполнения. |
команды MQTT для передачи на устройство
OBK_DEV_NAME/INDEX/set
OBK_DEV_NAME - имя устройства в MQTT
INDEX - номер канала
Пример передачи команды на выключение реле:
rozetka_03/0/set "0"
Для устройств на базе BL602 команды для передачи на устройство по MQTT отличаются:
cmnd/OBK_DEV_NAME/led_basecolor_rgb
где led_basecolor_rgb - это топик.
| Topic | Sample Value | Description |
|---|---|---|
| OBK_DEV_NAME/connected | "online" | Send on connect. |
| OBK_DEV_NAME/sockets | "5" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/rssi | "-70" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/uptime | "653" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/freeheap | "95168" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/ip | "192.168.0.123" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/datetime | "" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/mac | "84:e3:42:65:d1:87 " | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/build | "Build on Nov 12 2022 12:39:44 version 1.0.0" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/host | "obk_t_fourRelays" | Send on connect and every minute (if enabled) |
| OBK_DEV_NAME/voltage/get | "221" | voltage from BL0942/BL0937 etc |
| OBK_DEV_NAME/led_enableAll/get | "1" | send when LED On/Off changes or when periodic broadcast is enabled |
| OBK_DEV_NAME/led_basecolor_rgb/get | "FFAABB" | send when LED color changes or when periodic broadcast is enabled. |
| OBK_DEV_NAME/led_dimmer/get | "100" | send when LED dimmer changes or when periodic broadcast is enabled |
- Войдите, чтобы оставлять комментарии