Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Do not add anything here, as it will overwritten with next rebuild.
| Section | Comment |
|:------------- |------:|
| [IO/Pin Roles](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/ioRoles.md) (100 total) | You can set pin roles in 'Configure Module' section or use one of predefined templates in Web App. For each pin, you also set corresponding channel value. This is needed for modules with multiple relays. If you have 3 relays and 3 buttons, you need to use channel values like 1, 2, and 3. Just enter '1' in the text field, etc. |
| [Flags](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/flags.md) (52 total) | Flags are global and allows you to alter behaviour of the device. |
| [Flags](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/flags.md) (53 total) | Flags are global and allows you to alter behaviour of the device. |
| [Drivers](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/drivers.md) (95 total) | Drivers allows you to control certain peripherals or enable certain features that are off by default. |
| [Script constants](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/constants.md) (43 total) | Every console command that takes an integer argument supports certain constant expansion. |
| [Channel Types](https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/channelTypes.md) (69 total) | Channel types are often not required and don't have to be configured, but in some cases they are required for better device control from OpenBeken web panel. Channel types describes the kind of value stored in channel, for example, if you have a Tuya Fan Controller with 3 speeds control, you can set the channel type to LowMidHigh and it will display the correct UI radiobutton on OpenBeken panel.<br>Some channels have '_div10' or '_div100' suffixes. This is for TuyaMCU. This is needed because TuyaMCU sends values as integers, so it sends, for example, 215 for 21.5C temperature, and we store it internally as 215 and only convert to float for display. |
Expand Down
3 changes: 2 additions & 1 deletion docs/flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Do not add anything here, as it will overwritten with next rebuild.
| 9 | [SM2135] Use separate RGB/CW modes instead of writing all 5 values as RGB |
| 10 | [MQTT] Broadcast self state on MQTT connect |
| 11 | [PWM] BK7231 use 600hz instead of 1khz default |
| 12 | [LED] Remember LED driver state (RGBCW, enable, brightness, temperature) after reboot |
| 12 | [LED] Remember LED driver state (RGBCW/RGBW, enable, brightness, temperature) after reboot |
| 13 | [HTTP] Show actual PIN logic level for unconfigured pins |
| 14 | [IR] Do MQTT publish (RAW STRING) for incoming IR data |
| 15 | [IR] Allow 'unknown' protocol |
Expand Down Expand Up @@ -57,3 +57,4 @@ Do not add anything here, as it will overwritten with next rebuild.
| 49 | [HTTP] Hide ON/OFF for relays (only red/green buttons) |
| 50 | [MQTT] Never add GET suffix |
| 51 | [WiFi] (RTL/BK/BL602) Enhanced fast connect by saving AP data to flash (preferable with Flag 37 & static ip). Quick reset 3 times to connect normally |
| 52 | [LED] Enables independent management of RGB vs White only modes for 4 PWMs |
9 changes: 8 additions & 1 deletion docs/json/flags.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
"enum": "OBK_FLAG_LED_REMEMBERLASTSTATE",
"title": "todo",
"file": "new_pins.h",
"descr": "[LED] Remember LED driver state (RGBCW, enable, brightness, temperature) after reboot"
"descr": "[LED] Remember LED driver state (RGBCW/RGBW, enable, brightness, temperature) after reboot"
},
{
"index": "13",
Expand Down Expand Up @@ -362,5 +362,12 @@
"title": "todo",
"file": "new_pins.h",
"descr": "[WiFi] (RTL/BK/BL602) Enhanced fast connect by saving AP data to flash (preferable with Flag 37 & static ip). Quick reset 3 times to connect normally"
},
{
"index": "52",
"enum": "OBK_FLAG_LED_4PWM_RGBW_MODE",
"title": "todo",
"file": "new_pins.h",
"descr": "[LED] Enables independent management of RGB vs White only modes for 4 PWMs"
}
]
77 changes: 66 additions & 11 deletions src/cmnds/cmd_newLEDDriver.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,8 +508,14 @@ OBK_Publish_Result LED_SendCurrentLightModeParam_TempOrColor() {
return sendTemperatureChange();
}
else if (g_lightMode == Light_RGB) {
if (CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE)) {
sendColorMode();
}
return sendColorChange();
}
else if (g_lightMode == Light_White) {
sendColorMode();
}
return OBK_PUBLISH_WAS_NOT_REQUIRED;
}
OBK_Publish_Result sendFinalColor() {
Expand Down Expand Up @@ -541,7 +547,8 @@ OBK_Publish_Result sendTemperatureChange() {
#endif

void LED_SaveStateToFlashVarsNow() {
HAL_FlashVars_SaveLED(g_lightMode, g_brightness0to100, led_temperature_current, led_baseColors[0], led_baseColors[1], led_baseColors[2], g_lightEnableAll);
short tempOrWhite = CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE) ? led_baseColors[4] : led_temperature_current;
HAL_FlashVars_SaveLED(g_lightMode, g_brightness0to100, tempOrWhite, led_baseColors[0], led_baseColors[1], led_baseColors[2], g_lightEnableAll);
}
void apply_smart_light() {
int i;
Expand Down Expand Up @@ -614,12 +621,10 @@ void apply_smart_light() {
}
}
else if (g_lightMode == Light_RGB) {
// skip channels 3, 4
if (i >= 3)
{
baseRGBCW[i] = 0;
final = 0;
}
if (i >= 3) { baseRGBCW[i] = 0; final = 0; }
} else if (g_lightMode == Light_White) {
// White sub-mode for 4PWM RGBW: only channel 4 active, zero 0-3
if (i <= 3) { baseRGBCW[i] = 0; final = 0; }
} else if(g_lightMode == Light_Anim) {
// skip all?
baseRGBCW[i] = 0;
Expand Down Expand Up @@ -822,6 +827,8 @@ const char *GetLightModeStr(int mode) {
return "cw";
if(mode == Light_RGB)
return "rgb";
if(mode == Light_White)
return "white";
return "er";
}
void SET_LightMode(int newMode) {
Expand Down Expand Up @@ -1263,6 +1270,39 @@ static commandResult_t dimmer(const void *context, const char *cmd, const char *

return CMD_RES_OK;
}
#if ENABLE_MQTT
// Publish current color mode ("rgb" or "white") for HA to switch UI
OBK_Publish_Result sendColorMode() {
const char *mode = (g_lightMode == Light_White) ? "white" : "rgb";
return MQTT_PublishMain_StringString_DeDuped(DEDUP_LED_COLOR_MODE, DEDUP_EXPIRE_TIME, "led_colorMode", mode, 0);
}
#endif
// Switch to white mode in OBK_FLAG_LED_4PWM_RGBW_MODE.
// Home Assistant sends this command with a value only once, as a signal to
// enter white mode. The value itself is deliberately ignored — the white
// channel stays at max, and all brightness changes in white mode continue to
// go through led_dimmer. RGB channels are zeroed in apply_smart_light().
static commandResult_t led_enableWhite(const void *context, const char *cmd, const char *args, int cmdFlags) {
if (CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE) == false) {
return CMD_RES_ERROR;
}

SET_LightMode(Light_White);

led_baseColors[4] = 255.0f;

if (CFG_HasFlag(OBK_FLAG_LED_AUTOENABLE_ON_ANY_ACTION)) {
LED_SetEnableAll(true);
}
apply_smart_light();
#if ENABLE_MQTT
sendColorMode();
if(CFG_HasFlag(OBK_FLAG_MQTT_BROADCASTLEDPARAMSTOGETHER)) {
LED_SendDimmerChange();
}
#endif
return CMD_RES_OK;
}
void LED_SetFinalRGBCW(byte *rgbcw) {
if(rgbcw[0] == 0 && rgbcw[1] == 0 && rgbcw[2] == 0 && rgbcw[3] == 0 && rgbcw[4] == 0) {

Expand Down Expand Up @@ -1517,6 +1557,9 @@ commandResult_t LED_SetBaseColor(const void *context, const char *cmd, const cha
apply_smart_light();
#if ENABLE_MQTT
sendColorChange();
if (CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE)) {
sendColorMode();
}
if(CFG_HasFlag(OBK_FLAG_MQTT_BROADCASTLEDPARAMSTOGETHER)) {
LED_SendDimmerChange();
}
Expand All @@ -1536,7 +1579,6 @@ static commandResult_t basecolor_rgb(const void *context, const char *cmd, const
static commandResult_t basecolor_rgbcw(const void *context, const char *cmd, const char *args, int cmdFlags){
return LED_SetBaseColor(context,cmd,args,1);
}

// CONFIG-ONLY command!
static commandResult_t colorMult(const void *context, const char *cmd, const char *args, int cmdFlags){
ADDLOG_DEBUG(LOG_FEATURE_CMD, " g_cfg_colorScaleToChannel (%s) received with args %s",cmd,args);
Expand Down Expand Up @@ -1752,12 +1794,21 @@ void NewLED_InitCommands(){
// if single color or RGB, force RGB
g_lightMode = Light_RGB;
}
// 4 PWM with flag 52: treat as RGB+W (channels [0,1,2,4])
else if (pwmCount == 4 && CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE)) {
g_lightMode = Light_RGB;
}

//cmddetail:{"name":"led_dimmer","args":"[Value]",
//cmddetail:"descr":"set output dimmer 0..100",
//cmddetail:"fn":"dimmer","file":"cmnds/cmd_newLEDDriver.c","requires":"",
//cmddetail:"examples":""}
CMD_RegisterCommand("led_dimmer", dimmer, NULL);
//cmddetail:{"name":"led_enableWhite","args":"[ignored]",
//cmddetail:"descr":"Switch to white mode for 4PWM RGBW (requires flag 52). White channel always at max; brightness via led_dimmer.",
//cmddetail:"fn":"led_enableWhite","file":"cmnds/cmd_newLEDDriver.c","requires":"",
//cmddetail:"examples":""}
CMD_RegisterCommand("led_enableWhite", led_enableWhite, NULL);
//cmddetail:{"name":"Dimmer","args":"[Value]",
//cmddetail:"descr":"Alias for led_dimmer, added for Tasmota.",
//cmddetail:"fn":"dimmer","file":"cmnds/cmd_newLEDDriver.c","requires":"",
Expand Down Expand Up @@ -1898,17 +1949,21 @@ void NewLED_InitCommands(){
void NewLED_RestoreSavedStateIfNeeded() {
if(CFG_HasFlag(OBK_FLAG_LED_REMEMBERLASTSTATE)) {
short brig;
short tmp;
short tmpOrWhite;
byte rgb[3];
byte mod;
byte bEnableAll;

HAL_FlashVars_ReadLED(&mod, &brig, &tmp, rgb, &bEnableAll);
HAL_FlashVars_ReadLED(&mod, &brig, &tmpOrWhite, rgb, &bEnableAll);

g_lightEnableAll = bEnableAll;
SET_LightMode(mod);
g_brightness0to100 = brig;
LED_SetTemperature(tmp,0);
if (CFG_HasFlag(OBK_FLAG_LED_4PWM_RGBW_MODE)) {
led_baseColors[4] = (byte)tmpOrWhite;
} else {
LED_SetTemperature(tmpOrWhite, 0);
}
led_baseColors[0] = rgb[0];
led_baseColors[1] = rgb[1];
led_baseColors[2] = rgb[2];
Expand Down
3 changes: 3 additions & 0 deletions src/cmnds/cmd_public.h
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ enum LightMode {
Light_RGB,
Light_All,
Light_Anim,
Light_White,
};

#define TOKENIZER_ALLOW_QUOTES 1
Expand Down Expand Up @@ -295,10 +296,12 @@ float LED_GetBlue255();
extern float led_baseColors[5];
extern byte g_lightEnableAll;
extern byte g_lightMode;

void LED_RunQuickColorLerp(int deltaMS);
void LED_RunOnEverySecond();
OBK_Publish_Result sendFinalColor();
OBK_Publish_Result sendColorChange();
OBK_Publish_Result sendColorMode();
OBK_Publish_Result LED_SendEnableAllState();
OBK_Publish_Result LED_SendDimmerChange();
OBK_Publish_Result sendTemperatureChange();
Expand Down
8 changes: 4 additions & 4 deletions src/hal/bk7231/hal_flashVars_bk7231.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,22 @@ void HAL_FlashVars_SaveChannel(int index, int value)
SaveFlashVars(&flash_vars, sizeof(flash_vars));
}

void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, byte* rgb, byte* bEnableAll)
void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperatureOrWhite, byte* rgb, byte* bEnableAll)
{
if(g_loaded == 0)
{
ReadFlashVars(&flash_vars, sizeof(flash_vars));
}
*bEnableAll = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4];
*mode = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3];
*temperature = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*temperatureOrWhite = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*brightness = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1];
rgb[0] = flash_vars.rgb[0];
rgb[1] = flash_vars.rgb[1];
rgb[2] = flash_vars.rgb[2];
}

void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte r, byte g, byte b, byte bEnableAll)
void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperatureOrWhite, byte r, byte g, byte b, byte bEnableAll)
{
int iChangesCount = 0;

Expand All @@ -108,7 +108,7 @@ void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte
}

SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1], brightness, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperature, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperatureOrWhite, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3], mode, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4], bEnableAll, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.rgb[0], r, iChangesCount);
Expand Down
8 changes: 4 additions & 4 deletions src/hal/bl602/hal_flashVars_bl602.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,22 @@ void HAL_FlashVars_SaveChannel(int index, int value)
SaveFlashVars(&flash_vars, sizeof(flash_vars));
}

void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, byte* rgb, byte* bEnableAll)
void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperatureOrWhite, byte* rgb, byte* bEnableAll)
{
if(g_loaded == 0)
{
ReadFlashVars(&flash_vars, sizeof(flash_vars));
}
*bEnableAll = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4];
*mode = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3];
*temperature = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*temperatureOrWhite = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*brightness = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1];
rgb[0] = flash_vars.rgb[0];
rgb[1] = flash_vars.rgb[1];
rgb[2] = flash_vars.rgb[2];
}

void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte r, byte g, byte b, byte bEnableAll)
void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperatureOrWhite, byte r, byte g, byte b, byte bEnableAll)
{
int iChangesCount = 0;

Expand All @@ -108,7 +108,7 @@ void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte
}

SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1], brightness, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperature, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperatureOrWhite, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3], mode, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4], bEnableAll, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.rgb[0], r, iChangesCount);
Expand Down
8 changes: 4 additions & 4 deletions src/hal/ecr6600/hal_flashVars_ecr6600.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,22 +68,22 @@ void HAL_FlashVars_SaveChannel(int index, int value)
SaveFlashVars(&flash_vars, sizeof(flash_vars));
}

