mirror of https://github.com/arendst/Tasmota.git
Merge pull request #9452 from pcdiem/pwm2
Add PWMDimmerPWMs command, Set brightness LEDs in setBriRGB & setBriCT
This commit is contained in:
commit
006859093f
|
@ -616,6 +616,7 @@
|
|||
// Commands xdrv_34_pwm_dimmer.ino
|
||||
#ifdef USE_PWM_DIMMER
|
||||
#define D_CMND_BRI_PRESET "BriPreset"
|
||||
#define D_CMND_PWM_DIMMER_PWMS "PWMDimmerPWMs"
|
||||
#endif
|
||||
|
||||
// Commands xdrv_38_ping.ino
|
||||
|
|
|
@ -277,6 +277,18 @@ typedef union {
|
|||
};
|
||||
} SensorCfg1;
|
||||
|
||||
typedef union {
|
||||
uint8_t data;
|
||||
struct {
|
||||
uint8_t pwm_count : 3; // Number of PWMs to use for light
|
||||
uint8_t spare3 : 1;
|
||||
uint8_t spare4 : 1;
|
||||
uint8_t spare5 : 1;
|
||||
uint8_t spare6 : 1;
|
||||
uint8_t spare7 : 1;
|
||||
};
|
||||
} PWMDimmerCfg;
|
||||
|
||||
typedef union {
|
||||
uint8_t data;
|
||||
struct {
|
||||
|
@ -589,7 +601,7 @@ struct {
|
|||
uint8_t sps30_inuse_hours; // F02
|
||||
uint8_t hotplug_scan; // F03
|
||||
uint8_t bri_power_on; // F04
|
||||
uint8_t bri_min; // F05
|
||||
PWMDimmerCfg pwm_dimmer_cfg; // F05
|
||||
uint8_t bri_preset_low; // F06
|
||||
uint8_t bri_preset_high; // F07
|
||||
int8_t hum_comp; // F08
|
||||
|
|
|
@ -564,9 +564,6 @@ class LightStateClass {
|
|||
#ifdef DEBUG_LIGHT
|
||||
AddLog_P2(LOG_LEVEL_DEBUG_MORE, "LightStateClass::setBri RGB raw (%d %d %d) HS (%d %d) bri (%d)", _r, _g, _b, _hue, _sat, _briRGB);
|
||||
#endif
|
||||
#ifdef USE_PWM_DIMMER
|
||||
if (PWM_DIMMER == my_module_type) PWMDimmerSetBrightnessLeds(0);
|
||||
#endif // USE_PWM_DIMMER
|
||||
}
|
||||
|
||||
// changes the RGB brightness alone
|
||||
|
@ -574,6 +571,9 @@ class LightStateClass {
|
|||
uint8_t prev_bri = _briRGB;
|
||||
_briRGB = bri_rgb;
|
||||
if (bri_rgb > 0) { addRGBMode(); }
|
||||
#ifdef USE_PWM_DIMMER
|
||||
if (PWM_DIMMER == my_module_type) PWMDimmerSetBrightnessLeds(0);
|
||||
#endif // USE_PWM_DIMMER
|
||||
return prev_bri;
|
||||
}
|
||||
|
||||
|
@ -582,6 +582,9 @@ class LightStateClass {
|
|||
uint8_t prev_bri = _briCT;
|
||||
_briCT = bri_ct;
|
||||
if (bri_ct > 0) { addCTMode(); }
|
||||
#ifdef USE_PWM_DIMMER
|
||||
if (PWM_DIMMER == my_module_type) PWMDimmerSetBrightnessLeds(0);
|
||||
#endif // USE_PWM_DIMMER
|
||||
return prev_bri;
|
||||
}
|
||||
|
||||
|
@ -1275,6 +1278,13 @@ bool LightModuleInit(void)
|
|||
light_type = LT_PWM2;
|
||||
}
|
||||
#endif // ESP8266
|
||||
#ifdef USE_PWM_DIMMER
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
else if (PWM_DIMMER == my_module_type) {
|
||||
light_type = Settings.pwm_dimmer_cfg.pwm_count + 1;
|
||||
}
|
||||
#endif // USE_DEVICE_GROUPS
|
||||
#endif // USE_PWM_DIMMER
|
||||
|
||||
if (light_type > LT_BASIC) {
|
||||
devices_present++;
|
||||
|
|
|
@ -33,10 +33,18 @@
|
|||
#define XDRV_35 35
|
||||
|
||||
const char kPWMDimmerCommands[] PROGMEM = "|" // No prefix
|
||||
D_CMND_BRI_PRESET;
|
||||
D_CMND_BRI_PRESET
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
"|" D_CMND_PWM_DIMMER_PWMS
|
||||
#endif // USE_DEVICE_GROUPS
|
||||
;
|
||||
|
||||
void (* const PWMDimmerCommand[])(void) PROGMEM = {
|
||||
&CmndBriPreset };
|
||||
&CmndBriPreset,
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
&CmndPWMDimmerPWMs,
|
||||
#endif // USE_DEVICE_GROUPS
|
||||
};
|
||||
|
||||
#ifdef USE_PWM_DIMMER_REMOTE
|
||||
struct remote_pwm_dimmer {
|
||||
|
@ -731,6 +739,17 @@ void CmndBriPreset(void)
|
|||
Response_P(PSTR("{\"" D_CMND_BRI_PRESET "\":{\"Low\":%d,\"High\":%d}}"), Settings.bri_preset_low, Settings.bri_preset_high);
|
||||
}
|
||||
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
void CmndPWMDimmerPWMs(void)
|
||||
{
|
||||
if (XdrvMailbox.data_len > 0 && XdrvMailbox.payload <= 5) {
|
||||
Settings.pwm_dimmer_cfg.pwm_count = XdrvMailbox.payload - 1;
|
||||
restart_flag = 2;
|
||||
}
|
||||
Response_P(PSTR("{\"" D_CMND_PWM_DIMMER_PWMS "\":%u}"), Settings.pwm_dimmer_cfg.pwm_count + 1);
|
||||
}
|
||||
#endif // USE_DEVICE_GROUPS
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue