diff --git a/custom_components/sensus_analytics/manifest.json b/custom_components/sensus_analytics/manifest.json index dc04f06..3a84888 100644 --- a/custom_components/sensus_analytics/manifest.json +++ b/custom_components/sensus_analytics/manifest.json @@ -1,7 +1,7 @@ { "domain": "sensus_analytics", "name": "Sensus Analytics Integration", - "version": "1.6.11", + "version": "1.6.12", "documentation": "https://github.com/zestysoft/sensus_analytics_integration", "dependencies": [], "codeowners": ["@zestysoft"], diff --git a/custom_components/sensus_analytics/sensor.py b/custom_components/sensus_analytics/sensor.py index aa4afb8..b4169d0 100644 --- a/custom_components/sensus_analytics/sensor.py +++ b/custom_components/sensus_analytics/sensor.py @@ -1,6 +1,6 @@ """Sensor platform for the Sensus Analytics Integration.""" -from datetime import datetime +from datetime import datetime, timedelta from homeassistant.components.sensor import SensorDeviceClass, SensorEntity, SensorStateClass from homeassistant.config_entries import ConfigEntry @@ -118,6 +118,11 @@ def __init__(self, coordinator, entry): self._attr_device_class = SensorDeviceClass.WATER self._attr_state_class = SensorStateClass.TOTAL + @property + def last_reset(self): + """Return the last reset time for the daily usage sensor.""" + return dt_util.start_of_local_day() + @property def native_value(self): """Return the state of the sensor.""" @@ -244,6 +249,11 @@ def __init__(self, coordinator, entry): self._attr_device_class = SensorDeviceClass.WATER self._attr_state_class = SensorStateClass.TOTAL_INCREASING + @property + def last_reset(self): + """Return the last reset time for the meter odometer sensor.""" + return None # Odometer typically does not reset + @property def native_value(self): """Return the state of the sensor.""" @@ -263,6 +273,13 @@ def __init__(self, coordinator, entry): self._attr_device_class = SensorDeviceClass.WATER self._attr_state_class = SensorStateClass.TOTAL + @property + def last_reset(self): + """Return the last reset time for the billing usage sensor.""" + local_tz = dt_util.get_time_zone(self.hass.config.time_zone) + now = datetime.now(local_tz) + return now.replace(day=1, hour=0, minute=0, second=0, microsecond=0) + @property def native_value(self): """Return the state of the sensor.""" @@ -391,6 +408,13 @@ def __init__(self, coordinator, entry): self._attr_device_class = SensorDeviceClass.WATER self._attr_state_class = SensorStateClass.TOTAL + @property + def last_reset(self): + """Return the last reset time for the last hour usage sensor.""" + local_tz = dt_util.get_time_zone(self.hass.config.time_zone) + now = datetime.now(local_tz) + return now.replace(minute=0, second=0, microsecond=0) - timedelta(hours=1) + @property def native_value(self): """Return the usage for the current hour from the previous day."""