[opentherm] Support power scaling disabled (#17183)

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
This commit is contained in:
Geoffrey Frogeye
2026-06-29 20:29:44 +12:00
committed by Jesse Hills
co-authored by pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
parent 2ec24505d0
commit 94ccddf176
@@ -7,9 +7,13 @@ static const char *const TAG = "opentherm.output";
void opentherm::OpenthermOutput::write_state(float state) {
ESP_LOGD(TAG, "Received state: %.2f. Min value: %.2f, max value: %.2f", state, min_value_, max_value_);
this->state = state < 0.003 && this->zero_means_zero_
? 0.0
: clamp(std::lerp(min_value_, max_value_, state), min_value_, max_value_);
#ifdef USE_OUTPUT_FLOAT_POWER_SCALING
bool zero_means_zero = this->zero_means_zero_;
#else
bool zero_means_zero = false;
#endif
this->state =
state < 0.003 && zero_means_zero ? 0.0 : clamp(std::lerp(min_value_, max_value_, state), min_value_, max_value_);
this->has_state_ = true;
ESP_LOGD(TAG, "Output %s set to %.2f", this->id_, this->state);
}