Skip to content

Commit f142a10

Browse files
Update last replaced attribute on change (#4715)
1 parent 7957ada commit f142a10

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

custom_components/battery_notes/sensor.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,10 +422,11 @@ def __init__( # noqa: PLR0913
422422

423423
self._last_ha_state_write: datetime | None = None
424424
self._last_written_battery_level: float | None = None
425+
self._last_written_last_replaced: datetime | None = None
425426

426427
@callback
427428
def _write_tracked_ha_state(self) -> None:
428-
"""Write state at startup, on value changes, or when interval elapsed."""
429+
"""Write state at startup, on value changes, on important attributes or when interval elapsed."""
429430
native_value = self._attr_native_value
430431
if isinstance(native_value, int | float | str):
431432
try:
@@ -435,16 +436,22 @@ def _write_tracked_ha_state(self) -> None:
435436
else:
436437
current_battery_level = None
437438

439+
current_last_replaced = (
440+
self.coordinator.last_replaced if self.enable_replaced else None
441+
)
442+
438443
if self._last_ha_state_write is not None:
439444
if (
440445
current_battery_level == self._last_written_battery_level
446+
and current_last_replaced == self._last_written_last_replaced
441447
and (dt_util.utcnow() - self._last_ha_state_write).total_seconds()
442448
< STATE_WRITE_INTERVAL_SECONDS
443449
):
444450
return
445451

446452
self._last_ha_state_write = dt_util.utcnow()
447453
self._last_written_battery_level = current_battery_level
454+
self._last_written_last_replaced = current_last_replaced
448455
self.async_write_ha_state()
449456

450457
@property

0 commit comments

Comments
 (0)