mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Use constants with TypedDict (#50879)
This commit is contained in:
parent
ccd8e1332c
commit
3bdefc5da7
@ -4,6 +4,8 @@ from __future__ import annotations
|
|||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
ATTR_DEVICE_CLASS,
|
||||||
|
ATTR_ICON,
|
||||||
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
DEVICE_CLASS_HUMIDITY,
|
DEVICE_CLASS_HUMIDITY,
|
||||||
DEVICE_CLASS_PRESSURE,
|
DEVICE_CLASS_PRESSURE,
|
||||||
@ -20,15 +22,17 @@ ATTR_API_CAQI: Final = "CAQI"
|
|||||||
ATTR_API_CAQI_DESCRIPTION: Final = "DESCRIPTION"
|
ATTR_API_CAQI_DESCRIPTION: Final = "DESCRIPTION"
|
||||||
ATTR_API_CAQI_LEVEL: Final = "LEVEL"
|
ATTR_API_CAQI_LEVEL: Final = "LEVEL"
|
||||||
ATTR_API_HUMIDITY: Final = "HUMIDITY"
|
ATTR_API_HUMIDITY: Final = "HUMIDITY"
|
||||||
ATTR_API_PM1: Final = "PM1"
|
|
||||||
ATTR_API_PM10: Final = "PM10"
|
ATTR_API_PM10: Final = "PM10"
|
||||||
ATTR_API_PM10_LIMIT: Final = "PM10_LIMIT"
|
ATTR_API_PM10_LIMIT: Final = "PM10_LIMIT"
|
||||||
ATTR_API_PM10_PERCENT: Final = "PM10_PERCENT"
|
ATTR_API_PM10_PERCENT: Final = "PM10_PERCENT"
|
||||||
|
ATTR_API_PM1: Final = "PM1"
|
||||||
ATTR_API_PM25: Final = "PM25"
|
ATTR_API_PM25: Final = "PM25"
|
||||||
ATTR_API_PM25_LIMIT: Final = "PM25_LIMIT"
|
ATTR_API_PM25_LIMIT: Final = "PM25_LIMIT"
|
||||||
ATTR_API_PM25_PERCENT: Final = "PM25_PERCENT"
|
ATTR_API_PM25_PERCENT: Final = "PM25_PERCENT"
|
||||||
ATTR_API_PRESSURE: Final = "PRESSURE"
|
ATTR_API_PRESSURE: Final = "PRESSURE"
|
||||||
ATTR_API_TEMPERATURE: Final = "TEMPERATURE"
|
ATTR_API_TEMPERATURE: Final = "TEMPERATURE"
|
||||||
|
ATTR_LABEL: Final = "label"
|
||||||
|
ATTR_UNIT: Final = "unit"
|
||||||
|
|
||||||
ATTRIBUTION: Final = "Data provided by Airly"
|
ATTRIBUTION: Final = "Data provided by Airly"
|
||||||
CONF_USE_NEAREST: Final = "use_nearest"
|
CONF_USE_NEAREST: Final = "use_nearest"
|
||||||
@ -42,27 +46,27 @@ NO_AIRLY_SENSORS: Final = "There are no Airly sensors in this area yet."
|
|||||||
|
|
||||||
SENSOR_TYPES: dict[str, SensorDescription] = {
|
SENSOR_TYPES: dict[str, SensorDescription] = {
|
||||||
ATTR_API_PM1: {
|
ATTR_API_PM1: {
|
||||||
"device_class": None,
|
ATTR_DEVICE_CLASS: None,
|
||||||
"icon": "mdi:blur",
|
ATTR_ICON: "mdi:blur",
|
||||||
"label": ATTR_API_PM1,
|
ATTR_LABEL: ATTR_API_PM1,
|
||||||
"unit": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
ATTR_UNIT: CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
},
|
},
|
||||||
ATTR_API_HUMIDITY: {
|
ATTR_API_HUMIDITY: {
|
||||||
"device_class": DEVICE_CLASS_HUMIDITY,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_HUMIDITY,
|
||||||
"icon": None,
|
ATTR_ICON: None,
|
||||||
"label": ATTR_API_HUMIDITY.capitalize(),
|
ATTR_LABEL: ATTR_API_HUMIDITY.capitalize(),
|
||||||
"unit": PERCENTAGE,
|
ATTR_UNIT: PERCENTAGE,
|
||||||
},
|
},
|
||||||
ATTR_API_PRESSURE: {
|
ATTR_API_PRESSURE: {
|
||||||
"device_class": DEVICE_CLASS_PRESSURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_PRESSURE,
|
||||||
"icon": None,
|
ATTR_ICON: None,
|
||||||
"label": ATTR_API_PRESSURE.capitalize(),
|
ATTR_LABEL: ATTR_API_PRESSURE.capitalize(),
|
||||||
"unit": PRESSURE_HPA,
|
ATTR_UNIT: PRESSURE_HPA,
|
||||||
},
|
},
|
||||||
ATTR_API_TEMPERATURE: {
|
ATTR_API_TEMPERATURE: {
|
||||||
"device_class": DEVICE_CLASS_TEMPERATURE,
|
ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE,
|
||||||
"icon": None,
|
ATTR_ICON: None,
|
||||||
"label": ATTR_API_TEMPERATURE.capitalize(),
|
ATTR_LABEL: ATTR_API_TEMPERATURE.capitalize(),
|
||||||
"unit": TEMP_CELSIUS,
|
ATTR_UNIT: TEMP_CELSIUS,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,12 @@ from typing import Any, cast
|
|||||||
|
|
||||||
from homeassistant.components.sensor import SensorEntity
|
from homeassistant.components.sensor import SensorEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import ATTR_ATTRIBUTION, CONF_NAME
|
from homeassistant.const import (
|
||||||
|
ATTR_ATTRIBUTION,
|
||||||
|
ATTR_DEVICE_CLASS,
|
||||||
|
ATTR_ICON,
|
||||||
|
CONF_NAME,
|
||||||
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity import DeviceInfo
|
from homeassistant.helpers.entity import DeviceInfo
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
@ -16,6 +21,8 @@ from . import AirlyDataUpdateCoordinator
|
|||||||
from .const import (
|
from .const import (
|
||||||
ATTR_API_PM1,
|
ATTR_API_PM1,
|
||||||
ATTR_API_PRESSURE,
|
ATTR_API_PRESSURE,
|
||||||
|
ATTR_LABEL,
|
||||||
|
ATTR_UNIT,
|
||||||
ATTRIBUTION,
|
ATTRIBUTION,
|
||||||
DEFAULT_NAME,
|
DEFAULT_NAME,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
@ -63,7 +70,7 @@ class AirlySensor(CoordinatorEntity, SensorEntity):
|
|||||||
@property
|
@property
|
||||||
def name(self) -> str:
|
def name(self) -> str:
|
||||||
"""Return the name."""
|
"""Return the name."""
|
||||||
return f"{self._name} {self._description['label']}"
|
return f"{self._name} {self._description[ATTR_LABEL]}"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def state(self) -> StateType:
|
def state(self) -> StateType:
|
||||||
@ -81,12 +88,12 @@ class AirlySensor(CoordinatorEntity, SensorEntity):
|
|||||||
@property
|
@property
|
||||||
def icon(self) -> str | None:
|
def icon(self) -> str | None:
|
||||||
"""Return the icon."""
|
"""Return the icon."""
|
||||||
return self._description["icon"]
|
return self._description[ATTR_ICON]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_class(self) -> str | None:
|
def device_class(self) -> str | None:
|
||||||
"""Return the device_class."""
|
"""Return the device_class."""
|
||||||
return self._description["device_class"]
|
return self._description[ATTR_DEVICE_CLASS]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def unique_id(self) -> str:
|
def unique_id(self) -> str:
|
||||||
@ -111,4 +118,4 @@ class AirlySensor(CoordinatorEntity, SensorEntity):
|
|||||||
@property
|
@property
|
||||||
def unit_of_measurement(self) -> str | None:
|
def unit_of_measurement(self) -> str | None:
|
||||||
"""Return the unit the value is expressed in."""
|
"""Return the unit the value is expressed in."""
|
||||||
return self._description["unit"]
|
return self._description[ATTR_UNIT]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user