Merge branch 'development' into pre-release-9.1.0

This commit is contained in:
Theo Arends 2020-11-05 10:01:38 +01:00
commit b369e87385
8 changed files with 44 additions and 12 deletions

2
.gitignore vendored
View File

@ -14,7 +14,7 @@ build
build_output
firmware.map
firmware.asm
tasmota.ino.cpp
tasmota/tasmota.ino.cpp
tasmota*.bin
tasmota*.bin.gz
tasmota*.map

View File

@ -23,6 +23,7 @@ All notable changes to this project will be documented in this file.
- Command ``Gpios 255`` to show all possible GPIO configurations
- Command ``SwitchText`` to change JSON switch names by barbudor (#9691)
- Command ``SetOption114 1`` to detach Switches from Relays and enable MQTT action state for all the SwitchModes returning `{"Switch1":{"Action":"ON"}}`
- Command ``DimmerStep 1..50`` to change default dimmer up and down step of 10% by James Turton (#9733)
- HM10 Beacon support and refactoring by Christian Baars (#9702)
- Support for Hass discovery of TuyaMcu and Sonoff Ifan by Federico Leoni (#9727)
- Initial support for iBeacons (Sensor52) on ESP32 using internal BLE by rvbglas (#9732)
@ -40,6 +41,9 @@ All notable changes to this project will be documented in this file.
- Rule handling of JSON ``null`` regression from v8.5.0.1 (#9685)
- Arilux RF remote detection regression from v8.3.0
### Removed
- Auto output selection of decimal or hexadecimal data based on user input. Now only based on ``SetOption17``
## [9.0.0.2] - 20201025
### Added
- Support for Vietnamese language translations by Tâm.NT

View File

@ -59,6 +59,7 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
## Changelog v9.1.0 Imogen
### Added
- Command ``DimmerStep 1..50`` to change default dimmer up and down step of 10% by James Turton (#9733)
- Command ``Gpios 255`` to show all possible GPIO configurations
- Command ``NoDelay`` for immediate backlog command execution by Erik Montnemery (#9544)
- Command ``ShutterChange`` to increment change position (#9594)
@ -133,3 +134,4 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
- Support for direct upgrade from Tasmota versions before v7.0
- Support for downgrade to versions before 9.0 keeping current GPIO configuration
- Auto config update for all Friendlynames and Switchtopic from Tasmota versions before v8.0
- Auto output selection of decimal or hexadecimal data based on user input. Now only based on ``SetOption17``

View File

@ -421,6 +421,7 @@
#define D_CMND_COLORTEMPERATURE "CT"
#define D_CMND_DIMMER "Dimmer"
#define D_CMND_DIMMER_RANGE "DimmerRange"
#define D_CMND_DIMMER_STEP "DimmerStep"
#define D_CMND_HSBCOLOR "HSBColor"
#define D_CMND_LED "Led"
#define D_CMND_LEDTABLE "LedTable"

View File

@ -635,8 +635,9 @@ struct {
uint8_t shutter_mode; // F43
uint16_t energy_power_delta[3]; // F44
uint16_t shutter_pwmrange[2][MAX_SHUTTERS]; // F4A
uint8_t free_f5a[89]; // F5A Decrement if adding new Setting variables just above and below
uint8_t dimmer_step; // F5A
uint8_t free_f5b[88]; // F5B - Decrement if adding new Setting variables just above and below
// Only 32 bit boundary variables below
SysBitfield5 flag5; // FB4

View File

@ -1015,6 +1015,8 @@ void SettingsDefaultSet2(void)
Settings.dimmer_hw_max = DEFAULT_DIMMER_MAX;
Settings.dimmer_hw_min = DEFAULT_DIMMER_MIN;
Settings.dimmer_step = DEFAULT_DIMMER_STEP;
// Display
// Settings.display_model = 0;
Settings.display_mode = 1;

View File

@ -219,6 +219,9 @@ String EthernetMacAddress(void);
#ifndef DEFAULT_DIMMER_MIN
#define DEFAULT_DIMMER_MIN 0
#endif
#ifndef DEFAULT_DIMMER_STEP
#define DEFAULT_DIMMER_STEP 10
#endif
#ifndef DEFAULT_LIGHT_DIMMER
#define DEFAULT_LIGHT_DIMMER 10
#endif

View File

@ -129,7 +129,7 @@ enum LightSchemes { LS_POWER, LS_WAKEUP, LS_CYCLEUP, LS_CYCLEDN, LS_RANDOM, LS_M
const uint8_t LIGHT_COLOR_SIZE = 25; // Char array scolor size
const char kLightCommands[] PROGMEM = "|" // No prefix
D_CMND_COLOR "|" D_CMND_COLORTEMPERATURE "|" D_CMND_DIMMER "|" D_CMND_DIMMER_RANGE "|" D_CMND_LEDTABLE "|" D_CMND_FADE "|"
D_CMND_COLOR "|" D_CMND_COLORTEMPERATURE "|" D_CMND_DIMMER "|" D_CMND_DIMMER_RANGE "|" D_CMND_DIMMER_STEP "|" D_CMND_LEDTABLE "|" D_CMND_FADE "|"
D_CMND_RGBWWTABLE "|" D_CMND_SCHEME "|" D_CMND_SPEED "|" D_CMND_WAKEUP "|" D_CMND_WAKEUPDURATION "|"
D_CMND_WHITE "|" D_CMND_CHANNEL "|" D_CMND_HSBCOLOR
#ifdef USE_LIGHT_PALETTE
@ -141,7 +141,7 @@ const char kLightCommands[] PROGMEM = "|" // No prefix
"|UNDOCA" ;
void (* const LightCommand[])(void) PROGMEM = {
&CmndColor, &CmndColorTemperature, &CmndDimmer, &CmndDimmerRange, &CmndLedTable, &CmndFade,
&CmndColor, &CmndColorTemperature, &CmndDimmer, &CmndDimmerRange, &CmndDimmerStep, &CmndLedTable, &CmndFade,
&CmndRgbwwTable, &CmndScheme, &CmndSpeed, &CmndWakeup, &CmndWakeupDuration,
&CmndWhite, &CmndChannel, &CmndHsbColor,
#ifdef USE_LIGHT_PALETTE
@ -2556,9 +2556,12 @@ bool LightColorEntry(char *buffer, uint32_t buffer_length)
entry_type = 1; // Hexadecimal
}
}
if (entry_type) {
Settings.flag.decimal_text = entry_type -1; // SetOption17 - Switch between decimal or hexadecimal output
}
// Too much magic so removed since 9.0.0.3
// if (entry_type) {
// Settings.flag.decimal_text = entry_type -1; // SetOption17 - Switch between decimal or hexadecimal output
// }
return (entry_type);
}
@ -2829,8 +2832,8 @@ void CmndDimmer(void)
// Dimmer1 0..100 - Change RGB Dimmer
// Dimmer2 0..100 - Change W(W) Dimmer
// Dimmer3 0..100 - Change both RGB and W(W) Dimmers with no fading
// Dimmer<x> + - Incerement Dimmer in steps of 10
// Dimmer<x> - - Decrement Dimmer in steps of 10
// Dimmer<x> + - Incerement Dimmer in steps of DimmerStep
// Dimmer<x> - - Decrement Dimmer in steps of DimmerStep
uint32_t dimmer;
if (XdrvMailbox.index == 3) {
TasmotaGlobal.skip_light_fade = true;
@ -2848,9 +2851,9 @@ void CmndDimmer(void)
// Handle +/- special command
if (1 == XdrvMailbox.data_len) {
if ('+' == XdrvMailbox.data[0]) {
XdrvMailbox.payload = (dimmer > 89) ? 100 : dimmer + 10;
XdrvMailbox.payload = (dimmer > (100 - Settings.dimmer_step - 1)) ? 100 : dimmer + Settings.dimmer_step;
} else if ('-' == XdrvMailbox.data[0]) {
XdrvMailbox.payload = (dimmer < 11) ? 1 : dimmer - 10;
XdrvMailbox.payload = (dimmer < (Settings.dimmer_step + 1)) ? 1 : dimmer - Settings.dimmer_step;
}
}
// If value is ok, change it, otherwise report old value
@ -2907,6 +2910,22 @@ void CmndDimmerRange(void)
Response_P(PSTR("{\"" D_CMND_DIMMER_RANGE "\":{\"Min\":%d,\"Max\":%d}}"), Settings.dimmer_hw_min, Settings.dimmer_hw_max);
}
void CmndDimmerStep(void)
{
// DimmerStep - Show current dimmer step as used by Dimmer +/-
// DimmerStep 1..50 - Set dimmer step
if (XdrvMailbox.data_len > 0) {
if (XdrvMailbox.payload < 1) {
Settings.dimmer_step = 1;
} else if (XdrvMailbox.payload > 50) {
Settings.dimmer_step = 50;
} else {
Settings.dimmer_step = XdrvMailbox.payload;
}
}
ResponseCmndNumber(Settings.dimmer_step);
}
void CmndLedTable(void)
{
// LedTable - Show current LedTable state