From 7782e7e948ae6bdf322169fe0c8acaa143f7fcdc Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 26 Mar 2017 15:52:59 +0200 Subject: [PATCH] Add optional unit of measurement (#6796) --- homeassistant/components/sensor/random.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sensor/random.py b/homeassistant/components/sensor/random.py index 21251ab5f3b..0b0761d7076 100644 --- a/homeassistant/components/sensor/random.py +++ b/homeassistant/components/sensor/random.py @@ -11,7 +11,8 @@ import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.components.sensor import PLATFORM_SCHEMA -from homeassistant.const import (CONF_NAME, CONF_MINIMUM, CONF_MAXIMUM) +from homeassistant.const import ( + CONF_NAME, CONF_MINIMUM, CONF_MAXIMUM, CONF_UNIT_OF_MEASUREMENT) from homeassistant.helpers.entity import Entity _LOGGER = logging.getLogger(__name__) @@ -26,6 +27,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_MAXIMUM, default=DEFAULT_MAX): cv.positive_int, vol.Optional(CONF_MINIMUM, default=DEFAULT_MIN): cv.positive_int, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string, }) @@ -35,19 +37,21 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): name = config.get(CONF_NAME) minimum = config.get(CONF_MINIMUM) maximum = config.get(CONF_MAXIMUM) + unit = config.get(CONF_UNIT_OF_MEASUREMENT) - async_add_devices([RandomSensor(name, minimum, maximum)], True) + async_add_devices([RandomSensor(name, minimum, maximum, unit)], True) return True class RandomSensor(Entity): """Representation of a Random number sensor.""" - def __init__(self, name, minimum, maximum): + def __init__(self, name, minimum, maximum, unit_of_measurement): """Initialize the sensor.""" self._name = name self._minimum = minimum self._maximum = maximum + self._unit_of_measurement = unit_of_measurement self._state = None @property @@ -65,6 +69,11 @@ class RandomSensor(Entity): """Icon to use in the frontend, if any.""" return ICON + @property + def unit_of_measurement(self): + """Return the unit this state is expressed in.""" + return self._unit_of_measurement + @asyncio.coroutine def async_update(self): """Get a new number and updates the states."""