mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Merge pull request #9733 from jamesturton/dimmerstep
Add `DimmerStep` command
This commit is contained in:
commit
655a6ece9a
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
@ -2832,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;
|
||||
@ -2851,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
|
||||
@ -2910,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
|
||||
|
Loading…
x
Reference in New Issue
Block a user