explainer / Oct 16, 2026
A Restored Home Assistant Timer Is Not a Replayed Action
A countdown can survive a restart without replaying a missed completion. Choose between waiting, restoring a timer and remembering a deadline.

Home Assistant can restore a timer without running the action that was supposed to follow it. With restoration enabled, a countdown can continue across a restart, but a timer that expires while Home Assistant is offline does not cause its completion automation to run on startup. For a self-hosted smart home, the important distinction is between remembering time and deciding how to handle work that is already overdue.
A waiting run is not a saved appointment
An automation delay belongs to a running sequence. According to the current automation execution documentation, restarting Home Assistant stops those runs; a delay or wait does not resume where it left off. A server update therefore creates a different problem from a second motion event arriving during an existing routine. Changing the automation mode does not turn that routine into durable work.
The same caution applies to a trigger's for interval. The trigger documentation states that this waiting period is reset by a Home Assistant restart or automation reload. It expresses a condition remaining true for a duration, not a saved appointment to act at a particular wall-clock time. That distinction matters when a homelab maintenance window overlaps a household routine.
Restoration preserves the countdown, not every consequence
A timer helper moves the countdown into its own entity. The Timer integration reference describes active, paused and idle states, with restoration available through the restore option. In YAML that option defaults to false, so the mere presence of a timer is not evidence that restart recovery is enabled.
Consider a nonessential decorative light with a countdown to switch it off. If Home Assistant returns before the countdown ends, restoring the timer can preserve the intended remaining interval. If the deadline passes during the outage, the documented completion event does not trigger the follow-up automation on startup. A green server-health indicator afterward says nothing about whether that missed action occurred.
Nor does an idle timer prove completion. Idle can mean finished, cancelled or never started. Treating every idle timer as a request to perform the final action conflates several different household intentions.
A saved deadline answers a different question
A date-and-time helper can represent when something was meant to happen. The Input Datetime documentation explains that it restores its previous value when no valid initial override is supplied. It can also supply the time for an automation trigger.
For a one-off deadline, storing both date and time distinguishes a particular appointment from a repeating time of day. But storing that value is not a complete recovery mechanism. Triggers react to moments and changes; a past appointment needs an explicit decision about whether it still warrants action. The saved timestamp is evidence for that decision, not proof that the action ran.
A reliable design also needs to distinguish pending work from work already completed or cancelled. Otherwise the same old deadline can keep looking actionable after every later restart. This is a design requirement, not a claim that a date-and-time helper provides a durable job queue.
Decide whether late execution is still wanted
Recovery policy should follow the consequence, not the convenience of a trigger. For a decorative light, checking its current state and restoring an agreed default may be reasonable. A stale reminder may instead be worth discarding. Replaying a physical command hours late can be worse than missing it.
Before choosing a mechanism, answer three questions:
- Does the task require the remaining duration, or the original deadline?
- If that deadline is missed, should the task run late, be skipped, or request a human decision?
- What evidence distinguishes a pending task from a completed or cancelled one?
A startup recovery check should also account for devices that have not reconnected yet. An unavailable entity is not a reliable observation of its physical state. Safety-critical heating, locks and similar equipment need independent protections; a generic home-server timer is not a substitute.
Choose a mechanism with a narrow responsibility
A short delay is appropriate when abandoning the remainder of a sequence after a restart is acceptable. A timer is useful when a visible, controllable countdown matters, provided restoration and missed-expiry behavior match the requirement. A saved deadline is useful when the original target time must remain inspectable after downtime, together with a separate policy for overdue work.
These mechanisms are not interchangeable merely because all three can eventually lead to an action. Replacing a delay with a timer also changes how the follow-up automation receives context. The official execution guidance limits that simple replacement to cases with one wait at a time and no dependency on the original trigger's information.
Judge recovery by the missed interval
Evidence should cover both a restart that finishes before the deadline and downtime that spans the deadline. Those are different cases, not two versions of the same successful restart test. Cancellation deserves a separate case because it should not accidentally become permission to perform the completion action.
For any future implementation, evaluate a harmless test target before connecting real equipment, retain the previous automation configuration, and define how to disable the new recovery behavior. The useful outcome is not merely a restored helper: it is a household action whose on-time, late and cancelled behavior is deliberate.
Verification ledger