Add and use percentage constant (#32094)

* Add and use percentage constant

* Fix pylint error and broken test
This commit is contained in:
springstan 2020-02-28 20:46:48 +01:00 committed by GitHub
parent c7f128f286
commit f1a0ca7cd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
155 changed files with 735 additions and 459 deletions

View File

@ -11,7 +11,7 @@ from homeassistant.components.adguard.const import (
DOMAIN,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import TIME_MILLISECONDS
from homeassistant.const import TIME_MILLISECONDS, UNIT_PERCENTAGE
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.typing import HomeAssistantType
@ -134,7 +134,7 @@ class AdGuardHomePercentageBlockedSensor(AdGuardHomeSensor):
"AdGuard DNS Queries Blocked Ratio",
"mdi:magnify-close",
"blocked_percentage",
"%",
UNIT_PERCENTAGE,
)
async def _adguard_update(self) -> None:

View File

@ -9,6 +9,7 @@ from homeassistant.const import (
DEVICE_CLASS_TEMPERATURE,
PRESSURE_HPA,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
@ -27,8 +28,6 @@ ATTR_ICON = "icon"
ATTR_LABEL = "label"
ATTR_UNIT = "unit"
HUMI_PERCENT = "%"
SENSOR_TYPES = {
ATTR_API_PM1: {
ATTR_DEVICE_CLASS: None,
@ -40,7 +39,7 @@ SENSOR_TYPES = {
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
ATTR_ICON: None,
ATTR_LABEL: ATTR_API_HUMIDITY.capitalize(),
ATTR_UNIT: HUMI_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_API_PRESSURE: {
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,

View File

@ -14,6 +14,7 @@ from homeassistant.const import (
CONF_API_KEY,
EVENT_HOMEASSISTANT_STOP,
SPEED_MILES_PER_HOUR,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.exceptions import ConfigEntryNotReady
@ -154,18 +155,18 @@ SENSOR_TYPES = {
TYPE_EVENTRAININ: ("Event Rain", "in", TYPE_SENSOR, None),
TYPE_FEELSLIKE: ("Feels Like", "°F", TYPE_SENSOR, "temperature"),
TYPE_HOURLYRAININ: ("Hourly Rain Rate", "in/hr", TYPE_SENSOR, None),
TYPE_HUMIDITY10: ("Humidity 10", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY1: ("Humidity 1", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY2: ("Humidity 2", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY3: ("Humidity 3", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY4: ("Humidity 4", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY5: ("Humidity 5", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY6: ("Humidity 6", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY7: ("Humidity 7", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY8: ("Humidity 8", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY9: ("Humidity 9", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY: ("Humidity", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITYIN: ("Humidity In", "%", TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY10: ("Humidity 10", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY1: ("Humidity 1", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY2: ("Humidity 2", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY3: ("Humidity 3", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY4: ("Humidity 4", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY5: ("Humidity 5", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY6: ("Humidity 6", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY7: ("Humidity 7", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY8: ("Humidity 8", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY9: ("Humidity 9", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITY: ("Humidity", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_HUMIDITYIN: ("Humidity In", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_LASTRAIN: ("Last Rain", None, TYPE_SENSOR, "timestamp"),
TYPE_MAXDAILYGUST: ("Max Gust", SPEED_MILES_PER_HOUR, TYPE_SENSOR, None),
TYPE_MONTHLYRAININ: ("Monthly Rain", "in", TYPE_SENSOR, None),
@ -179,16 +180,16 @@ SENSOR_TYPES = {
TYPE_RELAY7: ("Relay 7", None, TYPE_BINARY_SENSOR, "connectivity"),
TYPE_RELAY8: ("Relay 8", None, TYPE_BINARY_SENSOR, "connectivity"),
TYPE_RELAY9: ("Relay 9", None, TYPE_BINARY_SENSOR, "connectivity"),
TYPE_SOILHUM10: ("Soil Humidity 10", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM1: ("Soil Humidity 1", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM2: ("Soil Humidity 2", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM3: ("Soil Humidity 3", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM4: ("Soil Humidity 4", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM5: ("Soil Humidity 5", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM6: ("Soil Humidity 6", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM7: ("Soil Humidity 7", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM8: ("Soil Humidity 8", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM9: ("Soil Humidity 9", "%", TYPE_SENSOR, "humidity"),
TYPE_SOILHUM10: ("Soil Humidity 10", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM1: ("Soil Humidity 1", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM2: ("Soil Humidity 2", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM3: ("Soil Humidity 3", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM4: ("Soil Humidity 4", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM5: ("Soil Humidity 5", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM6: ("Soil Humidity 6", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM7: ("Soil Humidity 7", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM8: ("Soil Humidity 8", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILHUM9: ("Soil Humidity 9", UNIT_PERCENTAGE, TYPE_SENSOR, "humidity"),
TYPE_SOILTEMP10F: ("Soil Temp 10", "°F", TYPE_SENSOR, "temperature"),
TYPE_SOILTEMP1F: ("Soil Temp 1", "°F", TYPE_SENSOR, "temperature"),
TYPE_SOILTEMP2F: ("Soil Temp 2", "°F", TYPE_SENSOR, "temperature"),

View File

@ -4,7 +4,7 @@ import logging
from amcrest import AmcrestError
from homeassistant.const import CONF_NAME, CONF_SENSORS
from homeassistant.const import CONF_NAME, CONF_SENSORS, UNIT_PERCENTAGE
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import Entity
@ -20,7 +20,7 @@ SENSOR_SDCARD = "sdcard"
# Sensor types are defined like: Name, units, icon
SENSORS = {
SENSOR_PTZ_PRESET: ["PTZ Preset", None, "mdi:camera-iris"],
SENSOR_SDCARD: ["SD Used", "%", "mdi:sd"],
SENSOR_SDCARD: ["SD Used", UNIT_PERCENTAGE, "mdi:sd"],
}

View File

@ -12,6 +12,7 @@ from homeassistant.const import (
TEMP_CELSIUS,
TIME_MINUTES,
TIME_SECONDS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -28,7 +29,7 @@ SENSOR_TYPES = {
"battdate": ["Battery Replaced", "", "mdi:calendar-clock"],
"battstat": ["Battery Status", "", "mdi:information-outline"],
"battv": ["Battery Voltage", "V", "mdi:flash"],
"bcharge": ["Battery", "%", "mdi:battery"],
"bcharge": ["Battery", UNIT_PERCENTAGE, "mdi:battery"],
"cable": ["Cable Type", "", "mdi:ethernet-cable"],
"cumonbatt": ["Total Time on Battery", "", "mdi:timer"],
"date": ["Status Date", "", "mdi:calendar-clock"],
@ -42,20 +43,20 @@ SENSOR_TYPES = {
"firmware": ["Firmware Version", "", "mdi:information-outline"],
"hitrans": ["Transfer High", "V", "mdi:flash"],
"hostname": ["Hostname", "", "mdi:information-outline"],
"humidity": ["Ambient Humidity", "%", "mdi:water-percent"],
"humidity": ["Ambient Humidity", UNIT_PERCENTAGE, "mdi:water-percent"],
"itemp": ["Internal Temperature", TEMP_CELSIUS, "mdi:thermometer"],
"lastxfer": ["Last Transfer", "", "mdi:transfer"],
"linefail": ["Input Voltage Status", "", "mdi:information-outline"],
"linefreq": ["Line Frequency", "Hz", "mdi:information-outline"],
"linev": ["Input Voltage", "V", "mdi:flash"],
"loadpct": ["Load", "%", "mdi:gauge"],
"loadapnt": ["Load Apparent Power", "%", "mdi:gauge"],
"loadpct": ["Load", UNIT_PERCENTAGE, "mdi:gauge"],
"loadapnt": ["Load Apparent Power", UNIT_PERCENTAGE, "mdi:gauge"],
"lotrans": ["Transfer Low", "V", "mdi:flash"],
"mandate": ["Manufacture Date", "", "mdi:calendar"],
"masterupd": ["Master Update", "", "mdi:information-outline"],
"maxlinev": ["Input Voltage High", "V", "mdi:flash"],
"maxtime": ["Battery Timeout", "", "mdi:timer-off"],
"mbattchg": ["Battery Shutdown", "%", "mdi:battery-alert"],
"mbattchg": ["Battery Shutdown", UNIT_PERCENTAGE, "mdi:battery-alert"],
"minlinev": ["Input Voltage Low", "V", "mdi:flash"],
"mintimel": ["Shutdown Time", "", "mdi:timer"],
"model": ["Model", "", "mdi:information-outline"],
@ -70,7 +71,7 @@ SENSOR_TYPES = {
"reg1": ["Register 1 Fault", "", "mdi:information-outline"],
"reg2": ["Register 2 Fault", "", "mdi:information-outline"],
"reg3": ["Register 3 Fault", "", "mdi:information-outline"],
"retpct": ["Restore Requirement", "%", "mdi:battery-alert"],
"retpct": ["Restore Requirement", UNIT_PERCENTAGE, "mdi:battery-alert"],
"selftest": ["Last Self Test", "", "mdi:calendar-clock"],
"sense": ["Sensitivity", "", "mdi:information-outline"],
"serialno": ["Serial Number", "", "mdi:information-outline"],
@ -92,14 +93,14 @@ SPECIFIC_UNITS = {"ITEMP": TEMP_CELSIUS}
INFERRED_UNITS = {
" Minutes": TIME_MINUTES,
" Seconds": TIME_SECONDS,
" Percent": "%",
" Percent": UNIT_PERCENTAGE,
" Volts": "V",
" Ampere": "A",
" Volt-Ampere": "VA",
" Watts": POWER_WATT,
" Hz": "Hz",
" C": TEMP_CELSIUS,
" Percent Load Capacity": "%",
" Percent Load Capacity": UNIT_PERCENTAGE,
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -4,7 +4,12 @@ import logging
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -14,7 +19,7 @@ from . import DOMAIN, UPDATE_TOPIC
_LOGGER = logging.getLogger(__name__)
TEMP_UNITS = [TEMP_CELSIUS, TEMP_FAHRENHEIT]
PERCENT_UNITS = ["%", "%"]
PERCENT_UNITS = [UNIT_PERCENTAGE, UNIT_PERCENTAGE]
SALT_UNITS = ["g/L", "PPM"]
WATT_UNITS = ["W", "W"]
NO_UNITS = [None, None]

View File

@ -11,6 +11,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -27,10 +28,10 @@ SENSOR_TYPES = {
"last_capture": ["Last", None, "run-fast"],
"total_cameras": ["Arlo Cameras", None, "video"],
"captured_today": ["Captured Today", None, "file-video"],
"battery_level": ["Battery Level", "%", "battery-50"],
"battery_level": ["Battery Level", UNIT_PERCENTAGE, "battery-50"],
"signal_strength": ["Signal Strength", None, "signal"],
"temperature": ["Temperature", TEMP_CELSIUS, "thermometer"],
"humidity": ["Humidity", "%", "water-percent"],
"humidity": ["Humidity", UNIT_PERCENTAGE, "water-percent"],
"air_quality": ["Air Quality", CONCENTRATION_PARTS_PER_MILLION, "biohazard"],
}

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -48,7 +49,7 @@ SENSOR_TYPES = {
},
"HUMID": {
"device_class": DEVICE_CLASS_HUMIDITY,
"unit_of_measurement": "%",
"unit_of_measurement": UNIT_PERCENTAGE,
"icon": "mdi:water-percent",
},
"CO2": {
@ -80,7 +81,7 @@ SENSOR_TYPES = {
},
"score": {
"device_class": DEVICE_CLASS_SCORE,
"unit_of_measurement": "%",
"unit_of_measurement": UNIT_PERCENTAGE,
"icon": "mdi:percent",
},
}

View File

@ -12,6 +12,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -24,8 +25,8 @@ DEFAULT_NAME = "BeeWi SmartClim"
# Sensor config
SENSOR_TYPES = [
[DEVICE_CLASS_TEMPERATURE, "Temperature", TEMP_CELSIUS],
[DEVICE_CLASS_HUMIDITY, "Humidity", "%"],
[DEVICE_CLASS_BATTERY, "Battery", "%"],
[DEVICE_CLASS_HUMIDITY, "Humidity", UNIT_PERCENTAGE],
[DEVICE_CLASS_BATTERY, "Battery", UNIT_PERCENTAGE],
]
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -4,7 +4,12 @@ import logging
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -25,7 +30,7 @@ SENSOR_TYPES = [
# Sensor units - these do not currently align with the API documentation
SENSOR_UNITS_IMPERIAL = {
"Temperature": TEMP_FAHRENHEIT,
"Humidity": "%",
"Humidity": UNIT_PERCENTAGE,
"Pressure": "inHg",
"Luminance": "cd/m²",
"Voltage": "mV",
@ -34,7 +39,7 @@ SENSOR_UNITS_IMPERIAL = {
# Metric units
SENSOR_UNITS_METRIC = {
"Temperature": TEMP_CELSIUS,
"Humidity": "%",
"Humidity": UNIT_PERCENTAGE,
"Pressure": "mbar",
"Luminance": "cd/m²",
"Voltage": "mV",

View File

@ -8,7 +8,12 @@ import smbus # pylint: disable=import-error
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME, TEMP_FAHRENHEIT
from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
CONF_NAME,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
@ -44,7 +49,7 @@ SENSOR_HUMID = "humidity"
SENSOR_PRESS = "pressure"
SENSOR_TYPES = {
SENSOR_TEMP: ["Temperature", None],
SENSOR_HUMID: ["Humidity", "%"],
SENSOR_HUMID: ["Humidity", UNIT_PERCENTAGE],
SENSOR_PRESS: ["Pressure", "mb"],
}
DEFAULT_MONITORED = [SENSOR_TEMP, SENSOR_HUMID, SENSOR_PRESS]

View File

@ -8,7 +8,12 @@ from smbus import SMBus # pylint: disable=import-error
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME, TEMP_FAHRENHEIT
from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
CONF_NAME,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util.temperature import celsius_to_fahrenheit
@ -50,10 +55,10 @@ SENSOR_GAS = "gas"
SENSOR_AQ = "airquality"
SENSOR_TYPES = {
SENSOR_TEMP: ["Temperature", None],
SENSOR_HUMID: ["Humidity", "%"],
SENSOR_HUMID: ["Humidity", UNIT_PERCENTAGE],
SENSOR_PRESS: ["Pressure", "mb"],
SENSOR_GAS: ["Gas Resistance", "Ohms"],
SENSOR_AQ: ["Air Quality", "%"],
SENSOR_AQ: ["Air Quality", UNIT_PERCENTAGE],
}
DEFAULT_MONITORED = [SENSOR_TEMP, SENSOR_HUMID, SENSOR_PRESS, SENSOR_AQ]
OVERSAMPLING_VALUES = set([0, 1, 2, 4, 8, 16])

View File

@ -8,6 +8,7 @@ from homeassistant.const import (
LENGTH_KILOMETERS,
LENGTH_MILES,
TIME_HOURS,
UNIT_PERCENTAGE,
VOLUME_GALLONS,
VOLUME_LITERS,
)
@ -28,7 +29,7 @@ ATTR_TO_HA_METRIC = {
"charging_time_remaining": ["mdi:update", TIME_HOURS],
"charging_status": ["mdi:battery-charging", None],
# No icon as this is dealt with directly as a special case in icon()
"charging_level_hv": [None, "%"],
"charging_level_hv": [None, UNIT_PERCENTAGE],
}
ATTR_TO_HA_IMPERIAL = {
@ -41,7 +42,7 @@ ATTR_TO_HA_IMPERIAL = {
"charging_time_remaining": ["mdi:update", TIME_HOURS],
"charging_status": ["mdi:battery-charging", None],
# No icon as this is dealt with directly as a special case in icon()
"charging_level_hv": [None, "%"],
"charging_level_hv": [None, UNIT_PERCENTAGE],
}

View File

@ -21,6 +21,7 @@ from homeassistant.const import (
CONF_NAME,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -68,7 +69,7 @@ SENSOR_TYPES = {
"press_msl": ["Pressure msl", "msl"],
"press_tend": ["Pressure Tend", None],
"rain_trace": ["Rain Today", "mm"],
"rel_hum": ["Relative Humidity", "%"],
"rel_hum": ["Relative Humidity", UNIT_PERCENTAGE],
"sea_state": ["Sea State", None],
"swell_dir_worded": ["Swell Direction", None],
"swell_height": ["Swell Height", "m"],

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_SCAN_INTERVAL,
CONF_TIMEOUT,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -29,7 +30,7 @@ SCAN_INTERVAL = timedelta(seconds=300)
SENSOR_TYPES = {
"temperature": ["Temperature", TEMP_CELSIUS],
"air_quality": ["Air Quality", " "],
"humidity": ["Humidity", "%"],
"humidity": ["Humidity", UNIT_PERCENTAGE],
"light": ["Light", " "],
"noise": ["Noise", " "],
}

View File

@ -1,5 +1,5 @@
"""Constants for Brother integration."""
from homeassistant.const import TIME_DAYS
from homeassistant.const import TIME_DAYS, UNIT_PERCENTAGE
ATTR_BELT_UNIT_REMAINING_LIFE = "belt_unit_remaining_life"
ATTR_BLACK_INK_REMAINING = "black_ink_remaining"
@ -30,7 +30,6 @@ ATTR_YELLOW_TONER_REMAINING = "yellow_toner_remaining"
DOMAIN = "brother"
UNIT_PAGES = "p"
UNIT_PERCENT = "%"
PRINTER_TYPES = ["laser", "ink"]
@ -58,72 +57,72 @@ SENSOR_TYPES = {
ATTR_DRUM_REMAINING_LIFE: {
ATTR_ICON: "mdi:chart-donut",
ATTR_LABEL: ATTR_DRUM_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_BELT_UNIT_REMAINING_LIFE: {
ATTR_ICON: "mdi:current-ac",
ATTR_LABEL: ATTR_BELT_UNIT_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_FUSER_REMAINING_LIFE: {
ATTR_ICON: "mdi:water-outline",
ATTR_LABEL: ATTR_FUSER_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_LASER_REMAINING_LIFE: {
ATTR_ICON: "mdi:spotlight-beam",
ATTR_LABEL: ATTR_LASER_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_PF_KIT_1_REMAINING_LIFE: {
ATTR_ICON: "mdi:printer-3d",
ATTR_LABEL: ATTR_PF_KIT_1_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_PF_KIT_MP_REMAINING_LIFE: {
ATTR_ICON: "mdi:printer-3d",
ATTR_LABEL: ATTR_PF_KIT_MP_REMAINING_LIFE.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_BLACK_TONER_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_BLACK_TONER_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_CYAN_TONER_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_CYAN_TONER_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_MAGENTA_TONER_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_MAGENTA_TONER_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_YELLOW_TONER_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_YELLOW_TONER_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_BLACK_INK_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_BLACK_INK_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_CYAN_INK_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_CYAN_INK_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_MAGENTA_INK_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_MAGENTA_INK_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_YELLOW_INK_REMAINING: {
ATTR_ICON: "mdi:printer-3d-nozzle",
ATTR_LABEL: ATTR_YELLOW_INK_REMAINING.replace("_", " ").title(),
ATTR_UNIT: UNIT_PERCENT,
ATTR_UNIT: UNIT_PERCENTAGE,
},
ATTR_UPTIME: {
ATTR_ICON: "mdi:timer",

View File

@ -31,6 +31,7 @@ from homeassistant.const import (
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
TIME_HOURS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -67,7 +68,7 @@ SENSOR_TYPES = {
"symbol": ["Symbol", None, None],
# new in json api (>1.0.0):
"feeltemperature": ["Feel temperature", TEMP_CELSIUS, "mdi:thermometer"],
"humidity": ["Humidity", "%", "mdi:water-percent"],
"humidity": ["Humidity", UNIT_PERCENTAGE, "mdi:water-percent"],
"temperature": ["Temperature", TEMP_CELSIUS, "mdi:thermometer"],
"groundtemperature": ["Ground temperature", TEMP_CELSIUS, "mdi:thermometer"],
"windspeed": ["Wind speed", SPEED_KILOMETERS_PER_HOUR, "mdi:weather-windy"],
@ -120,16 +121,16 @@ SENSOR_TYPES = {
"maxrain_3d": ["Maximum rain 3d", "mm", "mdi:weather-pouring"],
"maxrain_4d": ["Maximum rain 4d", "mm", "mdi:weather-pouring"],
"maxrain_5d": ["Maximum rain 5d", "mm", "mdi:weather-pouring"],
"rainchance_1d": ["Rainchance 1d", "%", "mdi:weather-pouring"],
"rainchance_2d": ["Rainchance 2d", "%", "mdi:weather-pouring"],
"rainchance_3d": ["Rainchance 3d", "%", "mdi:weather-pouring"],
"rainchance_4d": ["Rainchance 4d", "%", "mdi:weather-pouring"],
"rainchance_5d": ["Rainchance 5d", "%", "mdi:weather-pouring"],
"sunchance_1d": ["Sunchance 1d", "%", "mdi:weather-partly-cloudy"],
"sunchance_2d": ["Sunchance 2d", "%", "mdi:weather-partly-cloudy"],
"sunchance_3d": ["Sunchance 3d", "%", "mdi:weather-partly-cloudy"],
"sunchance_4d": ["Sunchance 4d", "%", "mdi:weather-partly-cloudy"],
"sunchance_5d": ["Sunchance 5d", "%", "mdi:weather-partly-cloudy"],
"rainchance_1d": ["Rainchance 1d", UNIT_PERCENTAGE, "mdi:weather-pouring"],
"rainchance_2d": ["Rainchance 2d", UNIT_PERCENTAGE, "mdi:weather-pouring"],
"rainchance_3d": ["Rainchance 3d", UNIT_PERCENTAGE, "mdi:weather-pouring"],
"rainchance_4d": ["Rainchance 4d", UNIT_PERCENTAGE, "mdi:weather-pouring"],
"rainchance_5d": ["Rainchance 5d", UNIT_PERCENTAGE, "mdi:weather-pouring"],
"sunchance_1d": ["Sunchance 1d", UNIT_PERCENTAGE, "mdi:weather-partly-cloudy"],
"sunchance_2d": ["Sunchance 2d", UNIT_PERCENTAGE, "mdi:weather-partly-cloudy"],
"sunchance_3d": ["Sunchance 3d", UNIT_PERCENTAGE, "mdi:weather-partly-cloudy"],
"sunchance_4d": ["Sunchance 4d", UNIT_PERCENTAGE, "mdi:weather-partly-cloudy"],
"sunchance_5d": ["Sunchance 5d", UNIT_PERCENTAGE, "mdi:weather-partly-cloudy"],
"windforce_1d": ["Wind force 1d", "Bft", "mdi:weather-windy"],
"windforce_2d": ["Wind force 2d", "Bft", "mdi:weather-windy"],
"windforce_3d": ["Wind force 3d", "Bft", "mdi:weather-windy"],

View File

@ -1,7 +1,7 @@
"""Support for Canary sensors."""
from canary.api import SensorType
from homeassistant.const import TEMP_CELSIUS
from homeassistant.const import TEMP_CELSIUS, UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level
@ -14,10 +14,10 @@ ATTR_AIR_QUALITY = "air_quality"
# sensor type name, unit_of_measurement, icon
SENSOR_TYPES = [
["temperature", TEMP_CELSIUS, "mdi:thermometer", ["Canary"]],
["humidity", "%", "mdi:water-percent", ["Canary"]],
["humidity", UNIT_PERCENTAGE, "mdi:water-percent", ["Canary"]],
["air_quality", None, "mdi:weather-windy", ["Canary"]],
["wifi", "dBm", "mdi:wifi", ["Canary Flex"]],
["battery", "%", "mdi:battery-50", ["Canary Flex"]],
["battery", UNIT_PERCENTAGE, "mdi:battery-50", ["Canary Flex"]],
]
STATE_AIR_QUALITY_NORMAL = "normal"

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
CONF_FOR,
CONF_PLATFORM,
CONF_TYPE,
UNIT_PERCENTAGE,
)
from homeassistant.core import CALLBACK_TYPE, HomeAssistant
from homeassistant.helpers import config_validation as cv, entity_registry
@ -177,7 +178,7 @@ async def async_get_trigger_capabilities(hass: HomeAssistant, config):
if trigger_type == "current_temperature_changed":
unit_of_measurement = hass.config.units.temperature_unit
else:
unit_of_measurement = "%"
unit_of_measurement = UNIT_PERCENTAGE
return {
"extra_fields": vol.Schema(

View File

@ -33,6 +33,7 @@ from homeassistant.const import (
TEMP_CELSIUS,
TIME_DAYS,
TIME_HOURS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect
@ -78,7 +79,7 @@ SENSOR_TYPES = {
ATTR_CURRENT_HUMIDITY: {
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
ATTR_LABEL: "Inside Humidity",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:water-percent",
ATTR_ID: SENSOR_HUMIDITY_EXTRACT,
},
@ -93,7 +94,7 @@ SENSOR_TYPES = {
ATTR_OUTSIDE_HUMIDITY: {
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
ATTR_LABEL: "Outside Humidity",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:water-percent",
ATTR_ID: SENSOR_HUMIDITY_OUTDOOR,
},
@ -108,7 +109,7 @@ SENSOR_TYPES = {
ATTR_SUPPLY_HUMIDITY: {
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
ATTR_LABEL: "Supply Humidity",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:water-percent",
ATTR_ID: SENSOR_HUMIDITY_SUPPLY,
},
@ -122,7 +123,7 @@ SENSOR_TYPES = {
ATTR_SUPPLY_FAN_DUTY: {
ATTR_DEVICE_CLASS: None,
ATTR_LABEL: "Supply Fan Duty",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:fan",
ATTR_ID: SENSOR_FAN_SUPPLY_DUTY,
},
@ -136,7 +137,7 @@ SENSOR_TYPES = {
ATTR_EXHAUST_FAN_DUTY: {
ATTR_DEVICE_CLASS: None,
ATTR_LABEL: "Exhaust Fan Duty",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:fan",
ATTR_ID: SENSOR_FAN_EXHAUST_DUTY,
},
@ -151,7 +152,7 @@ SENSOR_TYPES = {
ATTR_EXHAUST_HUMIDITY: {
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
ATTR_LABEL: "Exhaust Humidity",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:water-percent",
ATTR_ID: SENSOR_HUMIDITY_EXHAUST,
},
@ -172,7 +173,7 @@ SENSOR_TYPES = {
ATTR_BYPASS_STATE: {
ATTR_DEVICE_CLASS: None,
ATTR_LABEL: "Bypass State",
ATTR_UNIT: "%",
ATTR_UNIT: UNIT_PERCENTAGE,
ATTR_ICON: "mdi:camera-iris",
ATTR_ID: SENSOR_BYPASS_STATE,
},

View File

@ -6,7 +6,7 @@ import logging
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.const import CONF_HOST, CONF_PORT, UNIT_PERCENTAGE
from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -268,7 +268,7 @@ class MarkerSensor(Entity):
@property
def unit_of_measurement(self):
"""Return the unit of measurement."""
return "%"
return UNIT_PERCENTAGE
@property
def device_state_attributes(self):

View File

@ -6,6 +6,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
@ -45,14 +46,24 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
ReadCommand.extractTemperature,
DEVICE_CLASS_TEMPERATURE,
],
["Danfoss Air Remaining Filter", "%", ReadCommand.filterPercent, None],
["Danfoss Air Humidity", "%", ReadCommand.humidity, DEVICE_CLASS_HUMIDITY],
["Danfoss Air Fan Step", "%", ReadCommand.fan_step, None],
[
"Danfoss Air Remaining Filter",
UNIT_PERCENTAGE,
ReadCommand.filterPercent,
None,
],
[
"Danfoss Air Humidity",
UNIT_PERCENTAGE,
ReadCommand.humidity,
DEVICE_CLASS_HUMIDITY,
],
["Danfoss Air Fan Step", UNIT_PERCENTAGE, ReadCommand.fan_step, None],
["Danfoss Air Exhaust Fan Speed", "RPM", ReadCommand.exhaust_fan_speed, None],
["Danfoss Air Supply Fan Speed", "RPM", ReadCommand.supply_fan_speed, None],
[
"Danfoss Air Dial Battery",
"%",
UNIT_PERCENTAGE,
ReadCommand.battery_percent,
DEVICE_CLASS_BATTERY,
],

View File

@ -19,6 +19,7 @@ from homeassistant.const import (
SPEED_METERS_PER_SECOND,
SPEED_MILES_PER_HOUR,
TIME_HOURS,
UNIT_PERCENTAGE,
UNIT_UV_INDEX,
)
import homeassistant.helpers.config_validation as cv
@ -113,11 +114,11 @@ SENSOR_TYPES = {
],
"precip_probability": [
"Precip Probability",
"%",
"%",
"%",
"%",
"%",
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
"mdi:water-percent",
["currently", "minutely", "hourly", "daily"],
],
@ -193,21 +194,21 @@ SENSOR_TYPES = {
],
"cloud_cover": [
"Cloud Coverage",
"%",
"%",
"%",
"%",
"%",
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
"mdi:weather-partly-cloudy",
["currently", "hourly", "daily"],
],
"humidity": [
"Humidity",
"%",
"%",
"%",
"%",
"%",
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
UNIT_PERCENTAGE,
"mdi:water-percent",
["currently", "hourly", "daily"],
],

View File

@ -9,7 +9,12 @@ from pydeconz.sensor import (
Thermostat,
)
from homeassistant.const import ATTR_TEMPERATURE, ATTR_VOLTAGE, DEVICE_CLASS_BATTERY
from homeassistant.const import (
ATTR_TEMPERATURE,
ATTR_VOLTAGE,
DEVICE_CLASS_BATTERY,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.helpers.dispatcher import (
async_dispatcher_connect,
@ -194,7 +199,7 @@ class DeconzBattery(DeconzDevice):
@property
def unit_of_measurement(self):
"""Return the unit of measurement of this entity."""
return "%"
return UNIT_PERCENTAGE
@property
def device_state_attributes(self):

View File

@ -4,6 +4,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
@ -23,7 +24,12 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
12,
),
DemoSensor(
"sensor_2", "Outside Humidity", 54, DEVICE_CLASS_HUMIDITY, "%", None
"sensor_2",
"Outside Humidity",
54,
DEVICE_CLASS_HUMIDITY,
UNIT_PERCENTAGE,
None,
),
]
)

View File

@ -6,7 +6,12 @@ import Adafruit_DHT # pylint: disable=import-error
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME, TEMP_FAHRENHEIT
from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
CONF_NAME,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
@ -28,7 +33,7 @@ SENSOR_TEMPERATURE = "temperature"
SENSOR_HUMIDITY = "humidity"
SENSOR_TYPES = {
SENSOR_TEMPERATURE: ["Temperature", None],
SENSOR_HUMIDITY: ["Humidity", "%"],
SENSOR_HUMIDITY: ["Humidity", UNIT_PERCENTAGE],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -6,7 +6,7 @@ import re
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_SENSORS, DATA_GIGABYTES
from homeassistant.const import CONF_SENSORS, DATA_GIGABYTES, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -24,7 +24,12 @@ SENSOR_SMS_UNREAD = "sms"
SENSORS = {
SENSOR_NETWORK: ("signal strength", "Network", None, "mdi:access-point-network"),
SENSOR_SIGNAL: ("signal strength", "Signal Strength", "%", "mdi:signal"),
SENSOR_SIGNAL: (
"signal strength",
"Signal Strength",
UNIT_PERCENTAGE,
"mdi:signal",
),
SENSOR_SMS_UNREAD: ("sms unread", "SMS unread", "", "mdi:message-text-outline"),
SENSOR_UPLOAD: ("traffic modem tx", "Sent", DATA_GIGABYTES, "mdi:cloud-upload"),
SENSOR_DOWNLOAD: (

View File

@ -4,7 +4,7 @@ import logging
from libpurecool.dyson_pure_cool import DysonPureCool
from libpurecool.dyson_pure_cool_link import DysonPureCoolLink
from homeassistant.const import STATE_OFF, TEMP_CELSIUS, TIME_HOURS
from homeassistant.const import STATE_OFF, TEMP_CELSIUS, TIME_HOURS, UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from . import DYSON_DEVICES
@ -13,7 +13,7 @@ SENSOR_UNITS = {
"air_quality": None,
"dust": None,
"filter_life": TIME_HOURS,
"humidity": "%",
"humidity": UNIT_PERCENTAGE,
}
SENSOR_ICONS = {

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
CONF_USERNAME,
DATA_GIGABITS,
TIME_DAYS,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
@ -27,7 +28,6 @@ from homeassistant.util import Throttle
_LOGGER = logging.getLogger(__name__)
PRICE = "CAD"
PERCENT = "%"
DEFAULT_NAME = "EBox"
@ -36,7 +36,7 @@ SCAN_INTERVAL = timedelta(minutes=15)
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
SENSOR_TYPES = {
"usage": ["Usage", PERCENT, "mdi:percent"],
"usage": ["Usage", UNIT_PERCENTAGE, "mdi:percent"],
"balance": ["Balance", PRICE, "mdi:square-inc-cash"],
"limit": ["Data limit", DATA_GIGABITS, "mdi:download"],
"days_left": ["Days left", TIME_DAYS, "mdi:calendar-today"],

View File

@ -5,6 +5,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
@ -12,7 +13,7 @@ from .const import _LOGGER, DOMAIN, ECOBEE_MODEL_TO_NAME, MANUFACTURER
SENSOR_TYPES = {
"temperature": ["Temperature", TEMP_FAHRENHEIT],
"humidity": ["Humidity", "%"],
"humidity": ["Humidity", UNIT_PERCENTAGE],
}

View File

@ -1,6 +1,8 @@
"""Support for Eight Sleep sensors."""
import logging
from homeassistant.const import UNIT_PERCENTAGE
from . import (
CONF_SENSORS,
DATA_EIGHT,
@ -18,9 +20,9 @@ ATTR_AVG_RESP_RATE = "Average Respiratory Rate"
ATTR_HEART_RATE = "Heart Rate"
ATTR_AVG_HEART_RATE = "Average Heart Rate"
ATTR_SLEEP_DUR = "Time Slept"
ATTR_LIGHT_PERC = "Light Sleep %"
ATTR_DEEP_PERC = "Deep Sleep %"
ATTR_REM_PERC = "REM Sleep %"
ATTR_LIGHT_PERC = f"Light Sleep {UNIT_PERCENTAGE}"
ATTR_DEEP_PERC = f"Deep Sleep {UNIT_PERCENTAGE}"
ATTR_REM_PERC = f"REM Sleep {UNIT_PERCENTAGE}"
ATTR_TNT = "Tosses & Turns"
ATTR_SLEEP_STAGE = "Sleep Stage"
ATTR_TARGET_HEAT = "Target Heating Level"
@ -100,7 +102,7 @@ class EightHeatSensor(EightSleepHeatEntity):
@property
def unit_of_measurement(self):
"""Return the unit the value is expressed in."""
return "%"
return UNIT_PERCENTAGE
async def async_update(self):
"""Retrieve latest state."""

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
STATE_CLOSED,
STATE_OPEN,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
@ -36,7 +37,7 @@ SENSOR_TYPE_WINDOWHANDLE = "windowhandle"
SENSOR_TYPES = {
SENSOR_TYPE_HUMIDITY: {
"name": "Humidity",
"unit": "%",
"unit": UNIT_PERCENTAGE,
"icon": "mdi:water-percent",
"class": DEVICE_CLASS_HUMIDITY,
},

View File

@ -6,19 +6,19 @@ from epsonprinter_pkg.epsonprinterapi import EpsonPrinterAPI
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, CONF_MONITORED_CONDITIONS
from homeassistant.const import CONF_HOST, CONF_MONITORED_CONDITIONS, UNIT_PERCENTAGE
from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
_LOGGER = logging.getLogger(__name__)
MONITORED_CONDITIONS = {
"black": ["Ink level Black", "%", "mdi:water"],
"photoblack": ["Ink level Photoblack", "%", "mdi:water"],
"magenta": ["Ink level Magenta", "%", "mdi:water"],
"cyan": ["Ink level Cyan", "%", "mdi:water"],
"yellow": ["Ink level Yellow", "%", "mdi:water"],
"clean": ["Cleaning level", "%", "mdi:water"],
"black": ["Ink level Black", UNIT_PERCENTAGE, "mdi:water"],
"photoblack": ["Ink level Photoblack", UNIT_PERCENTAGE, "mdi:water"],
"magenta": ["Ink level Magenta", UNIT_PERCENTAGE, "mdi:water"],
"cyan": ["Ink level Cyan", UNIT_PERCENTAGE, "mdi:water"],
"yellow": ["Ink level Yellow", UNIT_PERCENTAGE, "mdi:water"],
"clean": ["Cleaning level", UNIT_PERCENTAGE, "mdi:water"],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{

View File

@ -9,6 +9,7 @@ from homeassistant.const import (
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
@ -28,7 +29,12 @@ SENSOR_TYPES = {
None,
],
"CO2": ["CO2", CONCENTRATION_PARTS_PER_MILLION, "mdi:cloud", None],
"com.fibaro.humiditySensor": ["Humidity", "%", None, DEVICE_CLASS_HUMIDITY],
"com.fibaro.humiditySensor": [
"Humidity",
UNIT_PERCENTAGE,
None,
DEVICE_CLASS_HUMIDITY,
],
"com.fibaro.lightSensor": ["Light", "lx", None, DEVICE_CLASS_ILLUMINANCE],
}

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
MASS_MILLIGRAMS,
TIME_MILLISECONDS,
TIME_MINUTES,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -91,11 +92,11 @@ FITBIT_RESOURCES_LIST = {
],
"activities/tracker/steps": ["Tracker Steps", "steps", "walk"],
"body/bmi": ["BMI", "BMI", "human"],
"body/fat": ["Body Fat", "%", "human"],
"body/fat": ["Body Fat", UNIT_PERCENTAGE, "human"],
"body/weight": ["Weight", "", "human"],
"devices/battery": ["Battery", None, None],
"sleep/awakeningsCount": ["Awakenings Count", "times awaken", "sleep"],
"sleep/efficiency": ["Sleep Efficiency", "%", "sleep"],
"sleep/efficiency": ["Sleep Efficiency", UNIT_PERCENTAGE, "sleep"],
"sleep/minutesAfterWakeup": ["Minutes After Wakeup", TIME_MINUTES, "sleep"],
"sleep/minutesAsleep": ["Sleep Minutes Asleep", TIME_MINUTES, "sleep"],
"sleep/minutesAwake": ["Sleep Minutes Awake", TIME_MINUTES, "sleep"],

View File

@ -17,6 +17,7 @@ from homeassistant.const import (
CONF_USERNAME,
TEMP_CELSIUS,
TIME_SECONDS,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -37,7 +38,7 @@ SENSOR_TYPES = {
"time": [ATTR_TIME, TIME_SECONDS],
"pm": [ATTR_PM2_5, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, "mdi:cloud"],
"tmp": [ATTR_TEMPERATURE, TEMP_CELSIUS, "mdi:thermometer"],
"hum": [ATTR_HUMIDITY, "%", "mdi:water-percent"],
"hum": [ATTR_HUMIDITY, UNIT_PERCENTAGE, "mdi:water-percent"],
"co2": [
ATTR_CARBON_DIOXIDE,
CONCENTRATION_PARTS_PER_MILLION,
@ -48,7 +49,7 @@ SENSOR_TYPES = {
CONCENTRATION_PARTS_PER_BILLION,
"mdi:cloud",
],
"allpollu": [ATTR_FOOBOT_INDEX, "%", "mdi:percent"],
"allpollu": [ATTR_FOOBOT_INDEX, UNIT_PERCENTAGE, "mdi:percent"],
}
SCAN_INTERVAL = timedelta(minutes=10)

View File

@ -1,5 +1,5 @@
"""Constants for the Garmin Connect integration."""
from homeassistant.const import DEVICE_CLASS_TIMESTAMP, TIME_MINUTES
from homeassistant.const import DEVICE_CLASS_TIMESTAMP, TIME_MINUTES, UNIT_PERCENTAGE
DOMAIN = "garmin_connect"
ATTRIBUTION = "Data provided by garmin.com"
@ -159,45 +159,51 @@ GARMIN_ENTITY_LIST = {
None,
True,
],
"stressPercentage": ["Stress Percentage", "%", "mdi:flash-alert", None, False],
"stressPercentage": [
"Stress Percentage",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"restStressPercentage": [
"Rest Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"activityStressPercentage": [
"Activity Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"uncategorizedStressPercentage": [
"Uncat. Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"lowStressPercentage": [
"Low Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"mediumStressPercentage": [
"Medium Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
],
"highStressPercentage": [
"High Stress Percentage",
"%",
UNIT_PERCENTAGE,
"mdi:flash-alert",
None,
False,
@ -225,42 +231,42 @@ GARMIN_ENTITY_LIST = {
],
"bodyBatteryChargedValue": [
"Body Battery Charged",
"%",
UNIT_PERCENTAGE,
"mdi:battery-charging-100",
None,
True,
],
"bodyBatteryDrainedValue": [
"Body Battery Drained",
"%",
UNIT_PERCENTAGE,
"mdi:battery-alert-variant-outline",
None,
True,
],
"bodyBatteryHighestValue": [
"Body Battery Highest",
"%",
UNIT_PERCENTAGE,
"mdi:battery-heart",
None,
True,
],
"bodyBatteryLowestValue": [
"Body Battery Lowest",
"%",
UNIT_PERCENTAGE,
"mdi:battery-heart-outline",
None,
True,
],
"bodyBatteryMostRecentValue": [
"Body Battery Most Recent",
"%",
UNIT_PERCENTAGE,
"mdi:battery-positive",
None,
True,
],
"averageSpo2": ["Average SPO2", "%", "mdi:diabetes", None, True],
"lowestSpo2": ["Lowest SPO2", "%", "mdi:diabetes", None, True],
"latestSpo2": ["Latest SPO2", "%", "mdi:diabetes", None, True],
"averageSpo2": ["Average SPO2", UNIT_PERCENTAGE, "mdi:diabetes", None, True],
"lowestSpo2": ["Lowest SPO2", UNIT_PERCENTAGE, "mdi:diabetes", None, True],
"latestSpo2": ["Latest SPO2", UNIT_PERCENTAGE, "mdi:diabetes", None, True],
"latestSpo2ReadingTimeLocal": [
"Latest SPO2 Time",
"",
@ -270,7 +276,7 @@ GARMIN_ENTITY_LIST = {
],
"averageMonitoringEnvironmentAltitude": [
"Average Altitude",
"%",
UNIT_PERCENTAGE,
"mdi:image-filter-hdr",
None,
False,

View File

@ -2,7 +2,7 @@
from datetime import timedelta
from typing import Any, Dict
from homeassistant.const import DEVICE_CLASS_BATTERY
from homeassistant.const import DEVICE_CLASS_BATTERY, UNIT_PERCENTAGE
from homeassistant.helpers.typing import ConfigType, HomeAssistantType
import homeassistant.util.dt as dt_util
@ -77,7 +77,7 @@ class GeniusBattery(GeniusDevice):
@property
def unit_of_measurement(self) -> str:
"""Return the unit of measurement of the sensor."""
return "%"
return UNIT_PERCENTAGE
@property
def state(self) -> str:

View File

@ -1,5 +1,10 @@
"""Constants for Glances component."""
from homeassistant.const import DATA_GIBIBYTES, DATA_MEBIBYTES, TEMP_CELSIUS
from homeassistant.const import (
DATA_GIBIBYTES,
DATA_MEBIBYTES,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
DOMAIN = "glances"
CONF_VERSION = "version"
@ -14,13 +19,13 @@ DATA_UPDATED = "glances_data_updated"
SUPPORTED_VERSIONS = [2, 3]
SENSOR_TYPES = {
"disk_use_percent": ["fs", "used percent", "%", "mdi:harddisk"],
"disk_use_percent": ["fs", "used percent", UNIT_PERCENTAGE, "mdi:harddisk"],
"disk_use": ["fs", "used", DATA_GIBIBYTES, "mdi:harddisk"],
"disk_free": ["fs", "free", DATA_GIBIBYTES, "mdi:harddisk"],
"memory_use_percent": ["mem", "RAM used percent", "%", "mdi:memory"],
"memory_use_percent": ["mem", "RAM used percent", UNIT_PERCENTAGE, "mdi:memory"],
"memory_use": ["mem", "RAM used", DATA_MEBIBYTES, "mdi:memory"],
"memory_free": ["mem", "RAM free", DATA_MEBIBYTES, "mdi:memory"],
"swap_use_percent": ["memswap", "Swap used percent", "%", "mdi:memory"],
"swap_use_percent": ["memswap", "Swap used percent", UNIT_PERCENTAGE, "mdi:memory"],
"swap_use": ["memswap", "Swap used", DATA_GIBIBYTES, "mdi:memory"],
"swap_free": ["memswap", "Swap free", DATA_GIBIBYTES, "mdi:memory"],
"processor_load": ["load", "CPU load", "15 min", "mdi:memory"],
@ -28,10 +33,10 @@ SENSOR_TYPES = {
"process_total": ["processcount", "Total", "Count", "mdi:memory"],
"process_thread": ["processcount", "Thread", "Count", "mdi:memory"],
"process_sleeping": ["processcount", "Sleeping", "Count", "mdi:memory"],
"cpu_use_percent": ["cpu", "CPU used", "%", "mdi:memory"],
"cpu_use_percent": ["cpu", "CPU used", UNIT_PERCENTAGE, "mdi:memory"],
"sensor_temp": ["sensors", "Temp", TEMP_CELSIUS, "mdi:thermometer"],
"docker_active": ["docker", "Containers active", "", "mdi:docker"],
"docker_cpu_use": ["docker", "Containers CPU used", "%", "mdi:docker"],
"docker_cpu_use": ["docker", "Containers CPU used", UNIT_PERCENTAGE, "mdi:docker"],
"docker_memory_use": [
"docker",
"Containers RAM used",

View File

@ -14,6 +14,7 @@ from homeassistant.const import (
CONF_TYPE,
EVENT_HOMEASSISTANT_START,
TIME_HOURS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.exceptions import TemplateError
@ -36,7 +37,11 @@ CONF_TYPE_COUNT = "count"
CONF_TYPE_KEYS = [CONF_TYPE_TIME, CONF_TYPE_RATIO, CONF_TYPE_COUNT]
DEFAULT_NAME = "unnamed statistics"
UNITS = {CONF_TYPE_TIME: TIME_HOURS, CONF_TYPE_RATIO: "%", CONF_TYPE_COUNT: ""}
UNITS = {
CONF_TYPE_TIME: TIME_HOURS,
CONF_TYPE_RATIO: UNIT_PERCENTAGE,
CONF_TYPE_COUNT: "",
}
ICON = "mdi:chart-line"
ATTR_VALUE = "value"

View File

@ -23,6 +23,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entityfilter import FILTER_SCHEMA
@ -236,7 +237,7 @@ def get_accessory(hass, driver, state, aid, config):
TEMP_FAHRENHEIT,
):
a_type = "TemperatureSensor"
elif device_class == DEVICE_CLASS_HUMIDITY and unit == "%":
elif device_class == DEVICE_CLASS_HUMIDITY and unit == UNIT_PERCENTAGE:
a_type = "HumiditySensor"
elif device_class == DEVICE_CLASS_PM25 or DEVICE_CLASS_PM25 in state.entity_id:
a_type = "AirQualitySensor"

View File

@ -8,6 +8,7 @@ from homeassistant.const import (
DEVICE_CLASS_ILLUMINANCE,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
@ -18,7 +19,6 @@ TEMP_C_ICON = "mdi:thermometer"
BRIGHTNESS_ICON = "mdi:brightness-6"
CO2_ICON = "mdi:periodic-table-co2"
UNIT_PERCENT = "%"
UNIT_LUX = "lux"
@ -52,7 +52,7 @@ class HomeKitHumiditySensor(HomeKitEntity):
@property
def unit_of_measurement(self):
"""Return units for the sensor."""
return UNIT_PERCENT
return UNIT_PERCENTAGE
def _update_relative_humidity_current(self, value):
self._state = value
@ -234,7 +234,7 @@ class HomeKitBatterySensor(HomeKitEntity):
@property
def unit_of_measurement(self):
"""Return units for the sensor."""
return UNIT_PERCENT
return UNIT_PERCENTAGE
def _update_battery_level(self, value):
self._state = value

View File

@ -9,6 +9,7 @@ from homeassistant.const import (
ENERGY_WATT_HOUR,
POWER_WATT,
SPEED_KILOMETERS_PER_HOUR,
UNIT_PERCENTAGE,
VOLUME_CUBIC_METERS,
)
@ -32,7 +33,7 @@ HM_STATE_HA_CAST = {
}
HM_UNIT_HA_CAST = {
"HUMIDITY": "%",
"HUMIDITY": UNIT_PERCENTAGE,
"TEMPERATURE": "°C",
"ACTUAL_TEMPERATURE": "°C",
"BRIGHTNESS": "#",

View File

@ -33,6 +33,7 @@ from homeassistant.const import (
POWER_WATT,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.typing import HomeAssistantType
@ -155,7 +156,7 @@ class HomematicipAccesspointStatus(HomematicipGenericDevice):
@property
def unit_of_measurement(self) -> str:
"""Return the unit this state is expressed in."""
return "%"
return UNIT_PERCENTAGE
@property
def device_state_attributes(self) -> Dict[str, Any]:
@ -194,7 +195,7 @@ class HomematicipHeatingThermostat(HomematicipGenericDevice):
@property
def unit_of_measurement(self) -> str:
"""Return the unit this state is expressed in."""
return "%"
return UNIT_PERCENTAGE
class HomematicipHumiditySensor(HomematicipGenericDevice):
@ -217,7 +218,7 @@ class HomematicipHumiditySensor(HomematicipGenericDevice):
@property
def unit_of_measurement(self) -> str:
"""Return the unit this state is expressed in."""
return "%"
return UNIT_PERCENTAGE
class HomematicipTemperatureSensor(HomematicipGenericDevice):

View File

@ -8,7 +8,7 @@ import smbus # pylint: disable=import-error
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_NAME, TEMP_FAHRENHEIT
from homeassistant.const import CONF_NAME, TEMP_FAHRENHEIT, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
@ -50,7 +50,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
dev = [
HTU21DSensor(sensor_handler, name, SENSOR_TEMPERATURE, temp_unit),
HTU21DSensor(sensor_handler, name, SENSOR_HUMIDITY, "%"),
HTU21DSensor(sensor_handler, name, SENSOR_HUMIDITY, UNIT_PERCENTAGE),
]
async_add_entities(dev)

View File

@ -3,7 +3,7 @@ import logging
from typing import Dict
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_USERNAME, DEVICE_CLASS_BATTERY
from homeassistant.const import CONF_USERNAME, DEVICE_CLASS_BATTERY, UNIT_PERCENTAGE
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level
@ -61,7 +61,7 @@ class IcloudDeviceBatterySensor(Entity):
@property
def unit_of_measurement(self) -> str:
"""Battery state measured in percentage."""
return "%"
return UNIT_PERCENTAGE
@property
def icon(self) -> str:

View File

@ -1,9 +1,13 @@
"""Support for Home Assistant iOS app sensors."""
from homeassistant.components import ios
from homeassistant.const import UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level
SENSOR_TYPES = {"level": ["Battery Level", "%"], "state": ["Battery State", None]}
SENSOR_TYPES = {
"level": ["Battery Level", UNIT_PERCENTAGE],
"state": ["Battery State", None],
}
DEFAULT_ICON_LEVEL = "mdi:battery"
DEFAULT_ICON_STATE = "mdi:power-plug"

View File

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_PASSWORD,
CONF_USERNAME,
EVENT_HOMEASSISTANT_STOP,
UNIT_PERCENTAGE,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers import config_validation as cv, discovery
@ -101,7 +102,7 @@ NODE_FILTERS = {
},
"light": {
"uom": ["51"],
"states": ["on", "off", "%"],
"states": ["on", "off", UNIT_PERCENTAGE],
"node_def_id": [
"DimmerLampSwitch",
"DimmerLampSwitch_ADV",

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
TIME_MONTHS,
TIME_SECONDS,
TIME_YEARS,
UNIT_PERCENTAGE,
UNIT_UV_INDEX,
)
from homeassistant.helpers.typing import ConfigType
@ -74,7 +75,7 @@ UOM_FRIENDLY_NAME = {
"48": SPEED_MILES_PER_HOUR,
"49": SPEED_METERS_PER_SECOND,
"50": "ohm",
"51": "%",
"51": UNIT_PERCENTAGE,
"52": "lb",
"53": "power factor",
"54": CONCENTRATION_PARTS_PER_MILLION,

View File

@ -7,6 +7,7 @@ from homeassistant.const import (
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
UNIT_PERCENTAGE,
)
DOMAIN = "kaiterra"
@ -53,7 +54,7 @@ ATTR_AQI_POLLUTANT = "air_quality_index_pollutant"
AVAILABLE_AQI_STANDARDS = ["us", "cn", "in"]
AVAILABLE_UNITS = [
"x",
"%",
UNIT_PERCENTAGE,
"C",
"F",
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER,

View File

@ -10,6 +10,7 @@ from homeassistant.const import (
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
@ -21,7 +22,7 @@ _LOGGER = logging.getLogger(__name__)
SENSOR_TYPES = {
DEVICE_CLASS_TEMPERATURE: ["Temperature", TEMP_CELSIUS],
DEVICE_CLASS_HUMIDITY: ["Humidity", "%"],
DEVICE_CLASS_HUMIDITY: ["Humidity", UNIT_PERCENTAGE],
}
@ -119,9 +120,7 @@ class KonnectedSensor(Entity):
@property
def device_info(self):
"""Return the device info."""
return {
"identifiers": {(KONNECTED_DOMAIN, self._device_id)},
}
return {"identifiers": {(KONNECTED_DOMAIN, self._device_id)}}
async def async_added_to_hass(self):
"""Store entity_id and register state change callback."""

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_TYPE,
EVENT_HOMEASSISTANT_STOP,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -193,7 +194,7 @@ class LaCrosseHumidity(LaCrosseSensor):
@property
def unit_of_measurement(self):
"""Return the unit of measurement."""
return "%"
return UNIT_PERCENTAGE
@property
def state(self):

View File

@ -1,7 +1,7 @@
"""Constants for the LCN component."""
from itertools import product
from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT
from homeassistant.const import TEMP_CELSIUS, TEMP_FAHRENHEIT, UNIT_PERCENTAGE
DOMAIN = "lcn"
DATA_LCN = "lcn"
@ -153,7 +153,7 @@ VAR_UNITS = [
"LX",
"M/S",
"METERPERSECOND",
"%",
UNIT_PERCENTAGE,
"PERCENT",
"PPM",
"VOLT",

View File

@ -6,7 +6,12 @@ from batinfo import Batteries
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import ATTR_NAME, CONF_NAME, DEVICE_CLASS_BATTERY
from homeassistant.const import (
ATTR_NAME,
CONF_NAME,
DEVICE_CLASS_BATTERY,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -98,7 +103,7 @@ class LinuxBatterySensor(Entity):
@property
def unit_of_measurement(self):
"""Return the unit the value is expressed in."""
return "%"
return UNIT_PERCENTAGE
@property
def device_state_attributes(self):

View File

@ -1,4 +1,5 @@
"""Constants in Logi Circle component."""
from homeassistant.const import UNIT_PERCENTAGE
CONF_CLIENT_ID = "client_id"
CONF_CLIENT_SECRET = "client_secret"
@ -15,11 +16,11 @@ RECORDING_MODE_KEY = "RECORDING_MODE"
# Sensor types: Name, unit of measure, icon per sensor key.
LOGI_SENSORS = {
"battery_level": ["Battery", "%", "battery-50"],
"battery_level": ["Battery", UNIT_PERCENTAGE, "battery-50"],
"last_activity_time": ["Last Activity", None, "history"],
"recording": ["Recording Mode", None, "eye"],
"signal_strength_category": ["WiFi Signal Category", None, "wifi"],
"signal_strength_percentage": ["WiFi Signal Strength", "%", "wifi"],
"signal_strength_percentage": ["WiFi Signal Strength", UNIT_PERCENTAGE, "wifi"],
"streaming": ["Streaming Mode", None, "camera"],
}

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_SENSORS,
CONF_SHOW_ON_MAP,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.exceptions import ConfigEntryNotReady
@ -42,7 +43,7 @@ TOPIC_UPDATE = f"{DOMAIN}_data_update"
SENSORS = {
SENSOR_TEMPERATURE: ["Temperature", "mdi:thermometer", TEMP_CELSIUS],
SENSOR_HUMIDITY: ["Humidity", "mdi:water-percent", "%"],
SENSOR_HUMIDITY: ["Humidity", "mdi:water-percent", UNIT_PERCENTAGE],
SENSOR_PRESSURE: ["Pressure", "mdi:arrow-down-bold", "Pa"],
SENSOR_PRESSURE_AT_SEALEVEL: ["Pressure at sealevel", "mdi:download", "Pa"],
SENSOR_PM10: [

View File

@ -1,6 +1,11 @@
"""Meteo-France component constants."""
from homeassistant.const import SPEED_KILOMETERS_PER_HOUR, TEMP_CELSIUS, TIME_MINUTES
from homeassistant.const import (
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
TIME_MINUTES,
UNIT_PERCENTAGE,
)
DOMAIN = "meteo_france"
PLATFORMS = ["sensor", "weather"]
@ -17,25 +22,25 @@ SENSOR_TYPE_CLASS = "device_class"
SENSOR_TYPES = {
"rain_chance": {
SENSOR_TYPE_NAME: "Rain chance",
SENSOR_TYPE_UNIT: "%",
SENSOR_TYPE_UNIT: UNIT_PERCENTAGE,
SENSOR_TYPE_ICON: "mdi:weather-rainy",
SENSOR_TYPE_CLASS: None,
},
"freeze_chance": {
SENSOR_TYPE_NAME: "Freeze chance",
SENSOR_TYPE_UNIT: "%",
SENSOR_TYPE_UNIT: UNIT_PERCENTAGE,
SENSOR_TYPE_ICON: "mdi:snowflake",
SENSOR_TYPE_CLASS: None,
},
"thunder_chance": {
SENSOR_TYPE_NAME: "Thunder chance",
SENSOR_TYPE_UNIT: "%",
SENSOR_TYPE_UNIT: UNIT_PERCENTAGE,
SENSOR_TYPE_ICON: "mdi:weather-lightning",
SENSOR_TYPE_CLASS: None,
},
"snow_chance": {
SENSOR_TYPE_NAME: "Snow chance",
SENSOR_TYPE_UNIT: "%",
SENSOR_TYPE_UNIT: UNIT_PERCENTAGE,
SENSOR_TYPE_ICON: "mdi:weather-snowy",
SENSOR_TYPE_CLASS: None,
},

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_NAME,
SPEED_MILES_PER_HOUR,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -71,8 +72,8 @@ SENSOR_TYPES = {
"visibility": ["Visibility", None],
"visibility_distance": ["Visibility Distance", "km"],
"uv": ["UV", None],
"precipitation": ["Probability of Precipitation", "%"],
"humidity": ["Humidity", "%"],
"precipitation": ["Probability of Precipitation", UNIT_PERCENTAGE],
"humidity": ["Humidity", UNIT_PERCENTAGE],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -6,7 +6,7 @@ from pycsspeechtts import pycsspeechtts
import voluptuous as vol
from homeassistant.components.tts import CONF_LANG, PLATFORM_SCHEMA, Provider
from homeassistant.const import CONF_API_KEY, CONF_TYPE
from homeassistant.const import CONF_API_KEY, CONF_TYPE, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
CONF_GENDER = "gender"
@ -122,8 +122,8 @@ class MicrosoftProvider(Provider):
self._gender = gender
self._type = ttype
self._output = DEFAULT_OUTPUT
self._rate = f"{rate}%"
self._volume = f"{volume}%"
self._rate = f"{rate}{UNIT_PERCENTAGE}"
self._volume = f"{volume}{UNIT_PERCENTAGE}"
self._pitch = pitch
self._contour = contour
self._region = region

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
CONF_NAME,
CONF_SCAN_INTERVAL,
EVENT_HOMEASSISTANT_START,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -43,9 +44,9 @@ SCAN_INTERVAL = timedelta(seconds=1200)
SENSOR_TYPES = {
"temperature": ["Temperature", "°C", "mdi:thermometer"],
"light": ["Light intensity", "lx", "mdi:white-balance-sunny"],
"moisture": ["Moisture", "%", "mdi:water-percent"],
"moisture": ["Moisture", UNIT_PERCENTAGE, "mdi:water-percent"],
"conductivity": ["Conductivity", "µS/cm", "mdi:flash-circle"],
"battery": ["Battery", "%", "mdi:battery-charging"],
"battery": ["Battery", UNIT_PERCENTAGE, "mdi:battery-charging"],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_HUMIDITY,
DEVICE_CLASS_TEMPERATURE,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -46,8 +47,8 @@ DEFAULT_TIMEOUT = 10
# Sensor types are defined like: Name, units
SENSOR_TYPES = {
"temperature": [DEVICE_CLASS_TEMPERATURE, "Temperature", "°C"],
"humidity": [DEVICE_CLASS_HUMIDITY, "Humidity", "%"],
"battery": [DEVICE_CLASS_BATTERY, "Battery", "%"],
"humidity": [DEVICE_CLASS_HUMIDITY, "Humidity", UNIT_PERCENTAGE],
"battery": [DEVICE_CLASS_BATTERY, "Battery", UNIT_PERCENTAGE],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
STATE_UNKNOWN,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -245,7 +246,7 @@ class MoldIndicator(Entity):
)
return None
if unit != "%":
if unit != UNIT_PERCENTAGE:
_LOGGER.error(
"Humidity sensor %s has unsupported unit: %s %s",
state.entity_id,
@ -360,7 +361,7 @@ class MoldIndicator(Entity):
@property
def unit_of_measurement(self):
"""Return the unit of measurement."""
return "%"
return UNIT_PERCENTAGE
@property
def state(self):

View File

@ -2,6 +2,7 @@
import logging
from homeassistant.components.sensor import ENTITY_ID_FORMAT
from homeassistant.const import UNIT_PERCENTAGE
from homeassistant.core import callback
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level
@ -25,7 +26,9 @@ SENSORS = [
EVSensorConfig("Electric Range", "electricRange", "miles", "mdi:speedometer"),
EVSensorConfig("Charged By", "estimatedFullChargeBy"),
EVSensorConfig("Charge Mode", "chargeMode"),
EVSensorConfig("Battery Level", BATTERY_SENSOR, "%", "mdi:battery", ["charging"]),
EVSensorConfig(
"Battery Level", BATTERY_SENSOR, UNIT_PERCENTAGE, "mdi:battery", ["charging"]
),
]

View File

@ -7,13 +7,14 @@ from homeassistant.const import (
POWER_WATT,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
SENSORS = {
"V_TEMP": [None, "mdi:thermometer"],
"V_HUM": ["%", "mdi:water-percent"],
"V_DIMMER": ["%", "mdi:percent"],
"V_PERCENTAGE": ["%", "mdi:percent"],
"V_HUM": [UNIT_PERCENTAGE, "mdi:water-percent"],
"V_DIMMER": [UNIT_PERCENTAGE, "mdi:percent"],
"V_PERCENTAGE": [UNIT_PERCENTAGE, "mdi:percent"],
"V_PRESSURE": [None, "mdi:gauge"],
"V_FORECAST": [None, "mdi:weather-partly-cloudy"],
"V_RAIN": [None, "mdi:weather-rainy"],
@ -26,7 +27,7 @@ SENSORS = {
"V_IMPEDANCE": ["ohm", None],
"V_WATT": [POWER_WATT, None],
"V_KWH": [ENERGY_KILO_WATT_HOUR, None],
"V_LIGHT_LEVEL": ["%", "mdi:white-balance-sunny"],
"V_LIGHT_LEVEL": [UNIT_PERCENTAGE, "mdi:white-balance-sunny"],
"V_FLOW": ["m", "mdi:gauge"],
"V_VOLUME": ["", None],
"V_LEVEL": {

View File

@ -5,6 +5,7 @@ import logging
from pybotvac.exceptions import NeatoRobotException
from homeassistant.components.sensor import DEVICE_CLASS_BATTERY
from homeassistant.const import UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from .const import NEATO_DOMAIN, NEATO_LOGIN, NEATO_ROBOTS, SCAN_INTERVAL_MINUTES
@ -83,7 +84,7 @@ class NeatoSensor(Entity):
@property
def unit_of_measurement(self):
"""Return unit of measurement."""
return "%"
return UNIT_PERCENTAGE
@property
def device_info(self):

View File

@ -8,6 +8,7 @@ from homeassistant.const import (
STATE_OFF,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from . import CONF_SENSORS, DATA_NEST, DATA_NEST_CONFIG, NestSensorDevice
@ -41,7 +42,7 @@ _VALID_SENSOR_TYPES = (
+ STRUCTURE_CAMERA_SENSOR_TYPES
)
SENSOR_UNITS = {"humidity": "%"}
SENSOR_UNITS = {"humidity": UNIT_PERCENTAGE}
SENSOR_DEVICE_CLASSES = {"humidity": DEVICE_CLASS_HUMIDITY}

View File

@ -11,6 +11,7 @@ from homeassistant.const import (
DEVICE_CLASS_TEMPERATURE,
SPEED_KILOMETERS_PER_HOUR,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
@ -57,13 +58,18 @@ SENSOR_TYPES = {
"co2": ["CO2", CONCENTRATION_PARTS_PER_MILLION, "mdi:periodic-table-co2", None],
"pressure": ["Pressure", "mbar", "mdi:gauge", None],
"noise": ["Noise", "dB", "mdi:volume-high", None],
"humidity": ["Humidity", "%", "mdi:water-percent", DEVICE_CLASS_HUMIDITY],
"humidity": [
"Humidity",
UNIT_PERCENTAGE,
"mdi:water-percent",
DEVICE_CLASS_HUMIDITY,
],
"rain": ["Rain", "mm", "mdi:weather-rainy", None],
"sum_rain_1": ["sum_rain_1", "mm", "mdi:weather-rainy", None],
"sum_rain_24": ["sum_rain_24", "mm", "mdi:weather-rainy", None],
"battery_vp": ["Battery", "", "mdi:battery", None],
"battery_lvl": ["Battery_lvl", "", "mdi:battery", None],
"battery_percent": ["battery_percent", "%", None, DEVICE_CLASS_BATTERY],
"battery_percent": ["battery_percent", UNIT_PERCENTAGE, None, DEVICE_CLASS_BATTERY],
"min_temp": ["Min Temp.", TEMP_CELSIUS, "mdi:thermometer", None],
"max_temp": ["Max Temp.", TEMP_CELSIUS, "mdi:thermometer", None],
"windangle": ["Angle", "", "mdi:compass", None],

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_NAME,
CONF_PORT,
CONF_RESOURCES,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -78,7 +79,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
try:
resource_data = netdata.api.metrics[sensor]
unit = (
"%"
UNIT_PERCENTAGE
if resource_data["units"] == "percentage"
else resource_data["units"]
)

View File

@ -1,7 +1,7 @@
"""Define possible sensor types."""
from homeassistant.components.binary_sensor import DEVICE_CLASS_CONNECTIVITY
from homeassistant.const import DATA_MEBIBYTES
from homeassistant.const import DATA_MEBIBYTES, UNIT_PERCENTAGE
SENSOR_SMS = "sms"
SENSOR_SMS_TOTAL = "sms_total"
@ -11,7 +11,7 @@ SENSOR_UNITS = {
SENSOR_SMS: "unread",
SENSOR_SMS_TOTAL: "messages",
SENSOR_USAGE: DATA_MEBIBYTES,
"radio_quality": "%",
"radio_quality": UNIT_PERCENTAGE,
"rx_level": "dBm",
"tx_level": "dBm",
"upstream": None,

View File

@ -14,7 +14,7 @@ from homeassistant.components.notify import (
PLATFORM_SCHEMA,
BaseNotificationService,
)
from homeassistant.const import CONF_HOST, CONF_TIMEOUT
from homeassistant.const import CONF_HOST, CONF_TIMEOUT, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
_LOGGER = logging.getLogger(__name__)
@ -66,7 +66,14 @@ POSITIONS = {
"center": 4,
}
TRANSPARENCIES = {"default": 0, "0%": 1, "25%": 2, "50%": 3, "75%": 4, "100%": 5}
TRANSPARENCIES = {
"default": 0,
f"0{UNIT_PERCENTAGE}": 1,
f"25{UNIT_PERCENTAGE}": 2,
f"50{UNIT_PERCENTAGE}": 3,
f"75{UNIT_PERCENTAGE}": 4,
f"100{UNIT_PERCENTAGE}": 5,
}
COLORS = {
"grey": "#607d8b",

View File

@ -1,7 +1,7 @@
"""Battery Charge and Range Support for the Nissan Leaf."""
import logging
from homeassistant.const import DEVICE_CLASS_BATTERY
from homeassistant.const import DEVICE_CLASS_BATTERY, UNIT_PERCENTAGE
from homeassistant.helpers.icon import icon_for_battery_level
from homeassistant.util.distance import LENGTH_KILOMETERS, LENGTH_MILES
from homeassistant.util.unit_system import IMPERIAL_SYSTEM, METRIC_SYSTEM
@ -56,7 +56,7 @@ class LeafBatterySensor(LeafEntity):
@property
def unit_of_measurement(self):
"""Battery state measured in percentage."""
return "%"
return UNIT_PERCENTAGE
@property
def icon(self):

View File

@ -19,6 +19,7 @@ from homeassistant.const import (
STATE_UNKNOWN,
TEMP_CELSIUS,
TIME_SECONDS,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
@ -51,8 +52,8 @@ SENSOR_TYPES = {
"ups.firmware": ["Firmware Version", "", "mdi:information-outline"],
"ups.firmware.aux": ["Firmware Version 2", "", "mdi:information-outline"],
"ups.temperature": ["UPS Temperature", TEMP_CELSIUS, "mdi:thermometer"],
"ups.load": ["Load", "%", "mdi:gauge"],
"ups.load.high": ["Overload Setting", "%", "mdi:gauge"],
"ups.load": ["Load", UNIT_PERCENTAGE, "mdi:gauge"],
"ups.load.high": ["Overload Setting", UNIT_PERCENTAGE, "mdi:gauge"],
"ups.id": ["System identifier", "", "mdi:information-outline"],
"ups.delay.start": ["Load Restart Delay", TIME_SECONDS, "mdi:timer"],
"ups.delay.reboot": ["UPS Reboot Delay", TIME_SECONDS, "mdi:timer"],
@ -65,7 +66,7 @@ SENSOR_TYPES = {
"ups.test.date": ["Self-Test Date", "", "mdi:calendar"],
"ups.display.language": ["Language", "", "mdi:information-outline"],
"ups.contacts": ["External Contacts", "", "mdi:information-outline"],
"ups.efficiency": ["Efficiency", "%", "mdi:gauge"],
"ups.efficiency": ["Efficiency", UNIT_PERCENTAGE, "mdi:gauge"],
"ups.power": ["Current Apparent Power", "VA", "mdi:flash"],
"ups.power.nominal": ["Nominal Power", "VA", "mdi:flash"],
"ups.realpower": ["Current Real Power", POWER_WATT, "mdi:flash"],
@ -77,10 +78,18 @@ SENSOR_TYPES = {
"ups.start.battery": ["Start on Battery", "", "mdi:information-outline"],
"ups.start.reboot": ["Reboot on Battery", "", "mdi:information-outline"],
"ups.shutdown": ["Shutdown Ability", "", "mdi:information-outline"],
"battery.charge": ["Battery Charge", "%", "mdi:gauge"],
"battery.charge.low": ["Low Battery Setpoint", "%", "mdi:gauge"],
"battery.charge.restart": ["Minimum Battery to Start", "%", "mdi:gauge"],
"battery.charge.warning": ["Warning Battery Setpoint", "%", "mdi:gauge"],
"battery.charge": ["Battery Charge", UNIT_PERCENTAGE, "mdi:gauge"],
"battery.charge.low": ["Low Battery Setpoint", UNIT_PERCENTAGE, "mdi:gauge"],
"battery.charge.restart": [
"Minimum Battery to Start",
UNIT_PERCENTAGE,
"mdi:gauge",
],
"battery.charge.warning": [
"Warning Battery Setpoint",
UNIT_PERCENTAGE,
"mdi:gauge",
],
"battery.charger.status": ["Charging Status", "", "mdi:information-outline"],
"battery.voltage": ["Battery Voltage", "V", "mdi:flash"],
"battery.voltage.nominal": ["Nominal Battery Voltage", "V", "mdi:flash"],

View File

@ -20,6 +20,7 @@ from homeassistant.const import (
CONTENT_TYPE_JSON,
TEMP_CELSIUS,
TIME_SECONDS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers import discovery
import homeassistant.helpers.config_validation as cv
@ -71,7 +72,13 @@ SENSOR_TYPES = {
# API Endpoint, Group, Key, unit, icon
"Temperatures": ["printer", "temperature", "*", TEMP_CELSIUS],
"Current State": ["printer", "state", "text", None, "mdi:printer-3d"],
"Job Percentage": ["job", "progress", "completion", "%", "mdi:file-percent"],
"Job Percentage": [
"job",
"progress",
"completion",
UNIT_PERCENTAGE,
"mdi:file-percent",
],
"Time Remaining": [
"job",
"progress",

View File

@ -3,7 +3,7 @@ import logging
import requests
from homeassistant.const import TEMP_CELSIUS
from homeassistant.const import TEMP_CELSIUS, UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from . import DOMAIN as COMPONENT_DOMAIN, SENSOR_TYPES
@ -111,7 +111,7 @@ class OctoPrintSensor(Entity):
def state(self):
"""Return the state of the sensor."""
sensor_unit = self.unit_of_measurement
if sensor_unit in (TEMP_CELSIUS, "%"):
if sensor_unit in (TEMP_CELSIUS, UNIT_PERCENTAGE):
# API sometimes returns null and not 0
if self._state is None:
self._state = 0

View File

@ -8,7 +8,7 @@ from pyownet import protocol
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, CONF_PORT, TEMP_CELSIUS
from homeassistant.const import CONF_HOST, CONF_PORT, TEMP_CELSIUS, UNIT_PERCENTAGE
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -60,14 +60,14 @@ HOBBYBOARD_EF = {
SENSOR_TYPES = {
# SensorType: [ Measured unit, Unit ]
"temperature": ["temperature", TEMP_CELSIUS],
"humidity": ["humidity", "%"],
"humidity_raw": ["humidity", "%"],
"humidity": ["humidity", UNIT_PERCENTAGE],
"humidity_raw": ["humidity", UNIT_PERCENTAGE],
"pressure": ["pressure", "mb"],
"illuminance": ["illuminance", "lux"],
"wetness_0": ["wetness", "%"],
"wetness_1": ["wetness", "%"],
"wetness_2": ["wetness", "%"],
"wetness_3": ["wetness", "%"],
"wetness_0": ["wetness", UNIT_PERCENTAGE],
"wetness_1": ["wetness", UNIT_PERCENTAGE],
"wetness_2": ["wetness", UNIT_PERCENTAGE],
"wetness_3": ["wetness", UNIT_PERCENTAGE],
"moisture_0": ["moisture", "cb"],
"moisture_1": ["moisture", "cb"],
"moisture_2": ["moisture", "cb"],

View File

@ -6,6 +6,7 @@ from homeassistant.const import (
TEMP_CELSIUS,
TIME_HOURS,
TIME_MINUTES,
UNIT_PERCENTAGE,
)
ATTR_GW_ID = "gateway_id"
@ -38,7 +39,6 @@ SERVICE_SET_SB_TEMP = "set_setback_temperature"
UNIT_BAR = "bar"
UNIT_KW = "kW"
UNIT_L_MIN = f"L/{TIME_MINUTES}"
UNIT_PERCENT = "%"
BINARY_SENSOR_INFO = {
# [device_class, friendly_name format]
@ -121,7 +121,7 @@ SENSOR_INFO = {
gw_vars.DATA_MASTER_MEMBERID: [None, None, "Thermostat Member ID {}"],
gw_vars.DATA_SLAVE_MEMBERID: [None, None, "Boiler Member ID {}"],
gw_vars.DATA_SLAVE_OEM_FAULT: [None, None, "Boiler OEM Fault Code {}"],
gw_vars.DATA_COOLING_CONTROL: [None, UNIT_PERCENT, "Cooling Control Signal {}"],
gw_vars.DATA_COOLING_CONTROL: [None, UNIT_PERCENTAGE, "Cooling Control Signal {}"],
gw_vars.DATA_CONTROL_SETPOINT_2: [
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
@ -134,13 +134,13 @@ SENSOR_INFO = {
],
gw_vars.DATA_SLAVE_MAX_RELATIVE_MOD: [
None,
UNIT_PERCENT,
UNIT_PERCENTAGE,
"Boiler Maximum Relative Modulation {}",
],
gw_vars.DATA_SLAVE_MAX_CAPACITY: [None, UNIT_KW, "Boiler Maximum Capacity {}"],
gw_vars.DATA_SLAVE_MIN_MOD_LEVEL: [
None,
UNIT_PERCENT,
UNIT_PERCENTAGE,
"Boiler Minimum Modulation Level {}",
],
gw_vars.DATA_ROOM_SETPOINT: [
@ -148,7 +148,7 @@ SENSOR_INFO = {
TEMP_CELSIUS,
"Room Setpoint {}",
],
gw_vars.DATA_REL_MOD_LEVEL: [None, UNIT_PERCENT, "Relative Modulation Level {}"],
gw_vars.DATA_REL_MOD_LEVEL: [None, UNIT_PERCENTAGE, "Relative Modulation Level {}"],
gw_vars.DATA_CH_WATER_PRESS: [None, UNIT_BAR, "Central Heating Water Pressure {}"],
gw_vars.DATA_DHW_FLOW_RATE: [None, UNIT_L_MIN, "Hot Water Flow Rate {}"],
gw_vars.DATA_ROOM_SETPOINT_2: [

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
SPEED_METERS_PER_SECOND,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -36,9 +37,9 @@ SENSOR_TYPES = {
"temperature": ["Temperature", None],
"wind_speed": ["Wind speed", SPEED_METERS_PER_SECOND],
"wind_bearing": ["Wind bearing", "°"],
"humidity": ["Humidity", "%"],
"humidity": ["Humidity", UNIT_PERCENTAGE],
"pressure": ["Pressure", "mbar"],
"clouds": ["Cloud coverage", "%"],
"clouds": ["Cloud coverage", UNIT_PERCENTAGE],
"rain": ["Rain", "mm"],
"snow": ["Snow", "mm"],
"weather_code": ["Weather code", None],

View File

@ -1,6 +1,8 @@
"""Constants for the pi_hole integration."""
from datetime import timedelta
from homeassistant.const import UNIT_PERCENTAGE
DOMAIN = "pi_hole"
CONF_LOCATION = "location"
@ -26,7 +28,7 @@ SENSOR_DICT = {
"ads_blocked_today": ["Ads Blocked Today", "ads", "mdi:close-octagon-outline"],
"ads_percentage_today": [
"Ads Percentage Blocked Today",
"%",
UNIT_PERCENTAGE,
"mdi:close-octagon-outline",
],
"clients_ever_seen": ["Seen Clients", "clients", "mdi:account-outline"],

View File

@ -2,6 +2,7 @@
import logging
from homeassistant.const import UNIT_PERCENTAGE
from homeassistant.helpers.dispatcher import (
async_dispatcher_connect,
async_dispatcher_send,
@ -145,7 +146,7 @@ class PlaatoSensor(Entity):
if self._type == ATTR_BPM:
return "bpm"
if self._type == ATTR_ABV:
return "%"
return UNIT_PERCENTAGE
return ""

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
STATE_UNAVAILABLE,
STATE_UNKNOWN,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError
@ -131,14 +132,17 @@ class Plant(Entity):
"""
READINGS = {
READING_BATTERY: {ATTR_UNIT_OF_MEASUREMENT: "%", "min": CONF_MIN_BATTERY_LEVEL},
READING_BATTERY: {
ATTR_UNIT_OF_MEASUREMENT: UNIT_PERCENTAGE,
"min": CONF_MIN_BATTERY_LEVEL,
},
READING_TEMPERATURE: {
ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS,
"min": CONF_MIN_TEMPERATURE,
"max": CONF_MAX_TEMPERATURE,
},
READING_MOISTURE: {
ATTR_UNIT_OF_MEASUREMENT: "%",
ATTR_UNIT_OF_MEASUREMENT: UNIT_PERCENTAGE,
"min": CONF_MIN_MOISTURE,
"max": CONF_MAX_MOISTURE,
},

View File

@ -7,6 +7,7 @@ from homeassistant.const import (
DEVICE_CLASS_PRESSURE,
DEVICE_CLASS_TEMPERATURE,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.util.dt import parse_datetime
@ -21,7 +22,7 @@ DEVICE_CLASS_SOUND = "sound_level"
SENSOR_TYPES = {
DEVICE_CLASS_TEMPERATURE: (None, 1, TEMP_CELSIUS),
DEVICE_CLASS_PRESSURE: (None, 0, "hPa"),
DEVICE_CLASS_HUMIDITY: (None, 1, "%"),
DEVICE_CLASS_HUMIDITY: (None, 1, UNIT_PERCENTAGE),
DEVICE_CLASS_SOUND: ("mdi:ear-hearing", 1, "dBa"),
}

View File

@ -17,6 +17,7 @@ from homeassistant.const import (
EVENT_STATE_CHANGED,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from homeassistant.helpers import entityfilter, state as state_helper
import homeassistant.helpers.config_validation as cv
@ -349,7 +350,7 @@ class PrometheusMetrics:
units = {
TEMP_CELSIUS: "c",
TEMP_FAHRENHEIT: "c", # F should go into C metric
"%": "percent",
UNIT_PERCENTAGE: "percent",
}
default = unit.replace("/", "_per_")
default = default.lower()

View File

@ -19,6 +19,7 @@ from homeassistant.const import (
DATA_GIBIBYTES,
DATA_RATE_MEBIBYTES_PER_SECOND,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
@ -61,12 +62,12 @@ _SYSTEM_MON_COND = {
}
_CPU_MON_COND = {
"cpu_temp": ["CPU Temperature", TEMP_CELSIUS, "mdi:thermometer"],
"cpu_usage": ["CPU Usage", "%", "mdi:chip"],
"cpu_usage": ["CPU Usage", UNIT_PERCENTAGE, "mdi:chip"],
}
_MEMORY_MON_COND = {
"memory_free": ["Memory Available", DATA_GIBIBYTES, "mdi:memory"],
"memory_used": ["Memory Used", DATA_GIBIBYTES, "mdi:memory"],
"memory_percent_used": ["Memory Usage", "%", "mdi:memory"],
"memory_percent_used": ["Memory Usage", UNIT_PERCENTAGE, "mdi:memory"],
}
_NETWORK_MON_COND = {
"network_link_status": ["Network Link", None, "mdi:checkbox-marked-circle-outline"],
@ -80,7 +81,7 @@ _DRIVE_MON_COND = {
_VOLUME_MON_COND = {
"volume_size_used": ["Used Space", DATA_GIBIBYTES, "mdi:chart-pie"],
"volume_size_free": ["Free Space", DATA_GIBIBYTES, "mdi:chart-pie"],
"volume_percentage_used": ["Volume Used", "%", "mdi:chart-pie"],
"volume_percentage_used": ["Volume Used", UNIT_PERCENTAGE, "mdi:chart-pie"],
}
_MONITORED_CONDITIONS = (

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_USERNAME,
TIME_DAYS,
TIME_MINUTES,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send
@ -58,7 +59,7 @@ ICON_MAP = {
UNIT_OF_MEASUREMENT_MAP = {
"auto_watering": "",
"battery": "%",
"battery": UNIT_PERCENTAGE,
"is_watering": "",
"manual_watering": "",
"next_cycle": "",

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_PORT,
CONF_SENSORS,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.discovery import load_platform
@ -123,7 +124,7 @@ SENSOR_TYPES = {
"_chamber_",
],
"current_state": ["state", None, "mdi:printer-3d", ""],
"current_job": ["progress", "%", "mdi:file-percent", "_current_job"],
"current_job": ["progress", UNIT_PERCENTAGE, "mdi:file-percent", "_current_job"],
"job_end": ["progress", None, "mdi:clock-end", "_job_end"],
"job_start": ["progress", None, "mdi:clock-start", "_job_start"],
}

View File

@ -18,6 +18,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
POWER_WATT,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -47,7 +48,7 @@ DATA_TYPES = OrderedDict(
[
("Temperature", TEMP_CELSIUS),
("Temperature2", TEMP_CELSIUS),
("Humidity", "%"),
("Humidity", UNIT_PERCENTAGE),
("Barometer", ""),
("Wind direction", ""),
("Rain rate", ""),

View File

@ -1,6 +1,7 @@
"""This component provides HA sensor support for Ring Door Bell/Chimes."""
import logging
from homeassistant.const import UNIT_PERCENTAGE
from homeassistant.core import callback
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level
@ -203,7 +204,7 @@ SENSOR_TYPES = {
"battery": [
"Battery",
["doorbots", "authorized_doorbots", "stickup_cams"],
"%",
UNIT_PERCENTAGE,
None,
None,
"battery",

View File

@ -7,7 +7,12 @@ from sense_hat import SenseHat
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_DISPLAY_OPTIONS, CONF_NAME, TEMP_CELSIUS
from homeassistant.const import (
CONF_DISPLAY_OPTIONS,
CONF_NAME,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.util import Throttle
@ -21,7 +26,7 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
SENSOR_TYPES = {
"temperature": ["temperature", TEMP_CELSIUS],
"humidity": ["humidity", "%"],
"humidity": ["humidity", UNIT_PERCENTAGE],
"pressure": ["pressure", "mb"],
}

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_NAME,
PRECISION_TENTHS,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -140,7 +141,7 @@ class SHTSensorHumidity(SHTSensor):
@property
def unit_of_measurement(self):
"""Return the unit of measurement."""
return "%"
return UNIT_PERCENTAGE
def update(self):
"""Fetch humidity from the sensor."""

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
STATE_UNKNOWN,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -82,7 +83,7 @@ class SkybeaconHumid(Entity):
@property
def unit_of_measurement(self):
"""Return the unit the value is expressed in."""
return "%"
return UNIT_PERCENTAGE
@property
def device_state_attributes(self):

View File

@ -2,7 +2,12 @@
from datetime import timedelta
import logging
from homeassistant.const import ENERGY_KILO_WATT_HOUR, POWER_WATT, VOLUME_CUBIC_METERS
from homeassistant.const import (
ENERGY_KILO_WATT_HOUR,
POWER_WATT,
UNIT_PERCENTAGE,
VOLUME_CUBIC_METERS,
)
from homeassistant.helpers.entity import Entity
from . import DATA_SMAPPEE
@ -21,7 +26,13 @@ SENSOR_TYPES = {
],
"current": ["Current", "mdi:gauge", "local", "A", "current"],
"voltage": ["Voltage", "mdi:gauge", "local", "V", "voltage"],
"active_cosfi": ["Power Factor", "mdi:gauge", "local", "%", "active_cosfi"],
"active_cosfi": [
"Power Factor",
"mdi:gauge",
"local",
UNIT_PERCENTAGE,
"active_cosfi",
],
"alwayson_today": [
"Always On Today",
"mdi:gauge",
@ -68,14 +79,14 @@ SENSOR_TYPES = {
"Water Sensor Humidity",
"mdi:water-percent",
"water",
"%",
UNIT_PERCENTAGE,
"humidity",
],
"water_sensor_battery": [
"Water Sensor Battery",
"mdi:battery",
"water",
"%",
UNIT_PERCENTAGE,
"battery",
],
}

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
POWER_WATT,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
UNIT_PERCENTAGE,
)
from . import SmartThingsEntity
@ -34,8 +35,10 @@ CAPABILITY_TO_SENSORS = {
Map(Attribute.air_quality, "Air Quality", "CAQI", None)
],
Capability.alarm: [Map(Attribute.alarm, "Alarm", None, None)],
Capability.audio_volume: [Map(Attribute.volume, "Volume", "%", None)],
Capability.battery: [Map(Attribute.battery, "Battery", "%", DEVICE_CLASS_BATTERY)],
Capability.audio_volume: [Map(Attribute.volume, "Volume", UNIT_PERCENTAGE, None)],
Capability.battery: [
Map(Attribute.battery, "Battery", UNIT_PERCENTAGE, DEVICE_CLASS_BATTERY)
],
Capability.body_mass_index_measurement: [
Map(Attribute.bmi_measurement, "Body Mass Index", "kg/m^2", None)
],
@ -109,7 +112,7 @@ CAPABILITY_TO_SENSORS = {
Map(Attribute.illuminance, "Illuminance", "lux", DEVICE_CLASS_ILLUMINANCE)
],
Capability.infrared_level: [
Map(Attribute.infrared_level, "Infrared Level", "%", None)
Map(Attribute.infrared_level, "Infrared Level", UNIT_PERCENTAGE, None)
],
Capability.media_input_source: [
Map(Attribute.input_source, "Media Input Source", None, None)
@ -147,7 +150,7 @@ CAPABILITY_TO_SENSORS = {
Map(
Attribute.humidity,
"Relative Humidity Measurement",
"%",
UNIT_PERCENTAGE,
DEVICE_CLASS_HUMIDITY,
)
],

View File

@ -1,7 +1,7 @@
"""Constants for the Solar-Log integration."""
from datetime import timedelta
from homeassistant.const import ENERGY_KILO_WATT_HOUR, POWER_WATT
from homeassistant.const import ENERGY_KILO_WATT_HOUR, POWER_WATT, UNIT_PERCENTAGE
DOMAIN = "solarlog"
@ -77,7 +77,7 @@ SENSOR_TYPES = {
POWER_WATT,
"mdi:solar-power",
],
"capacity": ["CAPACITY", "capacity", "%", "mdi:solar-power"],
"capacity": ["CAPACITY", "capacity", UNIT_PERCENTAGE, "mdi:solar-power"],
"efficiency": ["EFFICIENCY", "efficiency", "% W/Wp", "mdi:solar-power"],
"power_available": [
"powerAVAILABLE",

View File

@ -1,6 +1,6 @@
"""Reads vehicle status from StarLine API."""
from homeassistant.components.sensor import DEVICE_CLASS_TEMPERATURE
from homeassistant.const import TEMP_CELSIUS
from homeassistant.const import TEMP_CELSIUS, UNIT_PERCENTAGE
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.icon import icon_for_battery_level, icon_for_signal_level
@ -13,7 +13,7 @@ SENSOR_TYPES = {
"balance": ["Balance", None, None, "mdi:cash-multiple"],
"ctemp": ["Interior Temperature", DEVICE_CLASS_TEMPERATURE, TEMP_CELSIUS, None],
"etemp": ["Engine Temperature", DEVICE_CLASS_TEMPERATURE, TEMP_CELSIUS, None],
"gsm_lvl": ["GSM Signal", None, "%", None],
"gsm_lvl": ["GSM Signal", None, UNIT_PERCENTAGE, None],
}

View File

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_MONITORED_VARIABLES,
CONF_NAME,
DATA_GIGABYTES,
UNIT_PERCENTAGE,
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
@ -24,13 +25,11 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "Start.ca"
CONF_TOTAL_BANDWIDTH = "total_bandwidth"
PERCENT = "%"
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1)
REQUEST_TIMEOUT = 5 # seconds
SENSOR_TYPES = {
"usage": ["Usage Ratio", PERCENT, "mdi:percent"],
"usage": ["Usage Ratio", UNIT_PERCENTAGE, "mdi:percent"],
"usage_gb": ["Usage", DATA_GIGABYTES, "mdi:download"],
"limit": ["Data limit", DATA_GIGABYTES, "mdi:download"],
"used_download": ["Used Download", DATA_GIGABYTES, "mdi:download"],

View File

@ -4,7 +4,13 @@ from typing import Any, Dict, Optional
from surepy import SureLockStateID, SureProductID
from homeassistant.const import ATTR_VOLTAGE, CONF_ID, CONF_TYPE, DEVICE_CLASS_BATTERY
from homeassistant.const import (
ATTR_VOLTAGE,
CONF_ID,
CONF_TYPE,
DEVICE_CLASS_BATTERY,
UNIT_PERCENTAGE,
)
from homeassistant.core import callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import Entity
@ -40,10 +46,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
]:
entities.append(SureBattery(entity[CONF_ID], sure_type, spc))
if sure_type in [
SureProductID.CAT_FLAP,
SureProductID.PET_FLAP,
]:
if sure_type in [SureProductID.CAT_FLAP, SureProductID.PET_FLAP]:
entities.append(Flap(entity[CONF_ID], sure_type, spc))
async_add_entities(entities, True)
@ -52,9 +55,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
class SurePetcareSensor(Entity):
"""A binary sensor implementation for Sure Petcare Entities."""
def __init__(
self, _id: int, sure_type: SureProductID, spc: SurePetcareAPI,
):
def __init__(self, _id: int, sure_type: SureProductID, spc: SurePetcareAPI):
"""Initialize a Sure Petcare sensor."""
self._id = _id
@ -128,9 +129,7 @@ class Flap(SurePetcareSensor):
"""Return the state attributes of the device."""
attributes = None
if self._state:
attributes = {
"learn_mode": bool(self._state["learn_mode"]),
}
attributes = {"learn_mode": bool(self._state["learn_mode"])}
return attributes
@ -182,4 +181,4 @@ class SureBattery(SurePetcareSensor):
@property
def unit_of_measurement(self) -> str:
"""Return the unit of measurement."""
return "%"
return UNIT_PERCENTAGE

View File

@ -6,7 +6,7 @@ from pysyncthru import SyncThru
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_RESOURCE
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_RESOURCE, UNIT_PERCENTAGE
from homeassistant.helpers import aiohttp_client
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -174,7 +174,7 @@ class SyncThruTonerSensor(SyncThruSensor):
super().__init__(syncthru, name)
self._name = f"{name} Toner {color}"
self._color = color
self._unit_of_measurement = "%"
self._unit_of_measurement = UNIT_PERCENTAGE
self._id_suffix = f"_toner_{color}"
def update(self):
@ -194,7 +194,7 @@ class SyncThruDrumSensor(SyncThruSensor):
super().__init__(syncthru, name)
self._name = f"{name} Drum {color}"
self._color = color
self._unit_of_measurement = "%"
self._unit_of_measurement = UNIT_PERCENTAGE
self._id_suffix = f"_drum_{color}"
def update(self):

View File

@ -21,6 +21,7 @@ from homeassistant.const import (
DATA_RATE_KILOBYTES_PER_SECOND,
EVENT_HOMEASSISTANT_START,
TEMP_CELSIUS,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -37,14 +38,14 @@ DEFAULT_PORT = 5001
MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
_UTILISATION_MON_COND = {
"cpu_other_load": ["CPU Load (Other)", "%", "mdi:chip"],
"cpu_user_load": ["CPU Load (User)", "%", "mdi:chip"],
"cpu_system_load": ["CPU Load (System)", "%", "mdi:chip"],
"cpu_total_load": ["CPU Load (Total)", "%", "mdi:chip"],
"cpu_1min_load": ["CPU Load (1 min)", "%", "mdi:chip"],
"cpu_5min_load": ["CPU Load (5 min)", "%", "mdi:chip"],
"cpu_15min_load": ["CPU Load (15 min)", "%", "mdi:chip"],
"memory_real_usage": ["Memory Usage (Real)", "%", "mdi:memory"],
"cpu_other_load": ["CPU Load (Other)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_user_load": ["CPU Load (User)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_system_load": ["CPU Load (System)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_total_load": ["CPU Load (Total)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_1min_load": ["CPU Load (1 min)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_5min_load": ["CPU Load (5 min)", UNIT_PERCENTAGE, "mdi:chip"],
"cpu_15min_load": ["CPU Load (15 min)", UNIT_PERCENTAGE, "mdi:chip"],
"memory_real_usage": ["Memory Usage (Real)", UNIT_PERCENTAGE, "mdi:memory"],
"memory_size": ["Memory Size", DATA_MEGABYTES, "mdi:memory"],
"memory_cached": ["Memory Cached", DATA_MEGABYTES, "mdi:memory"],
"memory_available_swap": ["Memory Available (Swap)", DATA_MEGABYTES, "mdi:memory"],
@ -59,7 +60,7 @@ _STORAGE_VOL_MON_COND = {
"volume_device_type": ["Type", None, "mdi:harddisk"],
"volume_size_total": ["Total Size", None, "mdi:chart-pie"],
"volume_size_used": ["Used Space", None, "mdi:chart-pie"],
"volume_percentage_used": ["Volume Used", "%", "mdi:chart-pie"],
"volume_percentage_used": ["Volume Used", UNIT_PERCENTAGE, "mdi:chart-pie"],
"volume_disk_temp_avg": ["Average Disk Temp", None, "mdi:thermometer"],
"volume_disk_temp_max": ["Maximum Disk Temp", None, "mdi:thermometer"],
}

View File

@ -15,6 +15,7 @@ from homeassistant.const import (
DATA_RATE_MEGABYTES_PER_SECOND,
STATE_OFF,
STATE_ON,
UNIT_PERCENTAGE,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
@ -29,7 +30,7 @@ CONF_ARG = "arg"
SENSOR_TYPES = {
"disk_free": ["Disk free", DATA_GIBIBYTES, "mdi:harddisk", None],
"disk_use": ["Disk use", DATA_GIBIBYTES, "mdi:harddisk", None],
"disk_use_percent": ["Disk use (percent)", "%", "mdi:harddisk", None],
"disk_use_percent": ["Disk use (percent)", UNIT_PERCENTAGE, "mdi:harddisk", None],
"ipv4_address": ["IPv4 address", "", "mdi:server-network", None],
"ipv6_address": ["IPv6 address", "", "mdi:server-network", None],
"last_boot": ["Last boot", "", "mdi:clock", "timestamp"],
@ -38,7 +39,7 @@ SENSOR_TYPES = {
"load_5m": ["Load (5m)", " ", "mdi:memory", None],
"memory_free": ["Memory free", DATA_MEBIBYTES, "mdi:memory", None],
"memory_use": ["Memory use", DATA_MEBIBYTES, "mdi:memory", None],
"memory_use_percent": ["Memory use (percent)", "%", "mdi:memory", None],
"memory_use_percent": ["Memory use (percent)", UNIT_PERCENTAGE, "mdi:memory", None],
"network_in": ["Network in", DATA_MEBIBYTES, "mdi:server-network", None],
"network_out": ["Network out", DATA_MEBIBYTES, "mdi:server-network", None],
"packets_in": ["Packets in", " ", "mdi:server-network", None],
@ -56,10 +57,10 @@ SENSOR_TYPES = {
None,
],
"process": ["Process", " ", "mdi:memory", None],
"processor_use": ["Processor use", "%", "mdi:memory", None],
"processor_use": ["Processor use", UNIT_PERCENTAGE, "mdi:memory", None],
"swap_free": ["Swap free", DATA_MEBIBYTES, "mdi:harddisk", None],
"swap_use": ["Swap use", DATA_MEBIBYTES, "mdi:harddisk", None],
"swap_use_percent": ["Swap use (percent)", "%", "mdi:harddisk", None],
"swap_use_percent": ["Swap use (percent)", UNIT_PERCENTAGE, "mdi:harddisk", None],
}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View File

@ -1,7 +1,7 @@
"""Support for Tado sensors for each zone."""
import logging
from homeassistant.const import TEMP_CELSIUS
from homeassistant.const import TEMP_CELSIUS, UNIT_PERCENTAGE
from homeassistant.core import callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import Entity
@ -134,9 +134,9 @@ class TadoSensor(Entity):
if self.zone_variable == "temperature":
return self.hass.config.units.temperature_unit
if self.zone_variable == "humidity":
return "%"
return UNIT_PERCENTAGE
if self.zone_variable == "heating":
return "%"
return UNIT_PERCENTAGE
if self.zone_variable == "ac":
return ""

Some files were not shown because too many files have changed in this diff Show More