From 14375e76a35439c898a9994bd5d9c11b1a7c9d84 Mon Sep 17 00:00:00 2001 From: Saswat Padhi Date: Thu, 20 Feb 2025 07:42:09 +0000 Subject: [PATCH] Opower: Fix unavailable "start date" and "end date" sensors (#138694) avoid passing string into date device class --- homeassistant/components/opower/sensor.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/opower/sensor.py b/homeassistant/components/opower/sensor.py index 61b0e0567b3..46aa9e9b318 100644 --- a/homeassistant/components/opower/sensor.py +++ b/homeassistant/components/opower/sensor.py @@ -4,6 +4,7 @@ from __future__ import annotations from collections.abc import Callable from dataclasses import dataclass +from datetime import date from opower import Forecast, MeterType, UnitOfMeasure @@ -28,7 +29,7 @@ from .coordinator import OpowerConfigEntry, OpowerCoordinator class OpowerEntityDescription(SensorEntityDescription): """Class describing Opower sensors entities.""" - value_fn: Callable[[Forecast], str | float] + value_fn: Callable[[Forecast], str | float | date] # suggested_display_precision=0 for all sensors since @@ -96,7 +97,7 @@ ELEC_SENSORS: tuple[OpowerEntityDescription, ...] = ( device_class=SensorDeviceClass.DATE, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, - value_fn=lambda data: str(data.start_date), + value_fn=lambda data: data.start_date, ), OpowerEntityDescription( key="elec_end_date", @@ -104,7 +105,7 @@ ELEC_SENSORS: tuple[OpowerEntityDescription, ...] = ( device_class=SensorDeviceClass.DATE, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, - value_fn=lambda data: str(data.end_date), + value_fn=lambda data: data.end_date, ), ) GAS_SENSORS: tuple[OpowerEntityDescription, ...] = ( @@ -168,7 +169,7 @@ GAS_SENSORS: tuple[OpowerEntityDescription, ...] = ( device_class=SensorDeviceClass.DATE, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, - value_fn=lambda data: str(data.start_date), + value_fn=lambda data: data.start_date, ), OpowerEntityDescription( key="gas_end_date", @@ -176,7 +177,7 @@ GAS_SENSORS: tuple[OpowerEntityDescription, ...] = ( device_class=SensorDeviceClass.DATE, entity_category=EntityCategory.DIAGNOSTIC, entity_registry_enabled_default=False, - value_fn=lambda data: str(data.end_date), + value_fn=lambda data: data.end_date, ), ) @@ -246,7 +247,7 @@ class OpowerSensor(CoordinatorEntity[OpowerCoordinator], SensorEntity): self.utility_account_id = utility_account_id @property - def native_value(self) -> StateType: + def native_value(self) -> StateType | date: """Return the state.""" if self.coordinator.data is not None: return self.entity_description.value_fn(