Bump version v14.3.0.6

- Add command ``WebColor20`` to control color of Button when Off
This commit is contained in:
Theo Arends 2024-11-11 22:44:18 +01:00
parent b903c6a843
commit cf94ccf59c
10 changed files with 33 additions and 19 deletions

View File

@ -3,17 +3,25 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development ## [Unreleased] - Development
## [14.3.0.5] ## [14.3.0.6]
### Added ### Added
- ESP32 MI32 legacy add config operations (#22458) - Add command ``WebColor20`` to control color of Button when Off
### Breaking Changed ### Breaking Changed
### Changed ### Changed
- Redesign GUI adding feedback to buttons, shutters and lights
### Fixed ### Fixed
### Removed
## [14.3.0.5] 20241111
### Added
- ESP32 MI32 legacy add config operations (#22458)
### Changed
- Redesign GUI adding feedback to buttons, shutters and lights
### Removed ### Removed
- Command ``SetOption161 1`` to disable web page slider updates by commands - Command ``SetOption161 1`` to disable web page slider updates by commands

View File

@ -114,8 +114,9 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
[Complete list](BUILDS.md) of available feature and sensors. [Complete list](BUILDS.md) of available feature and sensors.
## Changelog v14.3.0.5 ## Changelog v14.3.0.6
### Added ### Added
- Add command ``WebColor20`` to control color of Button when Off
- DALI support for short addresses (gear) and groups - DALI support for short addresses (gear) and groups
- DALI command `DaliGear` to set max found gear to speed up scan response - DALI command `DaliGear` to set max found gear to speed up scan response
- DALI command `DaliGroup` to add gear to groups - DALI command `DaliGroup` to add gear to groups

View File

@ -851,8 +851,6 @@
#define CODE_IMAGE_STR "minimal" #define CODE_IMAGE_STR "minimal"
#endif #endif
#define FIRMWARE_MINIMAL_ONLY
#undef FIRMWARE_LITE // Disable tasmota-lite with no sensors #undef FIRMWARE_LITE // Disable tasmota-lite with no sensors
#undef FIRMWARE_SENSORS // Disable tasmota-sensors with useful sensors enabled #undef FIRMWARE_SENSORS // Disable tasmota-sensors with useful sensors enabled
#undef FIRMWARE_KNX_NO_EMULATION // Disable tasmota-knx with KNX but without Emulation #undef FIRMWARE_KNX_NO_EMULATION // Disable tasmota-knx with KNX but without Emulation

View File

@ -173,8 +173,6 @@
#define FIRMWARE_MINIMAL #define FIRMWARE_MINIMAL
#undef FIRMWARE_MINIMAL_ONLY
#undef USE_ESP32_SENSORS #undef USE_ESP32_SENSORS
#undef USE_UFILESYS #undef USE_UFILESYS
#undef GUI_TRASH_FILE #undef GUI_TRASH_FILE

View File

@ -503,13 +503,16 @@ const char WIFI_HOSTNAME[] = WIFI_DEFAULT_HOSTNAME; // Override by user_confi
#ifndef COLOR_TITLE_TEXT #ifndef COLOR_TITLE_TEXT
#define COLOR_TITLE_TEXT COLOR_TEXT // Title text color defaults to global text color either dark or light #define COLOR_TITLE_TEXT COLOR_TEXT // Title text color defaults to global text color either dark or light
#endif #endif
#ifndef COLOR_BUTTON_OFF
#define COLOR_BUTTON_OFF "#08405e" // Button color when off - Darkest blueish
#endif
enum WebColors { enum WebColors {
COL_TEXT, COL_BACKGROUND, COL_FORM, COL_TEXT, COL_BACKGROUND, COL_FORM,
COL_INPUT_TEXT, COL_INPUT, COL_CONSOLE_TEXT, COL_CONSOLE, COL_INPUT_TEXT, COL_INPUT, COL_CONSOLE_TEXT, COL_CONSOLE,
COL_TEXT_WARNING, COL_TEXT_SUCCESS, COL_TEXT_WARNING, COL_TEXT_SUCCESS,
COL_BUTTON_TEXT, COL_BUTTON, COL_BUTTON_HOVER, COL_BUTTON_RESET, COL_BUTTON_RESET_HOVER, COL_BUTTON_SAVE, COL_BUTTON_SAVE_HOVER, COL_BUTTON_TEXT, COL_BUTTON, COL_BUTTON_HOVER, COL_BUTTON_RESET, COL_BUTTON_RESET_HOVER, COL_BUTTON_SAVE, COL_BUTTON_SAVE_HOVER,
COL_TIMER_TAB_TEXT, COL_TIMER_TAB_BACKGROUND, COL_TITLE, COL_TIMER_TAB_TEXT, COL_TIMER_TAB_BACKGROUND, COL_TITLE, COL_BUTTON_OFF,
COL_LAST }; COL_LAST };
const char kWebColors[] PROGMEM = const char kWebColors[] PROGMEM =
@ -517,7 +520,7 @@ const char kWebColors[] PROGMEM =
COLOR_INPUT_TEXT "|" COLOR_INPUT "|" COLOR_CONSOLE_TEXT "|" COLOR_CONSOLE "|" COLOR_INPUT_TEXT "|" COLOR_INPUT "|" COLOR_CONSOLE_TEXT "|" COLOR_CONSOLE "|"
COLOR_TEXT_WARNING "|" COLOR_TEXT_SUCCESS "|" COLOR_TEXT_WARNING "|" COLOR_TEXT_SUCCESS "|"
COLOR_BUTTON_TEXT "|" COLOR_BUTTON "|" COLOR_BUTTON_HOVER "|" COLOR_BUTTON_RESET "|" COLOR_BUTTON_RESET_HOVER "|" COLOR_BUTTON_SAVE "|" COLOR_BUTTON_SAVE_HOVER "|" COLOR_BUTTON_TEXT "|" COLOR_BUTTON "|" COLOR_BUTTON_HOVER "|" COLOR_BUTTON_RESET "|" COLOR_BUTTON_RESET_HOVER "|" COLOR_BUTTON_SAVE "|" COLOR_BUTTON_SAVE_HOVER "|"
COLOR_TIMER_TAB_TEXT "|" COLOR_TIMER_TAB_BACKGROUND "|" COLOR_TITLE_TEXT; COLOR_TIMER_TAB_TEXT "|" COLOR_TIMER_TAB_BACKGROUND "|" COLOR_TITLE_TEXT "|" COLOR_BUTTON_OFF;
/*********************************************************************************************\ /*********************************************************************************************\
* Macros * Macros

View File

@ -22,6 +22,6 @@
#define TASMOTA_SHA_SHORT // Filled by Github sed #define TASMOTA_SHA_SHORT // Filled by Github sed
const uint32_t TASMOTA_VERSION = 0x0E030005; // 14.3.0.5 const uint32_t TASMOTA_VERSION = 0x0E030006; // 14.3.0.6
#endif // _TASMOTA_VERSION_H_ #endif // _TASMOTA_VERSION_H_

View File

@ -190,7 +190,7 @@
// -- HTTP GUI Colors ----------------------------- // -- HTTP GUI Colors -----------------------------
// HTML hex color codes. Only 3 and 6 digit hex string values are supported!! See https://www.w3schools.com/colors/colors_hex.asp // HTML hex color codes. Only 3 and 6 digit hex string values are supported!! See https://www.w3schools.com/colors/colors_hex.asp
// Light theme - pre v7 // Light theme - pre v7
// WebColor {"WebColor":["#000","#fff","#f2f2f2","#000","#fff","#000","#fff","#f00","#008000","#fff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#fff","#999","#000"]} // WebColor {"WebColor":["#000","#fff","#f2f2f2","#000","#fff","#000","#fff","#f00","#008000","#fff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#fff","#999","#000","#08405e"]}
/* /*
#define COLOR_TEXT "#000" // [WebColor1] Global text color - Black #define COLOR_TEXT "#000" // [WebColor1] Global text color - Black
#define COLOR_BACKGROUND "#fff" // [WebColor2] Global background color - White #define COLOR_BACKGROUND "#fff" // [WebColor2] Global background color - White
@ -211,9 +211,10 @@
#define COLOR_TIMER_TAB_TEXT "#fff" // [WebColor17] Config timer tab text color - White #define COLOR_TIMER_TAB_TEXT "#fff" // [WebColor17] Config timer tab text color - White
#define COLOR_TIMER_TAB_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark gray #define COLOR_TIMER_TAB_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark gray
#define COLOR_TITLE_TEXT "#000" // [WebColor19] Title text color - Whiteish #define COLOR_TITLE_TEXT "#000" // [WebColor19] Title text color - Whiteish
#define COLOR_BUTTON_OFF "#08405e" // [WebColor20] Button color when off - Darkest blueish
*/ */
// Dark theme // Dark theme
// WebColor {"WebColor":["#eaeaea","#252525","#4f4f4f","#000","#ddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999","#eaeaea"]} // WebColor {"WebColor":["#eaeaea","#252525","#4f4f4f","#000","#ddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999","#eaeaea","#08405e"]}
#define COLOR_TEXT "#eaeaea" // [WebColor1] Global text color - Very light gray #define COLOR_TEXT "#eaeaea" // [WebColor1] Global text color - Very light gray
#define COLOR_BACKGROUND "#252525" // [WebColor2] Global background color - Very dark gray (mostly black) #define COLOR_BACKGROUND "#252525" // [WebColor2] Global background color - Very dark gray (mostly black)
#define COLOR_FORM "#4f4f4f" // [WebColor3] Form background color - Very dark gray #define COLOR_FORM "#4f4f4f" // [WebColor3] Form background color - Very dark gray
@ -233,6 +234,7 @@
#define COLOR_TIMER_TAB_TEXT "#faffff" // [WebColor17] Config timer tab text color - Very pale (mostly white) cyan. #define COLOR_TIMER_TAB_TEXT "#faffff" // [WebColor17] Config timer tab text color - Very pale (mostly white) cyan.
#define COLOR_TIMER_TAB_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark gray #define COLOR_TIMER_TAB_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark gray
#define COLOR_TITLE_TEXT "#eaeaea" // [WebColor19] Title text color - Very light gray #define COLOR_TITLE_TEXT "#eaeaea" // [WebColor19] Title text color - Very light gray
#define COLOR_BUTTON_OFF "#08405e" // [WebColor20] Button color when off - Darkest blueish
// -- KNX ----------------------------------------- // -- KNX -----------------------------------------
#define KNX_ENABLED false // [Knx_Enabled] Enable KNX protocol #define KNX_ENABLED false // [Knx_Enabled] Enable KNX protocol

View File

@ -1843,6 +1843,10 @@ void SettingsDelta(void) {
if (Settings->version < 0x0E030004) { // 14.3.0.4 if (Settings->version < 0x0E030004) { // 14.3.0.4
Settings->mbflag2.dali_group_sliders = 2; Settings->mbflag2.dali_group_sliders = 2;
} }
if (Settings->version < 0x0E030006) { // 14.3.0.6
char scolor[10];
WebHexCode(COL_BUTTON_OFF, GetTextIndexed(scolor, sizeof(scolor), COL_BUTTON_OFF, kWebColors));
}
Settings->version = TASMOTA_VERSION; Settings->version = TASMOTA_VERSION;
SettingsSave(1); SettingsSave(1);

View File

@ -1519,7 +1519,7 @@ void HandleRoot(void) {
#endif // USE_SONOFF_IFAN #endif // USE_SONOFF_IFAN
if (not_active) { if (not_active) {
WSContentSend_P(PSTR("eb('o%d').style.background='#%06x';"), idx, WebColor(COL_FORM)); WSContentSend_P(PSTR("eb('o%d').style.background='#%06x';"), idx, WebColor(COL_BUTTON_OFF));
} }
} }
WSContentSend_P(PSTR("</script>")); WSContentSend_P(PSTR("</script>"));
@ -1693,7 +1693,7 @@ bool HandleRootStatusRefresh(void)
#endif // USE_SONOFF_IFAN #endif // USE_SONOFF_IFAN
WSContentSend_P(PSTR("eb('o%d').style.background='#%06x';"), WSContentSend_P(PSTR("eb('o%d').style.background='#%06x';"),
idx, WebColor((active) ? COL_BUTTON : COL_FORM)); idx, WebColor((active) ? COL_BUTTON : COL_BUTTON_OFF));
} }
} }
@ -3854,9 +3854,9 @@ int WebGetConfig(char *buffer) {
bool JsonWebColor(const char* dataBuf) bool JsonWebColor(const char* dataBuf)
{ {
// Default (Dark theme) // Default (Dark theme)
// {"WebColor":["#eaeaea","#252525","#4f4f4f","#000","#ddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999","#eaeaea"]} // {"WebColor":["#eaeaea","#252525","#4f4f4f","#000","#ddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999","#eaeaea","#08405e"]}
// Default pre v7 (Light theme) // Default pre v7 (Light theme)
// {"WebColor":["#000","#fff","#f2f2f2","#000","#fff","#000","#fff","#f00","#008000","#fff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#fff","#999","#000"]} // {"WebColor":["#000000","#ffffff","#f2f2f2","#000000","#ffffff","#000000","#ffffff","#ff0000","#008000","#ffffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#ffffff","#999999","#000000"]} // {"WebColor":["#000","#fff","#f2f2f2","#000","#fff","#000","#fff","#f00","#008000","#fff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#fff","#999","#000","#08405e"]} // {"WebColor":["#000000","#ffffff","#f2f2f2","#000000","#ffffff","#000000","#ffffff","#ff0000","#008000","#ffffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#ffffff","#999999","#000000","#08405e"]}
JsonParser parser((char*) dataBuf); JsonParser parser((char*) dataBuf);
JsonParserObject root = parser.getRootObject(); JsonParserObject root = parser.getRootObject();

View File

@ -1247,7 +1247,7 @@ void DaliWebAddMainSlider(void) {
Dali->web_dimmer[i] = Dali->dimmer[i]; Dali->web_dimmer[i] = Dali->dimmer[i];
WSContentSend_P(HTTP_MSG_SLIDER_DALI, // Brightness - Black to White WSContentSend_P(HTTP_MSG_SLIDER_DALI, // Brightness - Black to White
i, // k75<i> i, // k75<i>
WebColor((Dali->power[i]) ? COL_BUTTON : COL_FORM), WebColor((Dali->power[i]) ? COL_BUTTON : COL_BUTTON_OFF),
i, // k75=<i> i, // k75=<i>
(0==i)?"B":"G", // B (Broadcast) or G1 to G16 (Group) (0==i)?"B":"G", // B (Broadcast) or G1 to G16 (Group)
(0==i)?"":itoa(i, number, 10), (0==i)?"":itoa(i, number, 10),
@ -1296,7 +1296,7 @@ void DaliShow(bool json) {
uint32_t slider_update_time = millis(); uint32_t slider_update_time = millis();
for (uint32_t i = Settings->sbflag1.dali_light; i <= Settings->mbflag2.dali_group_sliders; i++) { // DaliLight 0/1, DaliGroupSliders for (uint32_t i = Settings->sbflag1.dali_light; i <= Settings->mbflag2.dali_group_sliders; i++) { // DaliLight 0/1, DaliGroupSliders
WSContentSend_P(PSTR("eb('k75%d').style='background:#%06x';"), WSContentSend_P(PSTR("eb('k75%d').style='background:#%06x';"),
i, WebColor((Dali->power[i]) ? COL_BUTTON : COL_FORM)); i, WebColor((Dali->power[i]) ? COL_BUTTON : COL_BUTTON_OFF));
if (Dali->dimmer[i] != Dali->web_dimmer[i]) { if (Dali->dimmer[i] != Dali->web_dimmer[i]) {
if (0 == Dali->slider_update_time) { if (0 == Dali->slider_update_time) {
Dali->slider_update_time = slider_update_time + Settings->web_refresh; // Allow other users to sync screen Dali->slider_update_time = slider_update_time + Settings->web_refresh; // Allow other users to sync screen