Use correct unit and class for the Imeon inverter sensors (#150847)

Co-authored-by: TheBushBoy <theodavid@icloud.com>
This commit is contained in:
Imeon-Energy
2025-08-19 10:19:03 +02:00
committed by GitHub
parent 0c0e54b541
commit fc5e720764
2 changed files with 30 additions and 31 deletions

View File

@@ -14,7 +14,6 @@ from homeassistant.const import (
EntityCategory, EntityCategory,
UnitOfElectricCurrent, UnitOfElectricCurrent,
UnitOfElectricPotential, UnitOfElectricPotential,
UnitOfEnergy,
UnitOfFrequency, UnitOfFrequency,
UnitOfPower, UnitOfPower,
UnitOfTemperature, UnitOfTemperature,
@@ -50,8 +49,8 @@ SENSOR_DESCRIPTIONS = (
SensorEntityDescription( SensorEntityDescription(
key="battery_stored", key="battery_stored",
translation_key="battery_stored", translation_key="battery_stored",
native_unit_of_measurement=UnitOfEnergy.WATT_HOUR, native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.ENERGY_STORAGE, device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
), ),
# Grid # Grid
@@ -238,16 +237,16 @@ SENSOR_DESCRIPTIONS = (
SensorEntityDescription( SensorEntityDescription(
key="pv_consumed", key="pv_consumed",
translation_key="pv_consumed", translation_key="pv_consumed",
native_unit_of_measurement=UnitOfEnergy.WATT_HOUR, native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.ENERGY, device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.MEASUREMENT,
), ),
SensorEntityDescription( SensorEntityDescription(
key="pv_injected", key="pv_injected",
translation_key="pv_injected", translation_key="pv_injected",
native_unit_of_measurement=UnitOfEnergy.WATT_HOUR, native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.ENERGY, device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.MEASUREMENT,
), ),
SensorEntityDescription( SensorEntityDescription(
key="pv_power_1", key="pv_power_1",
@@ -290,14 +289,14 @@ SENSOR_DESCRIPTIONS = (
key="monitoring_self_consumption", key="monitoring_self_consumption",
translation_key="monitoring_self_consumption", translation_key="monitoring_self_consumption",
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.TOTAL,
suggested_display_precision=2, suggested_display_precision=2,
), ),
SensorEntityDescription( SensorEntityDescription(
key="monitoring_self_sufficiency", key="monitoring_self_sufficiency",
translation_key="monitoring_self_sufficiency", translation_key="monitoring_self_sufficiency",
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.TOTAL,
suggested_display_precision=2, suggested_display_precision=2,
), ),
# Monitoring (instant minute data) # Monitoring (instant minute data)

View File

@@ -192,7 +192,7 @@
'suggested_display_precision': 0, 'suggested_display_precision': 0,
}), }),
}), }),
'original_device_class': <SensorDeviceClass.ENERGY_STORAGE: 'energy_storage'>, 'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None, 'original_icon': None,
'original_name': 'Battery stored', 'original_name': 'Battery stored',
'platform': 'imeon_inverter', 'platform': 'imeon_inverter',
@@ -201,16 +201,16 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'battery_stored', 'translation_key': 'battery_stored',
'unique_id': '111111111111111_battery_stored', 'unique_id': '111111111111111_battery_stored',
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}) })
# --- # ---
# name: test_sensors[sensor.imeon_inverter_battery_stored-state] # name: test_sensors[sensor.imeon_inverter_battery_stored-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'energy_storage', 'device_class': 'power',
'friendly_name': 'Imeon inverter Battery stored', 'friendly_name': 'Imeon inverter Battery stored',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.imeon_inverter_battery_stored', 'entity_id': 'sensor.imeon_inverter_battery_stored',
@@ -1290,7 +1290,7 @@
}), }),
'area_id': None, 'area_id': None,
'capabilities': dict({ 'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'state_class': <SensorStateClass.TOTAL: 'total'>,
}), }),
'config_entry_id': <ANY>, 'config_entry_id': <ANY>,
'config_subentry_id': <ANY>, 'config_subentry_id': <ANY>,
@@ -1328,7 +1328,7 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Imeon inverter Monitoring self-consumption', 'friendly_name': 'Imeon inverter Monitoring self-consumption',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': '%', 'unit_of_measurement': '%',
}), }),
'context': <ANY>, 'context': <ANY>,
@@ -1345,7 +1345,7 @@
}), }),
'area_id': None, 'area_id': None,
'capabilities': dict({ 'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'state_class': <SensorStateClass.TOTAL: 'total'>,
}), }),
'config_entry_id': <ANY>, 'config_entry_id': <ANY>,
'config_subentry_id': <ANY>, 'config_subentry_id': <ANY>,
@@ -1383,7 +1383,7 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'friendly_name': 'Imeon inverter Monitoring self-sufficiency', 'friendly_name': 'Imeon inverter Monitoring self-sufficiency',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': '%', 'unit_of_measurement': '%',
}), }),
'context': <ANY>, 'context': <ANY>,
@@ -2072,7 +2072,7 @@
}), }),
'area_id': None, 'area_id': None,
'capabilities': dict({ 'capabilities': dict({
'state_class': <SensorStateClass.TOTAL: 'total'>, 'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}), }),
'config_entry_id': <ANY>, 'config_entry_id': <ANY>,
'config_subentry_id': <ANY>, 'config_subentry_id': <ANY>,
@@ -2094,7 +2094,7 @@
'suggested_display_precision': 0, 'suggested_display_precision': 0,
}), }),
}), }),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>, 'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None, 'original_icon': None,
'original_name': 'PV consumed', 'original_name': 'PV consumed',
'platform': 'imeon_inverter', 'platform': 'imeon_inverter',
@@ -2103,16 +2103,16 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'pv_consumed', 'translation_key': 'pv_consumed',
'unique_id': '111111111111111_pv_consumed', 'unique_id': '111111111111111_pv_consumed',
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}) })
# --- # ---
# name: test_sensors[sensor.imeon_inverter_pv_consumed-state] # name: test_sensors[sensor.imeon_inverter_pv_consumed-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'energy', 'device_class': 'power',
'friendly_name': 'Imeon inverter PV consumed', 'friendly_name': 'Imeon inverter PV consumed',
'state_class': <SensorStateClass.TOTAL: 'total'>, 'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.imeon_inverter_pv_consumed', 'entity_id': 'sensor.imeon_inverter_pv_consumed',
@@ -2128,7 +2128,7 @@
}), }),
'area_id': None, 'area_id': None,
'capabilities': dict({ 'capabilities': dict({
'state_class': <SensorStateClass.TOTAL: 'total'>, 'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}), }),
'config_entry_id': <ANY>, 'config_entry_id': <ANY>,
'config_subentry_id': <ANY>, 'config_subentry_id': <ANY>,
@@ -2150,7 +2150,7 @@
'suggested_display_precision': 0, 'suggested_display_precision': 0,
}), }),
}), }),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>, 'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None, 'original_icon': None,
'original_name': 'PV injected', 'original_name': 'PV injected',
'platform': 'imeon_inverter', 'platform': 'imeon_inverter',
@@ -2159,16 +2159,16 @@
'supported_features': 0, 'supported_features': 0,
'translation_key': 'pv_injected', 'translation_key': 'pv_injected',
'unique_id': '111111111111111_pv_injected', 'unique_id': '111111111111111_pv_injected',
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}) })
# --- # ---
# name: test_sensors[sensor.imeon_inverter_pv_injected-state] # name: test_sensors[sensor.imeon_inverter_pv_injected-state]
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'energy', 'device_class': 'power',
'friendly_name': 'Imeon inverter PV injected', 'friendly_name': 'Imeon inverter PV injected',
'state_class': <SensorStateClass.TOTAL: 'total'>, 'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfEnergy.WATT_HOUR: 'Wh'>, 'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'sensor.imeon_inverter_pv_injected', 'entity_id': 'sensor.imeon_inverter_pv_injected',