Sensor filter_out rounded (#765)

Fixes https://github.com/esphome/issues/issues/741
This commit is contained in:
Otto Winter 2019-10-18 10:22:29 +02:00 committed by GitHub
parent 8292024306
commit ee0b6e835f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -166,7 +166,11 @@ optional<float> FilterOutValueFilter::new_value(float value) {
else
return value;
} else {
if (value == this->value_to_filter_out_)
int8_t accuracy = this->parent_->get_accuracy_decimals();
float accuracy_mult = pow10f(accuracy);
float rounded_filter_out = roundf(accuracy_mult * this->value_to_filter_out_);
float rounded_value = roundf(accuracy_mult * value);
if (rounded_filter_out == rounded_value)
return {};
else
return value;