diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c index 76db8f128..46c7dd8ab 100644 --- a/src/cmnds/cmd_newLEDDriver.c +++ b/src/cmnds/cmd_newLEDDriver.c @@ -492,6 +492,10 @@ void LED_SetTemperature(int tmpInteger, bool bApply) { baseColors[4] = (255.0f) * f; if(bApply) { + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } + // set g_lightMode SET_LightMode(Light_Temperature); sendTemperatureChange(); @@ -662,6 +666,10 @@ void LED_SetDimmer(int iVal) { g_brightness = iVal * g_cfg_brightnessMult; + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } + #ifndef OBK_DISABLE_ALL_DRIVERS DRV_DGR_OnLedDimmerChange(iVal); #endif @@ -786,6 +794,10 @@ void LED_SetFinalCW(byte c, byte w) { LED_SetTemperature0to1Range(tmp); + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } + baseColors[3] = c; baseColors[4] = w; @@ -800,6 +812,10 @@ void LED_SetFinalRGB(byte r, byte g, byte b) { RGBtoHSV(baseColors[0]/255.0f, baseColors[1]/255.0f, baseColors[2]/255.0f, &g_hsv_h, &g_hsv_s, &g_hsv_v); + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } + apply_smart_light(); // TODO @@ -822,6 +838,10 @@ static void onHSVChanged() { baseColors[1] = g * 255.0f; baseColors[2] = b * 255.0f; + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } + sendColorChange(); apply_smart_light(); @@ -927,6 +947,9 @@ commandResult_t LED_SetBaseColor(const void *context, const char *cmd, const cha RGBtoHSV(baseColors[0]/255.0f, baseColors[1]/255.0f, baseColors[2]/255.0f, &g_hsv_h, &g_hsv_s, &g_hsv_v); + if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) { + LED_SetEnableAll(true); + } apply_smart_light(); sendColorChange(); if(CFG_HasFlag(OBK_FLAG_MQTT_BROADCASTLEDPARAMSTOGETHER)) { diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index b62892f60..975e1108a 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -2445,11 +2445,10 @@ const char* g_obk_flagNames[] = { "[LED] Force RGB mode (3 PWMs for LEDs) and ignore futher PWMs if they are set", "[MQTT] Retain power channels (Relay channels, etc)", "[IR] Do MQTT publish (Tasmota JSON format) for incoming IR data", - "error", + "[LED] Automatically enable Light on any change of brightness, color or temperature", "error", "error", }; - int http_fn_cfg_generic(http_request_t* request) { int i; char tmpA[64]; diff --git a/src/new_pins.h b/src/new_pins.h index 275a8fea8..ea6ffb79b 100644 --- a/src/new_pins.h +++ b/src/new_pins.h @@ -169,9 +169,10 @@ typedef struct pinsState_s { #define OBK_FLAG_LED_FORCE_MODE_RGB 20 #define OBK_FLAG_MQTT_RETAIN_POWER_CHANNELS 21 #define OBK_FLAG_IR_PUBLISH_RECEIVED_IN_JSON 22 +#define OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION 23 -#define OBK_TOTAL_FLAGS 23 +#define OBK_TOTAL_FLAGS 24 #define CGF_MQTT_CLIENT_ID_SIZE 64