mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Correctly invert the float output state (#2368)
This commit is contained in:
		| @@ -31,14 +31,13 @@ void FloatOutput::set_level(float state) { | |||||||
|     this->power_.unrequest(); |     this->power_.unrequest(); | ||||||
|   } |   } | ||||||
| #endif | #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()) |   if (this->is_inverted()) | ||||||
|     state = 1.0f - state; |     state = 1.0f - state; | ||||||
|   if (state == 0.0f && this->zero_means_zero_) {  // regardless of min_power_, 0.0 means off |   this->write_state(state); | ||||||
|     this->write_state(state); |  | ||||||
|     return; |  | ||||||
|   } |  | ||||||
|   float adjusted_value = (state * (this->max_power_ - this->min_power_)) + this->min_power_; |  | ||||||
|   this->write_state(adjusted_value); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void FloatOutput::write_state(bool state) { this->set_level(state != this->inverted_ ? 1.0f : 0.0f); } | void FloatOutput::write_state(bool state) { this->set_level(state != this->inverted_ ? 1.0f : 0.0f); } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user