Improve Z-Wave support for Ultraviolet multilevel sensor values (#93848)

Improve support for Ultraviolet multilevel sensor values
pull/93857/head
Raman Gupta 2023-05-31 07:31:02 -04:00 committed by GitHub
parent 1eb1ea08b0
commit b3990d48d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 4 deletions

View File

@ -130,6 +130,7 @@ ENTITY_DESC_KEY_PRESSURE = "pressure"
ENTITY_DESC_KEY_SIGNAL_STRENGTH = "signal_strength"
ENTITY_DESC_KEY_TEMPERATURE = "temperature"
ENTITY_DESC_KEY_TARGET_TEMPERATURE = "target_temperature"
ENTITY_DESC_KEY_UV_INDEX = "uv_index"
ENTITY_DESC_KEY_MEASUREMENT = "measurement"
ENTITY_DESC_KEY_TOTAL_INCREASING = "total_increasing"

View File

@ -150,6 +150,7 @@ from .const import (
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
ENTITY_DESC_KEY_TEMPERATURE,
ENTITY_DESC_KEY_TOTAL_INCREASING,
ENTITY_DESC_KEY_UV_INDEX,
ENTITY_DESC_KEY_VOLTAGE,
)
from .helpers import ZwaveValueID
@ -186,6 +187,7 @@ MULTILEVEL_SENSOR_DEVICE_CLASS_MAP: dict[str, list[MultilevelSensorType]] = {
ENTITY_DESC_KEY_SIGNAL_STRENGTH: SIGNAL_STRENGTH_SENSORS,
ENTITY_DESC_KEY_TEMPERATURE: TEMPERATURE_SENSORS,
ENTITY_DESC_KEY_VOLTAGE: VOLTAGE_SENSORS,
ENTITY_DESC_KEY_UV_INDEX: [MultilevelSensorType.ULTRAVIOLET],
}
ENERGY_PRODUCTION_UNIT_MAP: dict[str, list[EnergyProductionScaleType]] = {

View File

@ -32,6 +32,7 @@ from homeassistant.const import (
LIGHT_LUX,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
UV_INDEX,
EntityCategory,
UnitOfElectricCurrent,
UnitOfElectricPotential,
@ -73,6 +74,7 @@ from .const import (
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
ENTITY_DESC_KEY_TEMPERATURE,
ENTITY_DESC_KEY_TOTAL_INCREASING,
ENTITY_DESC_KEY_UV_INDEX,
ENTITY_DESC_KEY_VOLTAGE,
LOGGER,
SERVICE_RESET_METER,
@ -321,6 +323,11 @@ ENTITY_DESCRIPTION_KEY_MAP = {
ENTITY_DESC_KEY_TOTAL_INCREASING,
state_class=SensorStateClass.TOTAL_INCREASING,
),
ENTITY_DESC_KEY_UV_INDEX: SensorEntityDescription(
ENTITY_DESC_KEY_UV_INDEX,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UV_INDEX,
),
}

View File

@ -29,6 +29,7 @@ from homeassistant.const import (
PERCENTAGE,
STATE_UNAVAILABLE,
STATE_UNKNOWN,
UV_INDEX,
EntityCategory,
UnitOfElectricCurrent,
UnitOfElectricPotential,
@ -90,11 +91,9 @@ async def test_numeric_sensor(
assert state
assert state.state == "0.0"
# TODO: Add UV_INDEX unit of measurement to this sensor
assert ATTR_UNIT_OF_MEASUREMENT not in state.attributes
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == UV_INDEX
assert ATTR_DEVICE_CLASS not in state.attributes
# TODO: Add measurement state class to this sensor
assert ATTR_STATE_CLASS not in state.attributes
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.MEASUREMENT
state = hass.states.get("sensor.hsm200_illuminance")