mirror of
https://github.com/esphome/esphome.git
synced 2024-11-10 09:17:46 +01:00
Fix strobe/flicker effect not using selected value (#749)
Fixes https://github.com/esphome/issues/issues/562
This commit is contained in:
parent
996c50e8f2
commit
aae633277f
2 changed files with 8 additions and 5 deletions
|
@ -24,9 +24,12 @@ void LightState::start_flash_(const LightColorValues &target, uint32_t length) {
|
||||||
|
|
||||||
LightState::LightState(const std::string &name, LightOutput *output) : Nameable(name), output_(output) {}
|
LightState::LightState(const std::string &name, LightOutput *output) : Nameable(name), output_(output) {}
|
||||||
|
|
||||||
void LightState::set_immediately_(const LightColorValues &target) {
|
void LightState::set_immediately_(const LightColorValues &target, bool set_remote_values) {
|
||||||
this->transformer_ = nullptr;
|
this->transformer_ = nullptr;
|
||||||
this->current_values = this->remote_values = target;
|
this->current_values = target;
|
||||||
|
if (set_remote_values) {
|
||||||
|
this->remote_values = target;
|
||||||
|
}
|
||||||
this->next_write_ = true;
|
this->next_write_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,10 +330,10 @@ void LightCall::perform() {
|
||||||
|
|
||||||
// Also set light color values when starting an effect
|
// Also set light color values when starting an effect
|
||||||
// For example to turn off the light
|
// For example to turn off the light
|
||||||
this->parent_->set_immediately_(v);
|
this->parent_->set_immediately_(v, true);
|
||||||
} else {
|
} else {
|
||||||
// INSTANT CHANGE
|
// INSTANT CHANGE
|
||||||
this->parent_->set_immediately_(v);
|
this->parent_->set_immediately_(v, this->publish_);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->publish_) {
|
if (this->publish_) {
|
||||||
|
|
|
@ -291,7 +291,7 @@ class LightState : public Nameable, public Component {
|
||||||
void start_flash_(const LightColorValues &target, uint32_t length);
|
void start_flash_(const LightColorValues &target, uint32_t length);
|
||||||
|
|
||||||
/// Internal method to set the color values to target immediately (with no transition).
|
/// Internal method to set the color values to target immediately (with no transition).
|
||||||
void set_immediately_(const LightColorValues &target);
|
void set_immediately_(const LightColorValues &target, bool set_remote_values);
|
||||||
|
|
||||||
/// Internal method to start a transformer.
|
/// Internal method to start a transformer.
|
||||||
void set_transformer_(std::unique_ptr<LightTransformer> transformer);
|
void set_transformer_(std::unique_ptr<LightTransformer> transformer);
|
||||||
|
|
Loading…
Reference in a new issue