Improve Z-Wave support for Ultraviolet multilevel sensor values (#93848)
Improve support for Ultraviolet multilevel sensor values
This commit is contained in:
parent
1eb1ea08b0
commit
b3990d48d2
4 changed files with 13 additions and 4 deletions
|
@ -130,6 +130,7 @@ ENTITY_DESC_KEY_PRESSURE = "pressure"
|
||||||
ENTITY_DESC_KEY_SIGNAL_STRENGTH = "signal_strength"
|
ENTITY_DESC_KEY_SIGNAL_STRENGTH = "signal_strength"
|
||||||
ENTITY_DESC_KEY_TEMPERATURE = "temperature"
|
ENTITY_DESC_KEY_TEMPERATURE = "temperature"
|
||||||
ENTITY_DESC_KEY_TARGET_TEMPERATURE = "target_temperature"
|
ENTITY_DESC_KEY_TARGET_TEMPERATURE = "target_temperature"
|
||||||
|
ENTITY_DESC_KEY_UV_INDEX = "uv_index"
|
||||||
ENTITY_DESC_KEY_MEASUREMENT = "measurement"
|
ENTITY_DESC_KEY_MEASUREMENT = "measurement"
|
||||||
ENTITY_DESC_KEY_TOTAL_INCREASING = "total_increasing"
|
ENTITY_DESC_KEY_TOTAL_INCREASING = "total_increasing"
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,7 @@ from .const import (
|
||||||
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
|
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
|
||||||
ENTITY_DESC_KEY_TEMPERATURE,
|
ENTITY_DESC_KEY_TEMPERATURE,
|
||||||
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
|
ENTITY_DESC_KEY_UV_INDEX,
|
||||||
ENTITY_DESC_KEY_VOLTAGE,
|
ENTITY_DESC_KEY_VOLTAGE,
|
||||||
)
|
)
|
||||||
from .helpers import ZwaveValueID
|
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_SIGNAL_STRENGTH: SIGNAL_STRENGTH_SENSORS,
|
||||||
ENTITY_DESC_KEY_TEMPERATURE: TEMPERATURE_SENSORS,
|
ENTITY_DESC_KEY_TEMPERATURE: TEMPERATURE_SENSORS,
|
||||||
ENTITY_DESC_KEY_VOLTAGE: VOLTAGE_SENSORS,
|
ENTITY_DESC_KEY_VOLTAGE: VOLTAGE_SENSORS,
|
||||||
|
ENTITY_DESC_KEY_UV_INDEX: [MultilevelSensorType.ULTRAVIOLET],
|
||||||
}
|
}
|
||||||
|
|
||||||
ENERGY_PRODUCTION_UNIT_MAP: dict[str, list[EnergyProductionScaleType]] = {
|
ENERGY_PRODUCTION_UNIT_MAP: dict[str, list[EnergyProductionScaleType]] = {
|
||||||
|
|
|
@ -32,6 +32,7 @@ from homeassistant.const import (
|
||||||
LIGHT_LUX,
|
LIGHT_LUX,
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
||||||
|
UV_INDEX,
|
||||||
EntityCategory,
|
EntityCategory,
|
||||||
UnitOfElectricCurrent,
|
UnitOfElectricCurrent,
|
||||||
UnitOfElectricPotential,
|
UnitOfElectricPotential,
|
||||||
|
@ -73,6 +74,7 @@ from .const import (
|
||||||
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
|
ENTITY_DESC_KEY_TARGET_TEMPERATURE,
|
||||||
ENTITY_DESC_KEY_TEMPERATURE,
|
ENTITY_DESC_KEY_TEMPERATURE,
|
||||||
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
|
ENTITY_DESC_KEY_UV_INDEX,
|
||||||
ENTITY_DESC_KEY_VOLTAGE,
|
ENTITY_DESC_KEY_VOLTAGE,
|
||||||
LOGGER,
|
LOGGER,
|
||||||
SERVICE_RESET_METER,
|
SERVICE_RESET_METER,
|
||||||
|
@ -321,6 +323,11 @@ ENTITY_DESCRIPTION_KEY_MAP = {
|
||||||
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
state_class=SensorStateClass.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,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ from homeassistant.const import (
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
STATE_UNAVAILABLE,
|
STATE_UNAVAILABLE,
|
||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
|
UV_INDEX,
|
||||||
EntityCategory,
|
EntityCategory,
|
||||||
UnitOfElectricCurrent,
|
UnitOfElectricCurrent,
|
||||||
UnitOfElectricPotential,
|
UnitOfElectricPotential,
|
||||||
|
@ -90,11 +91,9 @@ async def test_numeric_sensor(
|
||||||
|
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "0.0"
|
assert state.state == "0.0"
|
||||||
# TODO: Add UV_INDEX unit of measurement to this sensor
|
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == UV_INDEX
|
||||||
assert ATTR_UNIT_OF_MEASUREMENT not in state.attributes
|
|
||||||
assert ATTR_DEVICE_CLASS not in state.attributes
|
assert ATTR_DEVICE_CLASS not in state.attributes
|
||||||
# TODO: Add measurement state class to this sensor
|
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.MEASUREMENT
|
||||||
assert ATTR_STATE_CLASS not in state.attributes
|
|
||||||
|
|
||||||
state = hass.states.get("sensor.hsm200_illuminance")
|
state = hass.states.get("sensor.hsm200_illuminance")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue