From 8b25fd8563abd4f05352209e9c9b448b41ac771c Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Tue, 27 Jun 2023 19:32:06 +0200 Subject: [PATCH] Use total increasing for ecowitt precipitation and lightning count (#90099) --- homeassistant/components/ecowitt/sensor.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/ecowitt/sensor.py b/homeassistant/components/ecowitt/sensor.py index 5bbe22b6972..8d5411e9e2e 100644 --- a/homeassistant/components/ecowitt/sensor.py +++ b/homeassistant/components/ecowitt/sensor.py @@ -125,7 +125,7 @@ ECOWITT_SENSORS_MAPPING: Final = { EcoWittSensorTypes.LIGHTNING_COUNT: SensorEntityDescription( key="LIGHTNING_COUNT", native_unit_of_measurement="strikes", - state_class=SensorStateClass.TOTAL, + state_class=SensorStateClass.TOTAL_INCREASING, ), EcoWittSensorTypes.TEMPERATURE_C: SensorEntityDescription( key="TEMPERATURE_C", @@ -143,13 +143,13 @@ ECOWITT_SENSORS_MAPPING: Final = { key="RAIN_COUNT_MM", native_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS, device_class=SensorDeviceClass.PRECIPITATION, - state_class=SensorStateClass.TOTAL, + state_class=SensorStateClass.TOTAL_INCREASING, ), EcoWittSensorTypes.RAIN_COUNT_INCHES: SensorEntityDescription( key="RAIN_COUNT_INCHES", native_unit_of_measurement=UnitOfPrecipitationDepth.INCHES, device_class=SensorDeviceClass.PRECIPITATION, - state_class=SensorStateClass.TOTAL, + state_class=SensorStateClass.TOTAL_INCREASING, ), EcoWittSensorTypes.RAIN_RATE_MM: SensorEntityDescription( key="RAIN_RATE_MM", @@ -230,6 +230,13 @@ async def async_setup_entry( name=sensor.name, ) + # Hourly rain doesn't reset to fixed hours, it must be measurement state classes + if sensor.key in ("hrain_piezomm", "hrain_piezo"): + description = dataclasses.replace( + description, + state_class=SensorStateClass.MEASUREMENT, + ) + async_add_entities([EcowittSensorEntity(sensor, description)]) ecowitt.new_sensor_cb.append(_new_sensor)