void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, byte* rgb, byte* bEnableAll)
void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperatureOrWhite, byte* rgb, byte* bEnableAll)
{
if(g_loaded == 0)
{
ReadFlashVars(&flash_vars, sizeof(flash_vars));
}
*bEnableAll = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4];
*mode = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3];
*temperature = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*temperatureOrWhite = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*brightness = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1];
rgb[0] = flash_vars.rgb[0];
rgb[1] = flash_vars.rgb[1];
rgb[2] = flash_vars.rgb[2];
}

void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte r, byte g, byte b, byte bEnableAll)
void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperatureOrWhite, byte r, byte g, byte b, byte bEnableAll)
{
int iChangesCount = 0;

Expand All @@ -93,7 +93,7 @@ void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte
}

SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1], brightness, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperature, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperatureOrWhite, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3], mode, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4], bEnableAll, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.rgb[0], r, iChangesCount);
Expand Down
8 changes: 4 additions & 4 deletions src/hal/espidf/hal_flashVars_espidf.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ void HAL_FlashVars_SaveChannel(int index, int value)
nvs_close(handle);
}

void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, byte* rgb, byte* bEnableAll)
void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperatureOrWhite, byte* rgb, byte* bEnableAll)
{
InitFlashIfNeeded();
nvs_handle_t handle = 0;
nvs_open("config", NVS_READONLY, &handle);
nvs_get_u8(handle, "mode", mode);
nvs_get_i16(handle, "brs", brightness);
nvs_get_i16(handle, "temp", temperature);
nvs_get_i16(handle, "temp", temperatureOrWhite);
nvs_get_u8(handle, "r", &rgb[0]);
nvs_get_u8(handle, "g", &rgb[1]);
nvs_get_u8(handle, "b", &rgb[2]);
Expand All @@ -62,14 +62,14 @@ void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, by
}


