mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Add and use percentage constant (#32094)
* Add and use percentage constant * Fix pylint error and broken test
This commit is contained in:
parent
c7f128f286
commit
f1a0ca7cd3
@ -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:
|
||||
|
@ -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,
|
||||
|
@ -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"),
|
||||
|
@ -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"],
|
||||
}
|
||||
|
||||
|
||||
|
@ -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(
|
||||
|
@ -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]
|
||||
|
@ -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"],
|
||||
}
|
||||
|
||||
|
@ -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",
|
||||
},
|
||||
}
|
||||
|
@ -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(
|
||||
|
@ -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",
|
||||
|
@ -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]
|
||||
|
@ -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])
|
||||
|
@ -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],
|
||||
}
|
||||
|
||||
|
||||
|
@ -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"],
|
||||
|
@ -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", " "],
|
||||
}
|
||||
|
@ -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",
|
||||
|
@ -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"],
|
||||
|
@ -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"
|
||||
|
@ -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(
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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):
|
||||
|
@ -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,
|
||||
],
|
||||
|
@ -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"],
|
||||
],
|
||||
|
@ -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):
|
||||
|
@ -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,
|
||||
),
|
||||
]
|
||||
)
|
||||
|
@ -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(
|
||||
|
@ -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: (
|
||||
|
@ -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 = {
|
||||
|
@ -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"],
|
||||
|
@ -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],
|
||||
}
|
||||
|
||||
|
||||
|
@ -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."""
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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(
|
||||
{
|
||||
|
@ -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],
|
||||
}
|
||||
|
||||
|
@ -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"],
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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:
|
||||
|
@ -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",
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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": "#",
|
||||
|
@ -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):
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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"
|
||||
|
@ -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",
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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."""
|
||||
|
@ -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):
|
||||
|
@ -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",
|
||||
|
@ -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):
|
||||
|
@ -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"],
|
||||
}
|
||||
|
||||
|
@ -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: [
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
@ -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(
|
||||
|
@ -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):
|
||||
|
@ -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"]
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
|
@ -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": ["m³", None],
|
||||
"V_LEVEL": {
|
||||
|
@ -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):
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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],
|
||||
|
@ -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"]
|
||||
)
|
||||
|
@ -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,
|
||||
|
@ -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",
|
||||
|
@ -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):
|
||||
|
@ -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"],
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
@ -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"],
|
||||
|
@ -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: [
|
||||
|
@ -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],
|
||||
|
@ -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"],
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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"),
|
||||
}
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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 = (
|
||||
|
@ -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": "",
|
||||
|
@ -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"],
|
||||
}
|
||||
|
@ -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", ""),
|
||||
|
@ -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",
|
||||
|
@ -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"],
|
||||
}
|
||||
|
||||
|
@ -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."""
|
||||
|
@ -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):
|
||||
|
@ -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",
|
||||
],
|
||||
}
|
||||
|
@ -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,
|
||||
)
|
||||
],
|
||||
|
@ -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",
|
||||
|
@ -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],
|
||||
}
|
||||
|
||||
|
||||
|
@ -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"],
|
||||
|
@ -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
|
||||
|
@ -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):
|
||||
|
@ -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"],
|
||||
}
|
||||
|
@ -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(
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user