From 433045221255f53beb858dd62699e0345132e3d0 Mon Sep 17 00:00:00 2001 From: Nikolay Vasilchuk Date: Wed, 27 Dec 2023 19:21:10 +0300 Subject: [PATCH] Fix Starline attributes timezone (#105645) Co-authored-by: Franck Nijhof --- homeassistant/components/starline/account.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/starline/account.py b/homeassistant/components/starline/account.py index d2b7e3a4aa1e00..2940dcf0579f43 100644 --- a/homeassistant/components/starline/account.py +++ b/homeassistant/components/starline/account.py @@ -25,6 +25,12 @@ ) +def _parse_datetime(dt_str: str | None) -> str | None: + if dt_str is None or (parsed := dt_util.parse_datetime(dt_str)) is None: + return None + return parsed.replace(tzinfo=dt_util.UTC).isoformat() + + class StarlineAccount: """StarLine Account class.""" @@ -143,9 +149,7 @@ def device_info(device: StarlineDevice) -> DeviceInfo: def gps_attrs(device: StarlineDevice) -> dict[str, Any]: """Attributes for device tracker.""" return { - "updated": dt_util.utc_from_timestamp(device.position["ts"]) - .replace(tzinfo=None) - .isoformat(), + "updated": dt_util.utc_from_timestamp(device.position["ts"]).isoformat(), "online": device.online, } @@ -155,7 +159,7 @@ def balance_attrs(device: StarlineDevice) -> dict[str, Any]: return { "operator": device.balance.get("operator"), "state": device.balance.get("state"), - "updated": device.balance.get("ts"), + "updated": _parse_datetime(device.balance.get("ts")), } @staticmethod