1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-04 04:12:23 +01:00

Correctly invert the float output state (#2368)

This commit is contained in:
Jesse Hills
2021-09-22 22:59:03 +12:00
committed by GitHub
parent 8e36e1b92e
commit 654e31124e

View File

@@ -31,14 +31,13 @@ void FloatOutput::set_level(float state) {
this->power_.unrequest();
}
#endif
if (!(state == 0.0f && this->zero_means_zero_)) // regardless of min_power_, 0.0 means off
state = (state * (this->max_power_ - this->min_power_)) + this->min_power_;
if (this->is_inverted())
state = 1.0f - state;
if (state == 0.0f && this->zero_means_zero_) { // regardless of min_power_, 0.0 means off
this->write_state(state);
return;
}
float adjusted_value = (state * (this->max_power_ - this->min_power_)) + this->min_power_;
this->write_state(adjusted_value);
this->write_state(state);
}
void FloatOutput::write_state(bool state) { this->set_level(state != this->inverted_ ? 1.0f : 0.0f); }