Fix Starline attributes timezone (#105645)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
Nikolay Vasilchuk 2023-12-27 19:21:10 +03:00 committed by GitHub
parent e507d1c5a5
commit 4330452212
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,6 +25,12 @@ from .const import (
)
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 @@ class StarlineAccount:
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 @@ class StarlineAccount:
return {
"operator": device.balance.get("operator"),
"state": device.balance.get("state"),
"updated": device.balance.get("ts"),
"updated": _parse_datetime(device.balance.get("ts")),
}
@staticmethod