void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte r, byte g, byte b, byte bEnableAll)
void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperatureOrWhite, byte r, byte g, byte b, byte bEnableAll)
{
InitFlashIfNeeded();
nvs_handle_t handle = 0;
nvs_open("config", NVS_READWRITE, &handle);
nvs_set_u8(handle, "mode", mode);
nvs_set_i16(handle, "brs", brightness);
nvs_set_i16(handle, "temp", temperature);
nvs_set_i16(handle, "temp", temperatureOrWhite);
nvs_set_u8(handle, "r", r);
nvs_set_u8(handle, "g", g);
nvs_set_u8(handle, "b", b);
Expand Down
8 changes: 4 additions & 4 deletions src/hal/gd32vw553/hal_flashVars_gd32vw553.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,22 +69,22 @@ void HAL_FlashVars_SaveChannel(int index, int value)
SaveFlashVars(&flash_vars, sizeof(flash_vars));
}

void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperature, byte* rgb, byte* bEnableAll)
void HAL_FlashVars_ReadLED(byte* mode, short* brightness, short* temperatureOrWhite, byte* rgb, byte* bEnableAll)
{
if(g_loaded == 0)
{
ReadFlashVars(&flash_vars, sizeof(flash_vars));
}
*bEnableAll = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4];
*mode = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3];
*temperature = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*temperatureOrWhite = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2];
*brightness = flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1];
rgb[0] = flash_vars.rgb[0];
rgb[1] = flash_vars.rgb[1];
rgb[2] = flash_vars.rgb[2];
}

void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte r, byte g, byte b, byte bEnableAll)
void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperatureOrWhite, byte r, byte g, byte b, byte bEnableAll)
{
int iChangesCount = 0;

Expand All @@ -94,7 +94,7 @@ void HAL_FlashVars_SaveLED(byte mode, short brightness, short temperature, byte
}

SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 1], brightness, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperature, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 2], temperatureOrWhite, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 3], mode, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.savedValues[MAX_RETAIN_CHANNELS - 4], bEnableAll, iChangesCount);
SAVE_CHANGE_IF_REQUIRED_AND_COUNT(flash_vars.rgb[0], r, iChangesCount);
Expand Down
Loading