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

View File

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