Прошивка для ESP32, которая имитирует нажатия кнопок через «сухой контакт» (реле 1–4 канала). Управление — через MQTT и веб-интерфейс. Есть OTA.
Нажатие = замыкание (реле ON) → пауза press_ms → размыкание (реле OFF).
- Кнопочная цепь подключается на контакты реле COM и NO (замыкаются на время нажатия).
- Релейный модуль должен иметь общий GND с ESP32.
Про ваш модуль: «перемычка стоит на VCC и активируется землёй» — это active LOW вход. Поэтому по умолчанию в проекте BTN_DEFAULT_RELAY_INVERTED=1.
/— главная (настройки, статус, тестовые кнопки Button 1..4 — поrelay_count)./update— обновление прошивки через браузер./logs— логи.
Базовый топик: buttons/<deviceId>/
Команды:
cmd/button1— payloadPRESS(или1,ON,true)cmd/button2— payloadPRESS(или1,ON,true)cmd/button3— payloadPRESS(еслиrelay_count>=3)cmd/button4— payloadPRESS(еслиrelay_count>=4)cmd/enabled—1/0cmd/press_ms— число (мс), настройка длительности нажатия (также доступно из HA как Number)
Состояния:
state/enabled—1/0state/relay1—ON/OFFstate/relay2—ON/OFFstate/relay3—ON/OFF(еслиrelay_count>=3)state/relay4—ON/OFF(еслиrelay_count>=4)state/press_ms— число (мс)state/relay_count— число (1..4)state/reed—OPEN/CLOSED(только если геркон активирован в веб)status/online—1/0
Примечание: если в MQTT/HA всё ещё виден gap_ms, это старый retained от предыдущих версий. Текущая прошивка очищает retained state/gap_ms и HA discovery gap_ms при подключении к MQTT.
Геркон — отдельный датчик, не связан с реле.
- В веб можно включить/выключить «Activate reed sensor», выбрать GPIO и тип контакта
NO/NC. - В прошивке используется
INPUT_PULLUP: контакт замыкается на GND. - Если геркон выключен, прошивка не публикует его состояние в MQTT (и очищает retained
state/reed).
Сборка/прошивка аналогично проекту увлажнителя.