diff --git a/homeassistant/components/sensor/min_max.py b/homeassistant/components/sensor/min_max.py index 08087f9a1e3..ad41882199c 100644 --- a/homeassistant/components/sensor/min_max.py +++ b/homeassistant/components/sensor/min_max.py @@ -34,6 +34,7 @@ ATTR_TO_PROPERTY = [ CONF_ENTITY_IDS = 'entity_ids' CONF_ROUND_DIGITS = 'round_digits' CONF_ICON = 'icon' +CONF_ID = 'id' DEFAULT_ICON = 'mdi:calculator' @@ -47,6 +48,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_TYPE, default=SENSOR_TYPES[ATTR_MAX_VALUE]): vol.All(cv.string, vol.In(SENSOR_TYPES.values())), vol.Optional(CONF_NAME): cv.string, + vol.Optional(CONF_ID): cv.string, vol.Required(CONF_ENTITY_IDS): cv.entity_ids, vol.Optional(CONF_ROUND_DIGITS, default=2): vol.Coerce(int), vol.Optional(CONF_ICON, default=DEFAULT_ICON): cv.string, @@ -58,12 +60,13 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): """Set up the min/max/mean sensor.""" entity_ids = config.get(CONF_ENTITY_IDS) name = config.get(CONF_NAME) + eid = config.get(CONF_ID) sensor_type = config.get(CONF_TYPE) round_digits = config.get(CONF_ROUND_DIGITS) icon = config.get(CONF_ICON) async_add_devices( - [MinMaxSensor(hass, entity_ids, name, sensor_type, round_digits, + [MinMaxSensor(hass, entity_ids, name, eid, sensor_type, round_digits, icon)], True) return True @@ -105,10 +108,11 @@ def calc_mean(sensor_values, round_digits): class MinMaxSensor(Entity): """Representation of a min/max sensor.""" - def __init__(self, hass, entity_ids, name, sensor_type, round_digits, + def __init__(self, hass, entity_ids, name, eid, sensor_type, round_digits, icon): """Initialize the min/max sensor.""" self._hass = hass + self.entity_id = eid self._entity_ids = entity_ids self._sensor_type = sensor_type self._round_digits = round_digits diff --git a/tests/components/sensor/test_min_max.py b/tests/components/sensor/test_min_max.py index a6d6a5adc68..29c89e17514 100644 --- a/tests/components/sensor/test_min_max.py +++ b/tests/components/sensor/test_min_max.py @@ -260,3 +260,25 @@ class TestMinMaxSensor(unittest.TestCase): self.assertEqual(STATE_UNKNOWN, state.state) self.assertEqual('ERR', state.attributes.get('unit_of_measurement')) + + def test_set_entity_id(self): + """Test for setting entity id.""" + config = { + 'sensor': { + 'platform': 'min_max', + 'name': 'test', + 'id': 'sensor.customid', + 'type': 'mean', + 'entity_ids': [ + 'sensor.test_1', + 'sensor.test_2', + 'sensor.test_3', + ] + } + } + + assert 'sensor.customid' not in self.hass.states.entity_ids() + + assert setup_component(self.hass, 'sensor', config) + + assert 'sensor.customid' in self.hass.states.entity_ids()