From 6c8e0e20fbd0da03cc5a5d2561a94a4721367bf5 Mon Sep 17 00:00:00 2001 From: springstan <46536646+springstan@users.noreply.github.com> Date: Wed, 23 Sep 2020 20:48:01 +0200 Subject: [PATCH] Add and use light lux constant in entire code base (#40171) --- .../components/ambient_station/__init__.py | 3 ++- homeassistant/components/awair/const.py | 3 ++- homeassistant/components/bh1750/sensor.py | 5 ++--- homeassistant/components/deconz/sensor.py | 3 ++- homeassistant/components/fibaro/sensor.py | 5 +++-- homeassistant/components/homekit/accessories.py | 3 ++- .../components/homekit_controller/sensor.py | 5 ++--- homeassistant/components/homematic/sensor.py | 13 +++++++------ .../components/homematicip_cloud/sensor.py | 3 ++- homeassistant/components/hue/sensor.py | 3 ++- homeassistant/components/isy994/const.py | 3 ++- homeassistant/components/miflora/sensor.py | 3 ++- homeassistant/components/mysensors/sensor.py | 3 ++- homeassistant/components/onewire/sensor.py | 3 ++- homeassistant/components/plant/__init__.py | 3 ++- homeassistant/components/shelly/sensor.py | 3 ++- homeassistant/components/smartthings/sensor.py | 3 ++- homeassistant/components/tahoma/sensor.py | 4 ++-- homeassistant/components/tellduslive/sensor.py | 3 ++- homeassistant/components/vera/sensor.py | 4 ++-- homeassistant/components/xiaomi_aqara/sensor.py | 3 ++- homeassistant/components/xiaomi_miio/sensor.py | 3 ++- homeassistant/components/zha/sensor.py | 3 ++- homeassistant/const.py | 3 +++ tests/components/awair/test_sensor.py | 5 +++-- tests/components/homekit/test_get_accessories.py | 3 ++- tests/components/homematicip_cloud/test_sensor.py | 5 +++-- tests/components/plant/test_init.py | 7 ++++--- tests/components/vera/test_sensor.py | 4 ++-- tests/components/zha/test_sensor.py | 3 ++- 30 files changed, 71 insertions(+), 46 deletions(-) diff --git a/homeassistant/components/ambient_station/__init__.py b/homeassistant/components/ambient_station/__init__.py index 8658c3d04b9..68bfb85cf62 100644 --- a/homeassistant/components/ambient_station/__init__.py +++ b/homeassistant/components/ambient_station/__init__.py @@ -17,6 +17,7 @@ from homeassistant.const import ( CONF_API_KEY, DEGREE, EVENT_HOMEASSISTANT_STOP, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_INHG, @@ -214,7 +215,7 @@ SENSOR_TYPES = { TYPE_SENSOR, None, ), - TYPE_SOLARRADIATION_LX: ("Solar Rad (lx)", "lx", TYPE_SENSOR, "illuminance"), + TYPE_SOLARRADIATION_LX: ("Solar Rad (lx)", LIGHT_LUX, TYPE_SENSOR, "illuminance"), TYPE_TEMP10F: ("Temp 10", TEMP_FAHRENHEIT, TYPE_SENSOR, "temperature"), TYPE_TEMP1F: ("Temp 1", TEMP_FAHRENHEIT, TYPE_SENSOR, "temperature"), TYPE_TEMP2F: ("Temp 2", TEMP_FAHRENHEIT, TYPE_SENSOR, "temperature"), diff --git a/homeassistant/components/awair/const.py b/homeassistant/components/awair/const.py index e3c2a176119..b262fdec572 100644 --- a/homeassistant/components/awair/const.py +++ b/homeassistant/components/awair/const.py @@ -14,6 +14,7 @@ from homeassistant.const import ( DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, ) @@ -63,7 +64,7 @@ SENSOR_TYPES = { API_LUX: { ATTR_DEVICE_CLASS: DEVICE_CLASS_ILLUMINANCE, ATTR_ICON: None, - ATTR_UNIT: "lx", + ATTR_UNIT: LIGHT_LUX, ATTR_LABEL: "Illuminance", ATTR_UNIQUE_ID: "illuminance", }, diff --git a/homeassistant/components/bh1750/sensor.py b/homeassistant/components/bh1750/sensor.py index df8e87f751d..4d4067eb77d 100644 --- a/homeassistant/components/bh1750/sensor.py +++ b/homeassistant/components/bh1750/sensor.py @@ -7,7 +7,7 @@ import smbus # pylint: disable=import-error import voluptuous as vol from homeassistant.components.sensor import PLATFORM_SCHEMA -from homeassistant.const import CONF_NAME, DEVICE_CLASS_ILLUMINANCE +from homeassistant.const import CONF_NAME, DEVICE_CLASS_ILLUMINANCE, LIGHT_LUX import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import Entity @@ -37,7 +37,6 @@ OPERATION_MODES = { ONE_TIME_HIGH_RES_MODE_2: (0x21, False), # 0.5lx resolution. } -SENSOR_UNIT = "lx" DEFAULT_NAME = "BH1750 Light Sensor" DEFAULT_I2C_ADDRESS = "0x23" DEFAULT_I2C_BUS = 1 @@ -85,7 +84,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= _LOGGER.error("BH1750 sensor not detected at %s", i2c_address) return False - dev = [BH1750Sensor(sensor, name, SENSOR_UNIT, config[CONF_MULTIPLIER])] + dev = [BH1750Sensor(sensor, name, LIGHT_LUX, config[CONF_MULTIPLIER])] _LOGGER.info( "Setup of BH1750 light sensor at %s in mode %s is complete", i2c_address, diff --git a/homeassistant/components/deconz/sensor.py b/homeassistant/components/deconz/sensor.py index 0c9ecb032df..72465282421 100644 --- a/homeassistant/components/deconz/sensor.py +++ b/homeassistant/components/deconz/sensor.py @@ -22,6 +22,7 @@ from homeassistant.const import ( DEVICE_CLASS_PRESSURE, DEVICE_CLASS_TEMPERATURE, ENERGY_KILO_WATT_HOUR, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_HPA, @@ -59,7 +60,7 @@ ICON = { UNIT_OF_MEASUREMENT = { Consumption: ENERGY_KILO_WATT_HOUR, Humidity: PERCENTAGE, - LightLevel: "lx", + LightLevel: LIGHT_LUX, Power: POWER_WATT, Pressure: PRESSURE_HPA, Temperature: TEMP_CELSIUS, diff --git a/homeassistant/components/fibaro/sensor.py b/homeassistant/components/fibaro/sensor.py index e9e7265f917..3c812970022 100644 --- a/homeassistant/components/fibaro/sensor.py +++ b/homeassistant/components/fibaro/sensor.py @@ -7,6 +7,7 @@ from homeassistant.const import ( DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT, @@ -35,7 +36,7 @@ SENSOR_TYPES = { None, DEVICE_CLASS_HUMIDITY, ], - "com.fibaro.lightSensor": ["Light", "lx", None, DEVICE_CLASS_ILLUMINANCE], + "com.fibaro.lightSensor": ["Light", LIGHT_LUX, None, DEVICE_CLASS_ILLUMINANCE], } _LOGGER = logging.getLogger(__name__) @@ -71,7 +72,7 @@ class FibaroSensor(FibaroDevice, Entity): try: if not self._unit: if self.fibaro_device.properties.unit == "lux": - self._unit = "lx" + self._unit = LIGHT_LUX elif self.fibaro_device.properties.unit == "C": self._unit = TEMP_CELSIUS elif self.fibaro_device.properties.unit == "F": diff --git a/homeassistant/components/homekit/accessories.py b/homeassistant/components/homekit/accessories.py index 2fb61a61fed..3912d8e9056 100644 --- a/homeassistant/components/homekit/accessories.py +++ b/homeassistant/components/homekit/accessories.py @@ -24,6 +24,7 @@ from homeassistant.const import ( DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, STATE_ON, STATE_UNAVAILABLE, @@ -197,7 +198,7 @@ def get_accessory(hass, driver, state, aid, config): a_type = "CarbonMonoxideSensor" elif device_class == DEVICE_CLASS_CO2 or DEVICE_CLASS_CO2 in state.entity_id: a_type = "CarbonDioxideSensor" - elif device_class == DEVICE_CLASS_ILLUMINANCE or unit in ("lm", "lx"): + elif device_class == DEVICE_CLASS_ILLUMINANCE or unit in ("lm", LIGHT_LUX): a_type = "LightSensor" elif state.domain == "switch": diff --git a/homeassistant/components/homekit_controller/sensor.py b/homeassistant/components/homekit_controller/sensor.py index 944729d2e5c..2075eb9dcc3 100644 --- a/homeassistant/components/homekit_controller/sensor.py +++ b/homeassistant/components/homekit_controller/sensor.py @@ -7,6 +7,7 @@ from homeassistant.const import ( DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, ) @@ -19,8 +20,6 @@ TEMP_C_ICON = "mdi:thermometer" BRIGHTNESS_ICON = "mdi:brightness-6" CO2_ICON = "mdi:molecule-co2" -UNIT_LUX = "lux" - class HomeKitHumiditySensor(HomeKitEntity): """Representation of a Homekit humidity sensor.""" @@ -113,7 +112,7 @@ class HomeKitLightSensor(HomeKitEntity): @property def unit_of_measurement(self): """Return units for the sensor.""" - return UNIT_LUX + return LIGHT_LUX @property def state(self): diff --git a/homeassistant/components/homematic/sensor.py b/homeassistant/components/homematic/sensor.py index 09ceb7c1da2..e6439c451c1 100644 --- a/homeassistant/components/homematic/sensor.py +++ b/homeassistant/components/homematic/sensor.py @@ -10,6 +10,7 @@ from homeassistant.const import ( ENERGY_WATT_HOUR, FREQUENCY_HERTZ, LENGTH_MILLIMETERS, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_HPA, @@ -50,12 +51,12 @@ HM_UNIT_HA_CAST = { "ENERGY_COUNTER": ENERGY_WATT_HOUR, "GAS_POWER": VOLUME_CUBIC_METERS, "GAS_ENERGY_COUNTER": VOLUME_CUBIC_METERS, - "LUX": "lx", - "ILLUMINATION": "lx", - "CURRENT_ILLUMINATION": "lx", - "AVERAGE_ILLUMINATION": "lx", - "LOWEST_ILLUMINATION": "lx", - "HIGHEST_ILLUMINATION": "lx", + "LUX": LIGHT_LUX, + "ILLUMINATION": LIGHT_LUX, + "CURRENT_ILLUMINATION": LIGHT_LUX, + "AVERAGE_ILLUMINATION": LIGHT_LUX, + "LOWEST_ILLUMINATION": LIGHT_LUX, + "HIGHEST_ILLUMINATION": LIGHT_LUX, "RAIN_COUNTER": LENGTH_MILLIMETERS, "WIND_SPEED": SPEED_KILOMETERS_PER_HOUR, "WIND_DIRECTION": DEGREE, diff --git a/homeassistant/components/homematicip_cloud/sensor.py b/homeassistant/components/homematicip_cloud/sensor.py index f307fb9274e..082d7e9e355 100644 --- a/homeassistant/components/homematicip_cloud/sensor.py +++ b/homeassistant/components/homematicip_cloud/sensor.py @@ -31,6 +31,7 @@ from homeassistant.const import ( DEVICE_CLASS_POWER, DEVICE_CLASS_TEMPERATURE, LENGTH_MILLIMETERS, + LIGHT_LUX, PERCENTAGE, POWER_WATT, SPEED_KILOMETERS_PER_HOUR, @@ -282,7 +283,7 @@ class HomematicipIlluminanceSensor(HomematicipGenericEntity): @property def unit_of_measurement(self) -> str: """Return the unit this state is expressed in.""" - return "lx" + return LIGHT_LUX @property def device_state_attributes(self) -> Dict[str, Any]: diff --git a/homeassistant/components/hue/sensor.py b/homeassistant/components/hue/sensor.py index e96f844a5e1..f5911bbb50c 100644 --- a/homeassistant/components/hue/sensor.py +++ b/homeassistant/components/hue/sensor.py @@ -10,6 +10,7 @@ from homeassistant.const import ( DEVICE_CLASS_BATTERY, DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, ) @@ -41,7 +42,7 @@ class HueLightLevel(GenericHueGaugeSensorEntity): """The light level sensor entity for a Hue motion sensor device.""" device_class = DEVICE_CLASS_ILLUMINANCE - unit_of_measurement = "lx" + unit_of_measurement = LIGHT_LUX @property def state(self): diff --git a/homeassistant/components/isy994/const.py b/homeassistant/components/isy994/const.py index 7bef122f7d3..e003a52c91f 100644 --- a/homeassistant/components/isy994/const.py +++ b/homeassistant/components/isy994/const.py @@ -58,6 +58,7 @@ from homeassistant.const import ( LENGTH_METERS, LENGTH_MILES, LENGTH_MILLIMETERS, + LIGHT_LUX, MASS_KILOGRAMS, MASS_POUNDS, PERCENTAGE, @@ -352,7 +353,7 @@ UOM_FRIENDLY_NAME = { "33": ENERGY_KILO_WATT_HOUR, "34": "liedu", "35": VOLUME_LITERS, - "36": "lx", + "36": LIGHT_LUX, "37": "mercalli", "38": LENGTH_METERS, "39": f"{VOLUME_CUBIC_METERS}/{TIME_HOURS}", diff --git a/homeassistant/components/miflora/sensor.py b/homeassistant/components/miflora/sensor.py index 6206c67dc03..94db0417ddb 100644 --- a/homeassistant/components/miflora/sensor.py +++ b/homeassistant/components/miflora/sensor.py @@ -17,6 +17,7 @@ from homeassistant.const import ( CONF_NAME, CONF_SCAN_INTERVAL, EVENT_HOMEASSISTANT_START, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT, @@ -53,7 +54,7 @@ ATTR_LAST_SUCCESSFUL_UPDATE = "last_successful_update" # Sensor types are defined like: Name, units, icon SENSOR_TYPES = { "temperature": ["Temperature", TEMP_CELSIUS, "mdi:thermometer"], - "light": ["Light intensity", "lx", "mdi:white-balance-sunny"], + "light": ["Light intensity", LIGHT_LUX, "mdi:white-balance-sunny"], "moisture": ["Moisture", PERCENTAGE, "mdi:water-percent"], "conductivity": ["Conductivity", CONDUCTIVITY, "mdi:flash-circle"], "battery": ["Battery", PERCENTAGE, "mdi:battery-charging"], diff --git a/homeassistant/components/mysensors/sensor.py b/homeassistant/components/mysensors/sensor.py index 24c1d9be09b..6a6e95ddd01 100644 --- a/homeassistant/components/mysensors/sensor.py +++ b/homeassistant/components/mysensors/sensor.py @@ -9,6 +9,7 @@ from homeassistant.const import ( ENERGY_KILO_WATT_HOUR, FREQUENCY_HERTZ, LENGTH_METERS, + LIGHT_LUX, MASS_KILOGRAMS, PERCENTAGE, POWER_WATT, @@ -41,7 +42,7 @@ SENSORS = { "V_LEVEL": { "S_SOUND": ["dB", "mdi:volume-high"], "S_VIBRATION": [FREQUENCY_HERTZ, None], - "S_LIGHT_LEVEL": ["lx", "mdi:white-balance-sunny"], + "S_LIGHT_LEVEL": [LIGHT_LUX, "mdi:white-balance-sunny"], }, "V_VOLTAGE": [VOLT, "mdi:flash"], "V_CURRENT": [ELECTRICAL_CURRENT_AMPERE, "mdi:flash-auto"], diff --git a/homeassistant/components/onewire/sensor.py b/homeassistant/components/onewire/sensor.py index 148c596e130..4620d7593c9 100644 --- a/homeassistant/components/onewire/sensor.py +++ b/homeassistant/components/onewire/sensor.py @@ -12,6 +12,7 @@ from homeassistant.const import ( CONF_HOST, CONF_PORT, ELECTRICAL_CURRENT_AMPERE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, VOLT, @@ -70,7 +71,7 @@ SENSOR_TYPES = { "humidity": ["humidity", PERCENTAGE], "humidity_raw": ["humidity", PERCENTAGE], "pressure": ["pressure", "mb"], - "illuminance": ["illuminance", "lux"], + "illuminance": ["illuminance", LIGHT_LUX], "wetness_0": ["wetness", PERCENTAGE], "wetness_1": ["wetness", PERCENTAGE], "wetness_2": ["wetness", PERCENTAGE], diff --git a/homeassistant/components/plant/__init__.py b/homeassistant/components/plant/__init__.py index d78b12c06e0..1cb2416d12a 100644 --- a/homeassistant/components/plant/__init__.py +++ b/homeassistant/components/plant/__init__.py @@ -12,6 +12,7 @@ from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, CONDUCTIVITY, CONF_SENSORS, + LIGHT_LUX, PERCENTAGE, STATE_OK, STATE_PROBLEM, @@ -153,7 +154,7 @@ class Plant(Entity): "max": CONF_MAX_CONDUCTIVITY, }, READING_BRIGHTNESS: { - ATTR_UNIT_OF_MEASUREMENT: "lux", + ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX, "min": CONF_MIN_BRIGHTNESS, "max": CONF_MAX_BRIGHTNESS, }, diff --git a/homeassistant/components/shelly/sensor.py b/homeassistant/components/shelly/sensor.py index 52c2a1b5228..14c1b645118 100644 --- a/homeassistant/components/shelly/sensor.py +++ b/homeassistant/components/shelly/sensor.py @@ -5,6 +5,7 @@ from homeassistant.const import ( DEGREE, ELECTRICAL_CURRENT_AMPERE, ENERGY_KILO_WATT_HOUR, + LIGHT_LUX, PERCENTAGE, POWER_WATT, ) @@ -116,7 +117,7 @@ SENSORS = { ), ("sensor", "luminosity"): BlockAttributeDescription( name="Luminosity", - unit="lx", + unit=LIGHT_LUX, device_class=sensor.DEVICE_CLASS_ILLUMINANCE, ), ("sensor", "tilt"): BlockAttributeDescription(name="tilt", unit=DEGREE), diff --git a/homeassistant/components/smartthings/sensor.py b/homeassistant/components/smartthings/sensor.py index a7a15e3cefc..f0240886913 100644 --- a/homeassistant/components/smartthings/sensor.py +++ b/homeassistant/components/smartthings/sensor.py @@ -13,6 +13,7 @@ from homeassistant.const import ( DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_TIMESTAMP, ENERGY_KILO_WATT_HOUR, + LIGHT_LUX, MASS_KILOGRAMS, PERCENTAGE, POWER_WATT, @@ -116,7 +117,7 @@ CAPABILITY_TO_SENSORS = { ) ], Capability.illuminance_measurement: [ - Map(Attribute.illuminance, "Illuminance", "lux", DEVICE_CLASS_ILLUMINANCE) + Map(Attribute.illuminance, "Illuminance", LIGHT_LUX, DEVICE_CLASS_ILLUMINANCE) ], Capability.infrared_level: [ Map(Attribute.infrared_level, "Infrared Level", PERCENTAGE, None) diff --git a/homeassistant/components/tahoma/sensor.py b/homeassistant/components/tahoma/sensor.py index 7b28989ad8e..fb1129cfa0e 100644 --- a/homeassistant/components/tahoma/sensor.py +++ b/homeassistant/components/tahoma/sensor.py @@ -2,7 +2,7 @@ from datetime import timedelta import logging -from homeassistant.const import ATTR_BATTERY_LEVEL, PERCENTAGE, TEMP_CELSIUS +from homeassistant.const import ATTR_BATTERY_LEVEL, LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS from homeassistant.helpers.entity import Entity from . import DOMAIN as TAHOMA_DOMAIN, TahomaDevice @@ -49,7 +49,7 @@ class TahomaSensor(TahomaDevice, Entity): if self.tahoma_device.type == "io:SomfyBasicContactIOSystemSensor": return None if self.tahoma_device.type == "io:LightIOSystemSensor": - return "lx" + return LIGHT_LUX if self.tahoma_device.type == "Humidity Sensor": return PERCENTAGE if self.tahoma_device.type == "rtds:RTDSContactSensor": diff --git a/homeassistant/components/tellduslive/sensor.py b/homeassistant/components/tellduslive/sensor.py index 7b785a808e8..e322481813a 100644 --- a/homeassistant/components/tellduslive/sensor.py +++ b/homeassistant/components/tellduslive/sensor.py @@ -7,6 +7,7 @@ from homeassistant.const import ( DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_TEMPERATURE, LENGTH_MILLIMETERS, + LIGHT_LUX, PERCENTAGE, POWER_WATT, SPEED_METERS_PER_SECOND, @@ -53,7 +54,7 @@ SENSOR_TYPES = { SENSOR_TYPE_WINDGUST: ["Wind gust", SPEED_METERS_PER_SECOND, "", None], SENSOR_TYPE_UV: ["UV", UV_INDEX, "", None], SENSOR_TYPE_WATT: ["Power", POWER_WATT, "", None], - SENSOR_TYPE_LUMINANCE: ["Luminance", "lx", None, DEVICE_CLASS_ILLUMINANCE], + SENSOR_TYPE_LUMINANCE: ["Luminance", LIGHT_LUX, None, DEVICE_CLASS_ILLUMINANCE], SENSOR_TYPE_DEW_POINT: ["Dew Point", TEMP_CELSIUS, None, DEVICE_CLASS_TEMPERATURE], SENSOR_TYPE_BAROMETRIC_PRESSURE: ["Barometric Pressure", "kPa", "", None], } diff --git a/homeassistant/components/vera/sensor.py b/homeassistant/components/vera/sensor.py index 0c51094fbc0..9c3dd097a78 100644 --- a/homeassistant/components/vera/sensor.py +++ b/homeassistant/components/vera/sensor.py @@ -7,7 +7,7 @@ import pyvera as veraApi from homeassistant.components.sensor import DOMAIN as PLATFORM_DOMAIN, ENTITY_ID_FORMAT from homeassistant.config_entries import ConfigEntry -from homeassistant.const import PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT +from homeassistant.const import LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import Entity from homeassistant.util import convert @@ -60,7 +60,7 @@ class VeraSensor(VeraDevice[veraApi.VeraSensor], Entity): if self.vera_device.category == veraApi.CATEGORY_TEMPERATURE_SENSOR: return self._temperature_units if self.vera_device.category == veraApi.CATEGORY_LIGHT_SENSOR: - return "lx" + return LIGHT_LUX if self.vera_device.category == veraApi.CATEGORY_UV_SENSOR: return "level" if self.vera_device.category == veraApi.CATEGORY_HUMIDITY_SENSOR: diff --git a/homeassistant/components/xiaomi_aqara/sensor.py b/homeassistant/components/xiaomi_aqara/sensor.py index ed1792a5fdb..5b1d3467d25 100644 --- a/homeassistant/components/xiaomi_aqara/sensor.py +++ b/homeassistant/components/xiaomi_aqara/sensor.py @@ -9,6 +9,7 @@ from homeassistant.const import ( DEVICE_CLASS_POWER, DEVICE_CLASS_PRESSURE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_HPA, @@ -24,7 +25,7 @@ SENSOR_TYPES = { "temperature": [TEMP_CELSIUS, None, DEVICE_CLASS_TEMPERATURE], "humidity": [PERCENTAGE, None, DEVICE_CLASS_HUMIDITY], "illumination": ["lm", None, DEVICE_CLASS_ILLUMINANCE], - "lux": ["lx", None, DEVICE_CLASS_ILLUMINANCE], + "lux": [LIGHT_LUX, None, DEVICE_CLASS_ILLUMINANCE], "pressure": [PRESSURE_HPA, None, DEVICE_CLASS_PRESSURE], "bed_activity": ["μm", None, None], "load_power": [POWER_WATT, None, DEVICE_CLASS_POWER], diff --git a/homeassistant/components/xiaomi_miio/sensor.py b/homeassistant/components/xiaomi_miio/sensor.py index 15dc1bea8bd..6e25750ea50 100644 --- a/homeassistant/components/xiaomi_miio/sensor.py +++ b/homeassistant/components/xiaomi_miio/sensor.py @@ -21,6 +21,7 @@ from homeassistant.const import ( DEVICE_CLASS_ILLUMINANCE, DEVICE_CLASS_PRESSURE, DEVICE_CLASS_TEMPERATURE, + LIGHT_LUX, PERCENTAGE, PRESSURE_HPA, TEMP_CELSIUS, @@ -307,7 +308,7 @@ class XiaomiGatewayIlluminanceSensor(Entity): @property def unit_of_measurement(self): """Return the unit of measurement of this entity.""" - return "lux" + return LIGHT_LUX @property def device_class(self): diff --git a/homeassistant/components/zha/sensor.py b/homeassistant/components/zha/sensor.py index 215299ca34f..a18d6bfa9dd 100644 --- a/homeassistant/components/zha/sensor.py +++ b/homeassistant/components/zha/sensor.py @@ -14,6 +14,7 @@ from homeassistant.components.sensor import ( ) from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_HPA, @@ -235,7 +236,7 @@ class Illuminance(Sensor): SENSOR_ATTR = "measured_value" _device_class = DEVICE_CLASS_ILLUMINANCE - _unit = "lx" + _unit = LIGHT_LUX @staticmethod def formatter(value): diff --git a/homeassistant/const.py b/homeassistant/const.py index e1738cf6425..4d5f4db665c 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -449,6 +449,9 @@ MASS_POUNDS: str = "lb" # Conductivity units CONDUCTIVITY: str = f"µS/{LENGTH_CENTIMETERS}" +# Light units +LIGHT_LUX: str = "lx" + # UV Index units UV_INDEX: str = "UV index" diff --git a/tests/components/awair/test_sensor.py b/tests/components/awair/test_sensor.py index 4d48959632d..3b013fad29c 100644 --- a/tests/components/awair/test_sensor.py +++ b/tests/components/awair/test_sensor.py @@ -20,6 +20,7 @@ from homeassistant.const import ( CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_PARTS_PER_BILLION, CONCENTRATION_PARTS_PER_MILLION, + LIGHT_LUX, PERCENTAGE, STATE_UNAVAILABLE, TEMP_CELSIUS, @@ -232,7 +233,7 @@ async def test_awair_mint_sensors(hass): "sensor.living_room_illuminance", f"{AWAIR_UUID}_{SENSOR_TYPES[API_LUX][ATTR_UNIQUE_ID]}", "441.7", - {ATTR_UNIT_OF_MEASUREMENT: "lx"}, + {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}, ) # The Mint does not have a CO2 sensor. @@ -290,7 +291,7 @@ async def test_awair_omni_sensors(hass): "sensor.living_room_illuminance", f"{AWAIR_UUID}_{SENSOR_TYPES[API_LUX][ATTR_UNIQUE_ID]}", "804.9", - {ATTR_UNIT_OF_MEASUREMENT: "lx"}, + {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}, ) diff --git a/tests/components/homekit/test_get_accessories.py b/tests/components/homekit/test_get_accessories.py index bcbbbf3bcbf..a7468955d36 100644 --- a/tests/components/homekit/test_get_accessories.py +++ b/tests/components/homekit/test_get_accessories.py @@ -24,6 +24,7 @@ from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, CONF_NAME, CONF_TYPE, + LIGHT_LUX, PERCENTAGE, TEMP_CELSIUS, TEMP_FAHRENHEIT, @@ -190,7 +191,7 @@ def test_type_media_player(type_name, entity_id, state, attrs, config): ), ("LightSensor", "sensor.light", "900", {ATTR_DEVICE_CLASS: "illuminance"}), ("LightSensor", "sensor.light", "900", {ATTR_UNIT_OF_MEASUREMENT: "lm"}), - ("LightSensor", "sensor.light", "900", {ATTR_UNIT_OF_MEASUREMENT: "lx"}), + ("LightSensor", "sensor.light", "900", {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}), ( "TemperatureSensor", "sensor.temperature", diff --git a/tests/components/homematicip_cloud/test_sensor.py b/tests/components/homematicip_cloud/test_sensor.py index de9fc276795..20c5c41a5b5 100644 --- a/tests/components/homematicip_cloud/test_sensor.py +++ b/tests/components/homematicip_cloud/test_sensor.py @@ -25,6 +25,7 @@ from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, LENGTH_MILLIMETERS, + LIGHT_LUX, PERCENTAGE, POWER_WATT, SPEED_KILOMETERS_PER_HOUR, @@ -248,7 +249,7 @@ async def test_hmip_illuminance_sensor1(hass, default_mock_hap_factory): ) assert ha_state.state == "4890.0" - assert ha_state.attributes[ATTR_UNIT_OF_MEASUREMENT] == "lx" + assert ha_state.attributes[ATTR_UNIT_OF_MEASUREMENT] == LIGHT_LUX await async_manipulate_test_data(hass, hmip_device, "illumination", 231) ha_state = hass.states.get(entity_id) assert ha_state.state == "231" @@ -268,7 +269,7 @@ async def test_hmip_illuminance_sensor2(hass, default_mock_hap_factory): ) assert ha_state.state == "807.3" - assert ha_state.attributes[ATTR_UNIT_OF_MEASUREMENT] == "lx" + assert ha_state.attributes[ATTR_UNIT_OF_MEASUREMENT] == LIGHT_LUX await async_manipulate_test_data(hass, hmip_device, "averageIllumination", 231) ha_state = hass.states.get(entity_id) assert ha_state.state == "231" diff --git a/tests/components/plant/test_init.py b/tests/components/plant/test_init.py index 866702488dc..f30350141c4 100644 --- a/tests/components/plant/test_init.py +++ b/tests/components/plant/test_init.py @@ -8,6 +8,7 @@ import homeassistant.components.plant as plant from homeassistant.const import ( ATTR_UNIT_OF_MEASUREMENT, CONDUCTIVITY, + LIGHT_LUX, STATE_OK, STATE_PROBLEM, STATE_UNAVAILABLE, @@ -187,17 +188,17 @@ async def test_brightness_history(hass): assert await async_setup_component( hass, plant.DOMAIN, {plant.DOMAIN: {plant_name: GOOD_CONFIG}} ) - hass.states.async_set(BRIGHTNESS_ENTITY, 100, {ATTR_UNIT_OF_MEASUREMENT: "lux"}) + hass.states.async_set(BRIGHTNESS_ENTITY, 100, {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") assert STATE_PROBLEM == state.state - hass.states.async_set(BRIGHTNESS_ENTITY, 600, {ATTR_UNIT_OF_MEASUREMENT: "lux"}) + hass.states.async_set(BRIGHTNESS_ENTITY, 600, {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") assert STATE_OK == state.state - hass.states.async_set(BRIGHTNESS_ENTITY, 100, {ATTR_UNIT_OF_MEASUREMENT: "lux"}) + hass.states.async_set(BRIGHTNESS_ENTITY, 100, {ATTR_UNIT_OF_MEASUREMENT: LIGHT_LUX}) await hass.async_block_till_done() state = hass.states.get(f"plant.{plant_name}") assert STATE_OK == state.state diff --git a/tests/components/vera/test_sensor.py b/tests/components/vera/test_sensor.py index 58cedeee450..3d6b11b0685 100644 --- a/tests/components/vera/test_sensor.py +++ b/tests/components/vera/test_sensor.py @@ -3,7 +3,7 @@ from typing import Any, Callable, Tuple import pyvera as pv -from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT, PERCENTAGE +from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT, LIGHT_LUX, PERCENTAGE from homeassistant.core import HomeAssistant from .common import ComponentFactory, new_simple_controller_config @@ -90,7 +90,7 @@ async def test_light_sensor( category=pv.CATEGORY_LIGHT_SENSOR, class_property="light", assert_states=(("12", "12"), ("13", "13")), - assert_unit_of_measurement="lx", + assert_unit_of_measurement=LIGHT_LUX, ) diff --git a/tests/components/zha/test_sensor.py b/tests/components/zha/test_sensor.py index 1c7d85c4528..50ea430d1cc 100644 --- a/tests/components/zha/test_sensor.py +++ b/tests/components/zha/test_sensor.py @@ -14,6 +14,7 @@ from homeassistant.const import ( CONF_UNIT_SYSTEM, CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_METRIC, + LIGHT_LUX, PERCENTAGE, POWER_WATT, PRESSURE_HPA, @@ -58,7 +59,7 @@ async def async_test_pressure(hass, cluster, entity_id): async def async_test_illuminance(hass, cluster, entity_id): """Test illuminance sensor.""" await send_attributes_report(hass, cluster, {1: 1, 0: 10, 2: 20}) - assert_state(hass, entity_id, "1.0", "lx") + assert_state(hass, entity_id, "1.0", LIGHT_LUX) async def async_test_metering(hass, cluster, entity_id):