diff --git a/CHANGELOG.md b/CHANGELOG.md index a95390c19..d8644d97b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,17 +3,25 @@ All notable changes to this project will be documented in this file. ## [Unreleased] - Development -## [14.3.0.5] +## [14.3.0.6] ### Added -- ESP32 MI32 legacy add config operations (#22458) +- Add command ``WebColor20`` to control color of Button when Off ### Breaking Changed ### Changed -- Redesign GUI adding feedback to buttons, shutters and lights ### 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 - Command ``SetOption161 1`` to disable web page slider updates by commands diff --git a/RELEASENOTES.md b/RELEASENOTES.md index efa1111c5..32d0255da 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -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. -## Changelog v14.3.0.5 +## Changelog v14.3.0.6 ### Added +- Add command ``WebColor20`` to control color of Button when Off - DALI support for short addresses (gear) and groups - DALI command `DaliGear` to set max found gear to speed up scan response - DALI command `DaliGroup` to add gear to groups diff --git a/tasmota/include/tasmota_configurations.h b/tasmota/include/tasmota_configurations.h index 36721339b..1260892a0 100644 --- a/tasmota/include/tasmota_configurations.h +++ b/tasmota/include/tasmota_configurations.h @@ -851,8 +851,6 @@ #define CODE_IMAGE_STR "minimal" #endif -#define FIRMWARE_MINIMAL_ONLY - #undef FIRMWARE_LITE // Disable tasmota-lite with no sensors #undef FIRMWARE_SENSORS // Disable tasmota-sensors with useful sensors enabled #undef FIRMWARE_KNX_NO_EMULATION // Disable tasmota-knx with KNX but without Emulation diff --git a/tasmota/include/tasmota_configurations_ESP32.h b/tasmota/include/tasmota_configurations_ESP32.h index 2bcbd27f2..9eb52a7b5 100644 --- a/tasmota/include/tasmota_configurations_ESP32.h +++ b/tasmota/include/tasmota_configurations_ESP32.h @@ -173,8 +173,6 @@ #define FIRMWARE_MINIMAL -#undef FIRMWARE_MINIMAL_ONLY - #undef USE_ESP32_SENSORS #undef USE_UFILESYS #undef GUI_TRASH_FILE diff --git a/tasmota/include/tasmota_globals.h b/tasmota/include/tasmota_globals.h index db8d24f0c..7e6ba23b3 100644 --- a/tasmota/include/tasmota_globals.h +++ b/tasmota/include/tasmota_globals.h @@ -503,13 +503,16 @@ const char WIFI_HOSTNAME[] = WIFI_DEFAULT_HOSTNAME; // Override by user_confi #ifndef COLOR_TITLE_TEXT #define COLOR_TITLE_TEXT COLOR_TEXT // Title text color defaults to global text color either dark or light #endif +#ifndef COLOR_BUTTON_OFF +#define COLOR_BUTTON_OFF "#08405e" // Button color when off - Darkest blueish +#endif enum WebColors { COL_TEXT, COL_BACKGROUND, COL_FORM, COL_INPUT_TEXT, COL_INPUT, COL_CONSOLE_TEXT, COL_CONSOLE, 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_TIMER_TAB_TEXT, COL_TIMER_TAB_BACKGROUND, COL_TITLE, + COL_TIMER_TAB_TEXT, COL_TIMER_TAB_BACKGROUND, COL_TITLE, COL_BUTTON_OFF, COL_LAST }; const char kWebColors[] PROGMEM = @@ -517,7 +520,7 @@ const char kWebColors[] PROGMEM = COLOR_INPUT_TEXT "|" COLOR_INPUT "|" COLOR_CONSOLE_TEXT "|" COLOR_CONSOLE "|" 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_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 diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h index 78cccdb21..c7f0d2d3f 100644 --- a/tasmota/include/tasmota_version.h +++ b/tasmota/include/tasmota_version.h @@ -22,6 +22,6 @@ #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_ diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index c28e33ca3..d6822db2f 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -190,7 +190,7 @@ // -- 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 // 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_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_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark gray #define COLOR_TITLE_TEXT "#000" // [WebColor19] Title text color - Whiteish +#define COLOR_BUTTON_OFF "#08405e" // [WebColor20] Button color when off - Darkest blueish */ // 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_BACKGROUND "#252525" // [WebColor2] Global background color - Very dark gray (mostly black) #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_BACKGROUND "#999" // [WebColor18] Config timer tab background color - Dark 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 ----------------------------------------- #define KNX_ENABLED false // [Knx_Enabled] Enable KNX protocol diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino index 09376bb05..db5aa35c2 100644 --- a/tasmota/tasmota_support/settings.ino +++ b/tasmota/tasmota_support/settings.ino @@ -1843,6 +1843,10 @@ void SettingsDelta(void) { if (Settings->version < 0x0E030004) { // 14.3.0.4 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; SettingsSave(1); diff --git a/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino b/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino index c2a330269..83d70475c 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino @@ -1519,7 +1519,7 @@ void HandleRoot(void) { #endif // USE_SONOFF_IFAN 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("")); @@ -1693,7 +1693,7 @@ bool HandleRootStatusRefresh(void) #endif // USE_SONOFF_IFAN 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) { // 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) - // {"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); JsonParserObject root = parser.getRootObject(); diff --git a/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino b/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino index d56f22e4e..252b6048e 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_75_dali.ino @@ -1247,7 +1247,7 @@ void DaliWebAddMainSlider(void) { Dali->web_dimmer[i] = Dali->dimmer[i]; WSContentSend_P(HTTP_MSG_SLIDER_DALI, // Brightness - Black to White i, // k75 - WebColor((Dali->power[i]) ? COL_BUTTON : COL_FORM), + WebColor((Dali->power[i]) ? COL_BUTTON : COL_BUTTON_OFF), i, // k75= (0==i)?"B":"G", // B (Broadcast) or G1 to G16 (Group) (0==i)?"":itoa(i, number, 10), @@ -1296,7 +1296,7 @@ void DaliShow(bool json) { 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 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 (0 == Dali->slider_update_time) { Dali->slider_update_time = slider_update_time + Settings->web_refresh; // Allow other users to sync screen