mirror of https://github.com/arendst/Tasmota.git
Fix berry scheme select
This commit is contained in:
parent
7f8f75d196
commit
d91e1e8bcc
|
@ -236,6 +236,7 @@ struct LIGHT {
|
|||
uint8_t fixed_color_index = 1;
|
||||
uint8_t pwm_offset = 0; // Offset in color buffer, used by sm16716 to drive itself RGB, and PWM for CCT (value is 0 or 3)
|
||||
uint8_t max_scheme = LS_MAX -1;
|
||||
uint8_t last_scheme;
|
||||
|
||||
uint32_t wakeup_start_time = 0;
|
||||
|
||||
|
@ -246,7 +247,7 @@ struct LIGHT {
|
|||
bool fade_initialized = false; // dont't fade at startup
|
||||
bool fade_running = false;
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
uint8_t last_scheme = 0;
|
||||
uint8_t last_dgr_scheme = 0;
|
||||
bool devgrp_no_channels_out = false; // don't share channels with device group (e.g. if scheme set by other device)
|
||||
#ifdef USE_DGR_LIGHT_SEQUENCE
|
||||
uint8_t sequence_offset = 0; // number of channel changes this light is behind the master
|
||||
|
@ -1871,12 +1872,14 @@ void LightAnimate(void)
|
|||
}
|
||||
|
||||
#ifdef USE_DEVICE_GROUPS
|
||||
if (Settings->light_scheme != Light.last_scheme) {
|
||||
Light.last_scheme = Settings->light_scheme;
|
||||
if (Settings->light_scheme != Light.last_dgr_scheme) {
|
||||
Light.last_dgr_scheme = Settings->light_scheme;
|
||||
SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_SCHEME, Settings->light_scheme);
|
||||
Light.devgrp_no_channels_out = false;
|
||||
}
|
||||
#endif // USE_DEVICE_GROUPS
|
||||
|
||||
Light.last_scheme = Settings->light_scheme;
|
||||
}
|
||||
|
||||
if ((Settings->light_scheme < LS_MAX) || power_off) { // exclude WS281X Neopixel schemes
|
||||
|
@ -2486,7 +2489,7 @@ void LightHandleDevGroupItem(void)
|
|||
break;
|
||||
case DGR_ITEM_LIGHT_SCHEME:
|
||||
if (Settings->light_scheme != value) {
|
||||
Light.last_scheme = Settings->light_scheme = value;
|
||||
Light.last_dgr_scheme = Settings->light_scheme = value;
|
||||
Light.devgrp_no_channels_out = (value != 0);
|
||||
send_state = true;
|
||||
}
|
||||
|
|
|
@ -197,7 +197,6 @@ struct WS2812 {
|
|||
uint8_t show_next = 1;
|
||||
uint8_t scheme_offset = 0;
|
||||
bool suspend_update = false;
|
||||
bool scheme9;
|
||||
} Ws2812;
|
||||
|
||||
/********************************************************************************************/
|
||||
|
@ -640,9 +639,6 @@ void Ws2812ShowScheme(void)
|
|||
{
|
||||
uint32_t scheme = Settings->light_scheme - Ws2812.scheme_offset;
|
||||
|
||||
if (scheme != 9) {
|
||||
Ws2812.scheme9 = 0;
|
||||
}
|
||||
#ifdef USE_NETWORK_LIGHT_SCHEMES
|
||||
if ((scheme != 10) && (ddp_udp_up)) {
|
||||
ddp_udp.stop();
|
||||
|
@ -658,9 +654,8 @@ void Ws2812ShowScheme(void)
|
|||
}
|
||||
break;
|
||||
case 9: // Clear
|
||||
if (!Ws2812.scheme9) {
|
||||
if (Settings->light_scheme != Light.last_scheme) {
|
||||
Ws2812Clear();
|
||||
Ws2812.scheme9 = 1;
|
||||
}
|
||||
break;
|
||||
#ifdef USE_NETWORK_LIGHT_SCHEMES
|
||||
|
|
Loading…
Reference in New Issue