diff --git a/homeassistant/components/input_slider.py b/homeassistant/components/input_slider.py index b667854e59c..66b41d15c0c 100644 --- a/homeassistant/components/input_slider.py +++ b/homeassistant/components/input_slider.py @@ -34,7 +34,7 @@ SERVICE_SELECT_VALUE = 'select_value' SERVICE_SELECT_VALUE_SCHEMA = vol.Schema({ vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, - vol.Required(ATTR_VALUE): vol.Coerce(int), + vol.Required(ATTR_VALUE): vol.Coerce(float), }) @@ -152,7 +152,7 @@ class InputSlider(Entity): def select_value(self, value): """Select new value.""" - num_value = int(value) + num_value = float(value) if num_value < self._minimum or num_value > self._maximum: _LOGGER.warning('Invalid value: %s (range %s - %s)', num_value, self._minimum, self._maximum) diff --git a/tests/components/test_input_slider.py b/tests/components/test_input_slider.py index f69553a21f7..3c13f797c42 100644 --- a/tests/components/test_input_slider.py +++ b/tests/components/test_input_slider.py @@ -49,16 +49,22 @@ class TestInputSlider(unittest.TestCase): entity_id = 'input_slider.test_1' state = self.hass.states.get(entity_id) - self.assertEqual('50', state.state) + self.assertEqual(50, float(state.state)) + + input_slider.select_value(self.hass, entity_id, '30.4') + self.hass.pool.block_till_done() + + state = self.hass.states.get(entity_id) + self.assertEqual(30.4, float(state.state)) input_slider.select_value(self.hass, entity_id, '70') self.hass.pool.block_till_done() state = self.hass.states.get(entity_id) - self.assertEqual('70', state.state) + self.assertEqual(70, float(state.state)) input_slider.select_value(self.hass, entity_id, '110') self.hass.pool.block_till_done() state = self.hass.states.get(entity_id) - self.assertEqual('70', state.state) + self.assertEqual(70, float(state.state))