diff --git a/homeassistant/components/filter/sensor.py b/homeassistant/components/filter/sensor.py index eeb0d32f51c..baa4f90af3f 100644 --- a/homeassistant/components/filter/sensor.py +++ b/homeassistant/components/filter/sensor.py @@ -324,7 +324,8 @@ class FilterState: def set_precision(self, precision): """Set precision of Number based states.""" if isinstance(self.state, Number): - self.state = round(float(self.state), precision) + value = round(float(self.state), precision) + self.state = int(value) if precision == 0 else value def __str__(self): """Return state as the string representation of FilterState.""" diff --git a/tests/components/filter/test_sensor.py b/tests/components/filter/test_sensor.py index 9ae4245ed70..d46fa4eab68 100644 --- a/tests/components/filter/test_sensor.py +++ b/tests/components/filter/test_sensor.py @@ -208,6 +208,13 @@ class TestFilterSensor(unittest.TestCase): filtered = filt.filter_state(state) assert 21 == filtered.state + def test_precision_zero(self): + """Test if precision of zero returns an integer.""" + filt = LowPassFilter(window_size=10, precision=0, entity=None, time_constant=10) + for state in self.values: + filtered = filt.filter_state(state) + assert isinstance(filtered.state, int) + def test_lowpass(self): """Test if lowpass filter works.""" filt = LowPassFilter(window_size=10, precision=2, entity=None, time_constant=10)