2424from homeassistant .helpers .entity import DeviceInfo
2525
2626from .utils import make_id
27- from .const import ICON_MAP
27+ from .const import ICON_MAP , STATE_CLASS_OVERRIDES
2828
2929
3030class EnpalBaseSensor (CoordinatorEntity , SensorEntity ):
@@ -48,6 +48,11 @@ def __init__(self, sensor: dict, coordinator: DataUpdateCoordinator):
4848 self ._attr_device_class = getattr (SensorDeviceClass , device_class .upper ())
4949 else :
5050 self ._attr_device_class = device_class
51+
52+ # Overrides for state class if specified
53+ sensor_id = self ._attr_unique_id
54+ if sensor_id in STATE_CLASS_OVERRIDES :
55+ self ._attr_state_class = STATE_CLASS_OVERRIDES [sensor_id ]
5156
5257 @property
5358 def native_value (self ):
@@ -93,4 +98,9 @@ def build_sensor_entity(sensor: dict, coordinator: DataUpdateCoordinator) -> Sen
9398class EnpalEnergySensor (EnpalBaseSensor ):
9499 def __init__ (self , sensor : dict , coordinator : DataUpdateCoordinator ):
95100 super ().__init__ (sensor , coordinator )
101+ # Default: Energy counter is total_increasing
96102 self ._attr_state_class = "total_increasing"
103+ # Allow explicit overrides
104+ sensor_id = self ._attr_unique_id
105+ if sensor_id in STATE_CLASS_OVERRIDES :
106+ self ._attr_state_class = STATE_CLASS_OVERRIDES [sensor_id ]
0 commit comments