added lighting settings to UI and prefs

This commit is contained in:
2026-01-20 11:24:38 +01:00
parent 0197266418
commit 9312ceb22b
3 changed files with 85 additions and 5 deletions

View File

@@ -96,6 +96,24 @@ void calOverrideSwitchCallback(Control *sender, int type) {
}
}
}
void lightingSaveCallback(Control *sender, int type) {
if (type != B_UP) return; // avoid double-trigger
prefs.putUChar("light_hue", lightingHue);
prefs.putUChar("light_sat", lightingSaturation);
prefs.putUChar("light_bright", lightingBrightness);
Serial.printf("Lighting saved (0255): H=%d S=%d B=%d\n",
lightingHue, lightingSaturation, lightingBrightness);
}
static int toSlider(uint8_t v) {
return (int)((v / 255.0f) * 100.0f);
}
static uint8_t fromSlider(int v) {
return (uint8_t)((v / 100.0f) * 255.0f);
}
// -------------------------------
// UI init
@@ -213,13 +231,58 @@ void uiInit(uint16_t& tabSettings, uint16_t& tabLighting, uint16_t& tabCalibrati
restartCallback
);
// Lighting tab placeholder
// -------------------------------
// Lighting Controls
// -------------------------------
// Hue slider (0360)
ESPUI.addControl(
ControlType::Label,
"Lighting Placeholder",
"Coming soon...",
ControlType::Slider,
"Hue",
String(toSlider(lightingHue)),
ControlColor::Sunflower,
tabLighting,
[](Control *sender, int type) {
int sliderVal = sender->value.toInt(); // 0100
lightingHue = fromSlider(sliderVal); // convert to 0255
Serial.printf("Lighting Hue changed (RAM only): %d\n", lightingHue);
}
);
// Saturation slider (0100)
ESPUI.addControl(
ControlType::Slider,
"Saturation",
String(toSlider(lightingSaturation)),
ControlColor::Carrot,
tabLighting,
[](Control *sender, int type) {
int sliderVal = sender->value.toInt(); // 0100
lightingSaturation = fromSlider(sliderVal);
Serial.printf("Lighting Saturation updated (RAM only): %d\n", lightingSaturation);
}
);
// Brightness slider (0100)
ESPUI.addControl(
ControlType::Slider,
"Brightness",
String(toSlider(lightingBrightness)),
ControlColor::Emerald,
tabLighting
tabLighting,
[](Control *sender, int type) {
int sliderVal = sender->value.toInt(); // 0100
lightingBrightness = fromSlider(sliderVal);
Serial.printf("Lighting Brightness updated (RAM only): %d\n", lightingBrightness);
}
);
ESPUI.addControl(
ControlType::Button,
"Save Lighting Settings",
"Save",
ControlColor::Emerald,
tabLighting,
lightingSaveCallback
);
// -------------------------------