mirror of https://github.com/arendst/Tasmota.git
Add DGR CW/RGBW light fixed color support
This commit is contained in:
parent
485cc5d03e
commit
f4894226f7
|
@ -2400,7 +2400,7 @@ void LightHandleDevGroupItem(void)
|
|||
send_state = true;
|
||||
break;
|
||||
case DGR_ITEM_LIGHT_FIXED_COLOR:
|
||||
if (Light.subtype >= LST_RGBW) {
|
||||
if (Light.subtype >= LST_COLDWARM) {
|
||||
send_state = true;
|
||||
#ifdef USE_LIGHT_PALETTE
|
||||
if (Light.palette_count) {
|
||||
|
@ -2409,8 +2409,19 @@ void LightHandleDevGroupItem(void)
|
|||
break;
|
||||
}
|
||||
#endif // !USE_LIGHT_PALETTE
|
||||
value = value % MAX_FIXED_COLOR + 1;
|
||||
if (value) {
|
||||
if (Light.subtype <= LST_COLDWARM) {
|
||||
value = value % (MAX_FIXED_COLD_WARM - 1) + 201;
|
||||
}
|
||||
else {
|
||||
uint32_t max = MAX_FIXED_COLOR;
|
||||
if (Light.subtype >= LST_RGB) {
|
||||
max++;
|
||||
if (Light.subtype >= LST_RGBCW) max += (MAX_FIXED_COLD_WARM - 2);
|
||||
}
|
||||
value = value % max + 1;
|
||||
if (value > MAX_FIXED_COLOR) value += 200 - MAX_FIXED_COLOR;
|
||||
}
|
||||
Light.fixed_color_index = value;
|
||||
bool save_decimal_text = Settings.flag.decimal_text;
|
||||
char str[16];
|
||||
LightColorEntry(str, sprintf_P(str, PSTR("%u"), value));
|
||||
|
@ -2420,10 +2431,6 @@ void LightHandleDevGroupItem(void)
|
|||
light_controller.changeBri(old_bri);
|
||||
Settings.light_scheme = 0;
|
||||
Light.devgrp_no_channels_out = false;
|
||||
}
|
||||
else {
|
||||
light_state.setColorMode(LCM_CT);
|
||||
}
|
||||
if (!restore_power && !Light.power) {
|
||||
Light.old_power = Light.power;
|
||||
Light.power = 0xff;
|
||||
|
|
|
@ -204,10 +204,15 @@ void PWMDimmerHandleDevGroupItem(void)
|
|||
remote_pwm_dimmer->power_button_increases_bri = (remote_pwm_dimmer->bri < 128);
|
||||
}
|
||||
break;
|
||||
case DGR_ITEM_LIGHT_FIXED_COLOR:
|
||||
if (!device_is_local) remote_pwm_dimmer->fixed_color_index = value;
|
||||
break;
|
||||
#endif // USE_PWM_DIMMER_REMOTE
|
||||
case DGR_ITEM_LIGHT_FIXED_COLOR:
|
||||
#ifdef USE_PWM_DIMMER_REMOTE
|
||||
if (!device_is_local)
|
||||
remote_pwm_dimmer->fixed_color_index = value;
|
||||
else
|
||||
#endif // USE_PWM_DIMMER_REMOTE
|
||||
local_fixed_color_index = value;
|
||||
break;
|
||||
case DGR_ITEM_BRI_POWER_ON:
|
||||
#ifdef USE_PWM_DIMMER_REMOTE
|
||||
if (!device_is_local)
|
||||
|
|
Loading…
Reference in New Issue