Fixed issue with suggested unit of measurement.
parent
7102206d0c
commit
cd5970c68f
|
|
@ -1,5 +1,7 @@
|
||||||
"""Sensors definition for SWS12500."""
|
"""Sensors definition for SWS12500."""
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from collections.abc import Callable
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.components.sensor import (
|
from homeassistant.components.sensor import (
|
||||||
SensorDeviceClass,
|
SensorDeviceClass,
|
||||||
|
|
@ -11,9 +13,13 @@ from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
UnitOfIrradiance,
|
UnitOfIrradiance,
|
||||||
UnitOfPrecipitationDepth,
|
UnitOfPrecipitationDepth,
|
||||||
|
UnitOfVolumetricFlux,
|
||||||
UnitOfPressure,
|
UnitOfPressure,
|
||||||
UnitOfSpeed,
|
UnitOfSpeed,
|
||||||
UnitOfTemperature,
|
UnitOfTemperature,
|
||||||
|
DEGREE,
|
||||||
|
UV_INDEX,
|
||||||
|
PERCENTAGE
|
||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.device_registry import DeviceEntryType
|
from homeassistant.helpers.device_registry import DeviceEntryType
|
||||||
|
|
@ -47,6 +53,8 @@ from .const import (
|
||||||
class WeatherSensorEntityDescription(SensorEntityDescription):
|
class WeatherSensorEntityDescription(SensorEntityDescription):
|
||||||
"""Describe Weather Sensor entities."""
|
"""Describe Weather Sensor entities."""
|
||||||
|
|
||||||
|
attr_fn: Callable[[dict[str, Any]], dict[str, StateType]] = lambda _: {}
|
||||||
|
unit_fn: Callable[[bool], str | None] = lambda _: None
|
||||||
|
|
||||||
SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
|
|
@ -55,11 +63,11 @@ SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
icon="mdi:thermometer",
|
icon="mdi:thermometer",
|
||||||
device_class=SensorDeviceClass.TEMPERATURE,
|
device_class=SensorDeviceClass.TEMPERATURE,
|
||||||
translation_key=f"{INDOOR_TEMP}",
|
translation_key=INDOOR_TEMP,
|
||||||
),
|
),
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
key=INDOOR_HUMIDITY,
|
key=INDOOR_HUMIDITY,
|
||||||
native_unit_of_measurement="%",
|
native_unit_of_measurement=PERCENTAGE,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
icon="mdi:thermometer",
|
icon="mdi:thermometer",
|
||||||
device_class=SensorDeviceClass.HUMIDITY,
|
device_class=SensorDeviceClass.HUMIDITY,
|
||||||
|
|
@ -75,7 +83,7 @@ SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
),
|
),
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
key=OUTSIDE_HUMIDITY,
|
key=OUTSIDE_HUMIDITY,
|
||||||
native_unit_of_measurement="%",
|
native_unit_of_measurement=PERCENTAGE,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
icon="mdi:thermometer",
|
icon="mdi:thermometer",
|
||||||
device_class=SensorDeviceClass.HUMIDITY,
|
device_class=SensorDeviceClass.HUMIDITY,
|
||||||
|
|
@ -118,8 +126,9 @@ SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
),
|
),
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
key=WIND_DIR,
|
key=WIND_DIR,
|
||||||
native_unit_of_measurement="°",
|
native_unit_of_measurement=DEGREE,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
suggested_display_precision=None,
|
||||||
icon="mdi:sign-direction",
|
icon="mdi:sign-direction",
|
||||||
translation_key=WIND_DIR,
|
translation_key=WIND_DIR,
|
||||||
),
|
),
|
||||||
|
|
@ -135,10 +144,10 @@ SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
),
|
),
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
key=DAILY_RAIN,
|
key=DAILY_RAIN,
|
||||||
native_unit_of_measurement="in/d",
|
native_unit_of_measurement=UnitOfVolumetricFlux.INCHES_PER_DAY,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
|
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
|
||||||
suggested_unit_of_measurement="mm/h",
|
suggested_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_DAY,
|
||||||
suggested_display_precision=2,
|
suggested_display_precision=2,
|
||||||
icon="mdi:weather-pouring",
|
icon="mdi:weather-pouring",
|
||||||
translation_key=DAILY_RAIN,
|
translation_key=DAILY_RAIN,
|
||||||
|
|
@ -154,7 +163,7 @@ SENSOR_TYPES: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
WeatherSensorEntityDescription(
|
WeatherSensorEntityDescription(
|
||||||
key=UV,
|
key=UV,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
native_unit_of_measurement="",
|
native_unit_of_measurement=UV_INDEX,
|
||||||
icon="mdi:sunglasses",
|
icon="mdi:sunglasses",
|
||||||
translation_key=UV,
|
translation_key=UV,
|
||||||
),
|
),
|
||||||
|
|
@ -226,11 +235,6 @@ class WeatherSensor(CoordinatorEntity[WeatherDataUpdateCoordinator], SensorEntit
|
||||||
"""Return stateClass."""
|
"""Return stateClass."""
|
||||||
return str(self.entity_description.state_class)
|
return str(self.entity_description.state_class)
|
||||||
|
|
||||||
@property
|
|
||||||
def suggested_unit_of_measurement(self) -> str:
|
|
||||||
"""Return sugestet_unit_of_measurement."""
|
|
||||||
return str(self.entity_description.suggested_unit_of_measurement)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_info(self) -> DeviceInfo:
|
def device_info(self) -> DeviceInfo:
|
||||||
"""Device info."""
|
"""Device info."""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue