diff --git a/code/espurna/button.ino b/code/espurna/button.ino index 4d8afef5..89e048e4 100644 --- a/code/espurna/button.ino +++ b/code/espurna/button.ino @@ -97,12 +97,14 @@ void buttonEvent(unsigned int id, unsigned char event) { DEBUG_MSG_P(PSTR("[BUTTON] Button #%u event %u\n"), id, event); if (event == 0) return; + unsigned char action = buttonAction(id, event); + #if MQTT_SUPPORT - buttonMQTT(id, event); + if (action != BUTTON_MODE_NONE || BUTTON_MQTT_SEND_ALL_EVENTS) { + buttonMQTT(id, event); + } #endif - unsigned char action = buttonAction(id, event); - if (action == BUTTON_MODE_TOGGLE) { if (_buttons[id].relayID > 0) { relayToggle(_buttons[id].relayID - 1); diff --git a/code/espurna/config/general.h b/code/espurna/config/general.h index a249888f..5b9f5c94 100644 --- a/code/espurna/config/general.h +++ b/code/espurna/config/general.h @@ -236,6 +236,8 @@ #ifndef BUTTON_LNGLNGCLICK_DELAY #define BUTTON_LNGLNGCLICK_DELAY 10000 // Time in ms holding the button down to get a long-long click +#define BUTTON_MQTT_SEND_ALL_EVENTS 0 // 0 - to send only events the are bound to actions + // 1 - to send all button events to MQTT #endif //------------------------------------------------------------------------------