diff --git a/custom_components/solaredgeoptimizers/coordinator.py b/custom_components/solaredgeoptimizers/coordinator.py index 37d3ea1c..a22d5038 100644 --- a/custom_components/solaredgeoptimizers/coordinator.py +++ b/custom_components/solaredgeoptimizers/coordinator.py @@ -85,7 +85,7 @@ async def _async_update_data(self): update = False - timetocheck = datetime.now() - CHECK_TIME_DELTA + timetocheck = dt_util.utcnow() - CHECK_TIME_DELTA # tz-aware UTC for optimizer in data: _LOGGER.debug( @@ -94,7 +94,13 @@ async def _async_update_data(self): optimizer.lastmeasurement, ) - if optimizer.lastmeasurement > timetocheck: + ts = optimizer.lastmeasurement + + # SolarEdge returns a *naive* UTC timestamp – tag it as UTC + if ts.tzinfo is None: + ts = ts.replace(tzinfo=timezone.utc) + + if ts > timetocheck: update = True break @@ -109,4 +115,4 @@ async def _async_update_data(self): except Exception as err: _LOGGER.error("Error in updating updater") _LOGGER.error(err) - raise UpdateFailed(err) \ No newline at end of file + raise UpdateFailed(err) diff --git a/custom_components/solaredgeoptimizers/sensor.py b/custom_components/solaredgeoptimizers/sensor.py index 72ef07ed..65972e1f 100644 --- a/custom_components/solaredgeoptimizers/sensor.py +++ b/custom_components/solaredgeoptimizers/sensor.py @@ -4,6 +4,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity import DeviceInfo +from datetime import timezone +from homeassistant.util import dt as dt_util # HA helper, tz-aware + import logging from homeassistant.components.sensor import (