Use native datetime value in Shelly sensors (#60179)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
Michael
2021-11-23 17:18:58 +01:00
committed by GitHub
parent d249743ccf
commit e3910856ad

View File

@@ -153,16 +153,15 @@ def is_block_momentary_input(settings: dict[str, Any], block: Block) -> bool:
return button_type in ["momentary", "momentary_on_release"] return button_type in ["momentary", "momentary_on_release"]
def get_device_uptime(uptime: float, last_uptime: str | None) -> str: def get_device_uptime(uptime: float, last_uptime: datetime | None) -> datetime:
"""Return device uptime string, tolerate up to 5 seconds deviation.""" """Return device uptime string, tolerate up to 5 seconds deviation."""
delta_uptime = utcnow() - timedelta(seconds=uptime) delta_uptime = utcnow() - timedelta(seconds=uptime)
if ( if (
not last_uptime not last_uptime
or abs((delta_uptime - datetime.fromisoformat(last_uptime)).total_seconds()) or abs((delta_uptime - last_uptime).total_seconds()) > UPTIME_DEVIATION
> UPTIME_DEVIATION
): ):
return delta_uptime.replace(microsecond=0).isoformat() return delta_uptime
return last_uptime return last_uptime