mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Don't set zwave_js sensor device class to energy when unit is wrong (#55434)
This commit is contained in:
parent
fa7873dc6d
commit
d62a78ae61
@ -96,3 +96,5 @@ 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_TIMESTAMP = "timestamp"
|
ENTITY_DESC_KEY_TIMESTAMP = "timestamp"
|
||||||
|
ENTITY_DESC_KEY_MEASUREMENT = "measurement"
|
||||||
|
ENTITY_DESC_KEY_TOTAL_INCREASING = "total_increasing"
|
||||||
|
@ -24,6 +24,7 @@ from zwave_js_server.const import (
|
|||||||
VOLTAGE_METER_TYPES,
|
VOLTAGE_METER_TYPES,
|
||||||
VOLTAGE_SENSORS,
|
VOLTAGE_SENSORS,
|
||||||
CommandClass,
|
CommandClass,
|
||||||
|
ElectricScale,
|
||||||
MeterScaleType,
|
MeterScaleType,
|
||||||
MultilevelSensorType,
|
MultilevelSensorType,
|
||||||
)
|
)
|
||||||
@ -43,6 +44,7 @@ from .const import (
|
|||||||
ENTITY_DESC_KEY_ENERGY_TOTAL_INCREASING,
|
ENTITY_DESC_KEY_ENERGY_TOTAL_INCREASING,
|
||||||
ENTITY_DESC_KEY_HUMIDITY,
|
ENTITY_DESC_KEY_HUMIDITY,
|
||||||
ENTITY_DESC_KEY_ILLUMINANCE,
|
ENTITY_DESC_KEY_ILLUMINANCE,
|
||||||
|
ENTITY_DESC_KEY_MEASUREMENT,
|
||||||
ENTITY_DESC_KEY_POWER,
|
ENTITY_DESC_KEY_POWER,
|
||||||
ENTITY_DESC_KEY_POWER_FACTOR,
|
ENTITY_DESC_KEY_POWER_FACTOR,
|
||||||
ENTITY_DESC_KEY_PRESSURE,
|
ENTITY_DESC_KEY_PRESSURE,
|
||||||
@ -50,6 +52,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_TIMESTAMP,
|
ENTITY_DESC_KEY_TIMESTAMP,
|
||||||
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
ENTITY_DESC_KEY_VOLTAGE,
|
ENTITY_DESC_KEY_VOLTAGE,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -187,6 +190,19 @@ class NumericSensorDataTemplate(BaseDiscoverySchemaDataTemplate):
|
|||||||
|
|
||||||
if value.command_class == CommandClass.METER:
|
if value.command_class == CommandClass.METER:
|
||||||
scale_type = get_meter_scale_type(value)
|
scale_type = get_meter_scale_type(value)
|
||||||
|
# We do this because even though these are energy scales, they don't meet
|
||||||
|
# the unit requirements for the energy device class.
|
||||||
|
if scale_type in (
|
||||||
|
ElectricScale.PULSE,
|
||||||
|
ElectricScale.KILOVOLT_AMPERE_HOUR,
|
||||||
|
ElectricScale.KILOVOLT_AMPERE_REACTIVE_HOUR,
|
||||||
|
):
|
||||||
|
return ENTITY_DESC_KEY_TOTAL_INCREASING
|
||||||
|
# We do this because even though these are power scales, they don't meet
|
||||||
|
# the unit requirements for the energy power class.
|
||||||
|
if scale_type == ElectricScale.KILOVOLT_AMPERE_REACTIVE:
|
||||||
|
return ENTITY_DESC_KEY_MEASUREMENT
|
||||||
|
|
||||||
for key, scale_type_set in METER_DEVICE_CLASS_MAP.items():
|
for key, scale_type_set in METER_DEVICE_CLASS_MAP.items():
|
||||||
if scale_type in scale_type_set:
|
if scale_type in scale_type_set:
|
||||||
return key
|
return key
|
||||||
|
@ -63,6 +63,7 @@ from .const import (
|
|||||||
ENTITY_DESC_KEY_ENERGY_TOTAL_INCREASING,
|
ENTITY_DESC_KEY_ENERGY_TOTAL_INCREASING,
|
||||||
ENTITY_DESC_KEY_HUMIDITY,
|
ENTITY_DESC_KEY_HUMIDITY,
|
||||||
ENTITY_DESC_KEY_ILLUMINANCE,
|
ENTITY_DESC_KEY_ILLUMINANCE,
|
||||||
|
ENTITY_DESC_KEY_MEASUREMENT,
|
||||||
ENTITY_DESC_KEY_POWER,
|
ENTITY_DESC_KEY_POWER,
|
||||||
ENTITY_DESC_KEY_POWER_FACTOR,
|
ENTITY_DESC_KEY_POWER_FACTOR,
|
||||||
ENTITY_DESC_KEY_PRESSURE,
|
ENTITY_DESC_KEY_PRESSURE,
|
||||||
@ -70,6 +71,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_TIMESTAMP,
|
ENTITY_DESC_KEY_TIMESTAMP,
|
||||||
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
ENTITY_DESC_KEY_VOLTAGE,
|
ENTITY_DESC_KEY_VOLTAGE,
|
||||||
SERVICE_RESET_METER,
|
SERVICE_RESET_METER,
|
||||||
)
|
)
|
||||||
@ -168,6 +170,16 @@ ENTITY_DESCRIPTION_KEY_MAP: dict[str, ZwaveSensorEntityDescription] = {
|
|||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||||
state_class=None,
|
state_class=None,
|
||||||
),
|
),
|
||||||
|
ENTITY_DESC_KEY_MEASUREMENT: ZwaveSensorEntityDescription(
|
||||||
|
ENTITY_DESC_KEY_MEASUREMENT,
|
||||||
|
device_class=None,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
),
|
||||||
|
ENTITY_DESC_KEY_TOTAL_INCREASING: ZwaveSensorEntityDescription(
|
||||||
|
ENTITY_DESC_KEY_TOTAL_INCREASING,
|
||||||
|
device_class=None,
|
||||||
|
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user