mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 19:56:30 +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_COLORTEMPERATURE "CT"
|
||||||
#define D_CMND_DIMMER "Dimmer"
|
#define D_CMND_DIMMER "Dimmer"
|
||||||
#define D_CMND_DIMMER_RANGE "DimmerRange"
|
#define D_CMND_DIMMER_RANGE "DimmerRange"
|
||||||
|
#define D_CMND_DIMMER_STEP "DimmerStep"
|
||||||
#define D_CMND_HSBCOLOR "HSBColor"
|
#define D_CMND_HSBCOLOR "HSBColor"
|
||||||
#define D_CMND_LED "Led"
|
#define D_CMND_LED "Led"
|
||||||
#define D_CMND_LEDTABLE "LedTable"
|
#define D_CMND_LEDTABLE "LedTable"
|
||||||
|
@ -635,8 +635,9 @@ struct {
|
|||||||
uint8_t shutter_mode; // F43
|
uint8_t shutter_mode; // F43
|
||||||
uint16_t energy_power_delta[3]; // F44
|
uint16_t energy_power_delta[3]; // F44
|
||||||
uint16_t shutter_pwmrange[2][MAX_SHUTTERS]; // F4A
|
uint16_t shutter_pwmrange[2][MAX_SHUTTERS]; // F4A
|
||||||
|
uint8_t dimmer_step; // F5A
|
||||||
uint8_t free_f5a[89]; // F5A Decrement if adding new Setting variables just above and below
|
|
||||||
|
uint8_t free_f5b[88]; // F5B - Decrement if adding new Setting variables just above and below
|
||||||
|
|
||||||
// Only 32 bit boundary variables below
|
// Only 32 bit boundary variables below
|
||||||
SysBitfield5 flag5; // FB4
|
SysBitfield5 flag5; // FB4
|
||||||
|
@ -1015,6 +1015,8 @@ void SettingsDefaultSet2(void)
|
|||||||
Settings.dimmer_hw_max = DEFAULT_DIMMER_MAX;
|
Settings.dimmer_hw_max = DEFAULT_DIMMER_MAX;
|
||||||
Settings.dimmer_hw_min = DEFAULT_DIMMER_MIN;
|
Settings.dimmer_hw_min = DEFAULT_DIMMER_MIN;
|
||||||
|
|
||||||
|
Settings.dimmer_step = DEFAULT_DIMMER_STEP;
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
// Settings.display_model = 0;
|
// Settings.display_model = 0;
|
||||||
Settings.display_mode = 1;
|
Settings.display_mode = 1;
|
||||||
|
@ -219,6 +219,9 @@ String EthernetMacAddress(void);
|
|||||||
#ifndef DEFAULT_DIMMER_MIN
|
#ifndef DEFAULT_DIMMER_MIN
|
||||||
#define DEFAULT_DIMMER_MIN 0
|
#define DEFAULT_DIMMER_MIN 0
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef DEFAULT_DIMMER_STEP
|
||||||
|
#define DEFAULT_DIMMER_STEP 10
|
||||||
|
#endif
|
||||||
#ifndef DEFAULT_LIGHT_DIMMER
|
#ifndef DEFAULT_LIGHT_DIMMER
|
||||||
#define DEFAULT_LIGHT_DIMMER 10
|
#define DEFAULT_LIGHT_DIMMER 10
|
||||||
#endif
|
#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 uint8_t LIGHT_COLOR_SIZE = 25; // Char array scolor size
|
||||||
|
|
||||||
const char kLightCommands[] PROGMEM = "|" // No prefix
|
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_RGBWWTABLE "|" D_CMND_SCHEME "|" D_CMND_SPEED "|" D_CMND_WAKEUP "|" D_CMND_WAKEUPDURATION "|"
|
||||||
D_CMND_WHITE "|" D_CMND_CHANNEL "|" D_CMND_HSBCOLOR
|
D_CMND_WHITE "|" D_CMND_CHANNEL "|" D_CMND_HSBCOLOR
|
||||||
#ifdef USE_LIGHT_PALETTE
|
#ifdef USE_LIGHT_PALETTE
|
||||||
@ -141,7 +141,7 @@ const char kLightCommands[] PROGMEM = "|" // No prefix
|
|||||||
"|UNDOCA" ;
|
"|UNDOCA" ;
|
||||||
|
|
||||||
void (* const LightCommand[])(void) PROGMEM = {
|
void (* const LightCommand[])(void) PROGMEM = {
|
||||||
&CmndColor, &CmndColorTemperature, &CmndDimmer, &CmndDimmerRange, &CmndLedTable, &CmndFade,
|
&CmndColor, &CmndColorTemperature, &CmndDimmer, &CmndDimmerRange, &CmndDimmerStep, &CmndLedTable, &CmndFade,
|
||||||
&CmndRgbwwTable, &CmndScheme, &CmndSpeed, &CmndWakeup, &CmndWakeupDuration,
|
&CmndRgbwwTable, &CmndScheme, &CmndSpeed, &CmndWakeup, &CmndWakeupDuration,
|
||||||
&CmndWhite, &CmndChannel, &CmndHsbColor,
|
&CmndWhite, &CmndChannel, &CmndHsbColor,
|
||||||
#ifdef USE_LIGHT_PALETTE
|
#ifdef USE_LIGHT_PALETTE
|
||||||
@ -2832,8 +2832,8 @@ void CmndDimmer(void)
|
|||||||
// Dimmer1 0..100 - Change RGB Dimmer
|
// Dimmer1 0..100 - Change RGB Dimmer
|
||||||
// Dimmer2 0..100 - Change W(W) Dimmer
|
// Dimmer2 0..100 - Change W(W) Dimmer
|
||||||
// Dimmer3 0..100 - Change both RGB and W(W) Dimmers with no fading
|
// Dimmer3 0..100 - Change both RGB and W(W) Dimmers with no fading
|
||||||
// Dimmer<x> + - Incerement Dimmer in steps of 10
|
// Dimmer<x> + - Incerement Dimmer in steps of DimmerStep
|
||||||
// Dimmer<x> - - Decrement Dimmer in steps of 10
|
// Dimmer<x> - - Decrement Dimmer in steps of DimmerStep
|
||||||
uint32_t dimmer;
|
uint32_t dimmer;
|
||||||
if (XdrvMailbox.index == 3) {
|
if (XdrvMailbox.index == 3) {
|
||||||
TasmotaGlobal.skip_light_fade = true;
|
TasmotaGlobal.skip_light_fade = true;
|
||||||
@ -2851,9 +2851,9 @@ void CmndDimmer(void)
|
|||||||
// Handle +/- special command
|
// Handle +/- special command
|
||||||
if (1 == XdrvMailbox.data_len) {
|
if (1 == XdrvMailbox.data_len) {
|
||||||
if ('+' == XdrvMailbox.data[0]) {
|
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]) {
|
} 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
|
// 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);
|
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)
|
void CmndLedTable(void)
|
||||||
{
|
{
|
||||||
// LedTable - Show current LedTable state
|
// LedTable - Show current LedTable state
|
||||||
|
Loading…
x
Reference in New Issue
Block a user