Skip to content

Freeze Detection

TheThinkingHome edited this page Jul 20, 2026 · 11 revisions

Freeze Detection

A frozen device is the failure nothing else catches: the device stops reporting but its entities keep showing the last healthy value. The temperature reads 21 degrees forever. Everything looks fine, and nothing is. Device Sentinel catches this, along with the plainer cases where a device goes unavailable or unknown.

How a device is judged

Every device is measured against its own learned rhythm, not a fixed timeout. Device Sentinel has been learning how often each device speaks since installation, tracked per device, with any entity's activity counting. A device that reports every 30 seconds is judged on a scale of minutes; a device that reports twice a day is judged on a scale of hours. No single timeout could be right for both, which is why there are no timeout tiers to set.

Each device gets a freeze window: its learned rhythm plus a grace margin. When it goes silent past that window while its entities still hold their last values, it is flagged frozen. A device is only judged frozen once it has learned enough days to have a trustworthy rhythm; until then it is watched for unavailable and unknown, but never called frozen, because a device with no established rhythm has no window to miss. Devices with no natural heartbeat, like buttons that only speak when pressed, learn a very long rhythm and so are effectively never called frozen for ordinary quiet.

Frozen, unavailable, and unknown

Three ways a device can be down, read from what its entities show:

  • Frozen: the device stopped reporting, but its entities still show their last values. Silent past its window.
  • Unavailable: every live entity on the device reads unavailable.
  • Unknown: every live entity reads unknown.

The rule underneath all three: if any live entity on a device still reports a real value, the device is alive, however many of its siblings have dropped. A device is down only when nothing on it is reporting. When a down device shows a mix, some entities unavailable and some frozen, it takes its worst category, because a device with most of its entities unavailable is a dead device whose others have simply not caught up yet.

The grace margin

The freeze window is the learned rhythm plus grace, and the grace follows a curve you shape with two sliders on the Freeze Detection screen.

  • Delta low is the grace a fast device gets, in minutes. It keeps a chatty device from being called dead for missing a couple of reports. Range 1 to 8 minutes, default 3.
  • Delta high is the grace a slow device gets, in hours. It catches the slowest devices in a bounded time. Range 2 to 8 hours, default 6.

The two do not just cap the ends; they shape the whole curve between them, so moving either re-tunes every device, not only the fastest and slowest. At the defaults, a device that reports about once an hour gets roughly double its rhythm before it is flagged. Raise delta low if a chatty device is flagged too soon. Lower delta high if a slow device should be caught faster.

The rhythm underneath is never touched by these sliders. It is measured, not chosen, and the sliders tune only how patient to be past each device's own normal.

Detection is live

A device flagged frozen at 11am shows at 11am. The moment it reports again, it clears, at 1pm if that is when it recovers. A freeze in progress survives a restart, because the silence is measured from Device Sentinel's own stored clock, not a value Home Assistant resets at every reboot.

What you see

The Device: Frozen count reports how many devices are down right now, with each one's category and how long it has been down carried in its attributes. It ships off by default, since the todo list is where trouble devices are meant to be read; enable it from the entities page if you want the count on a dashboard. The nightly report leads with a Down devices section: what is in trouble now, worst first, or an all-clear line when nothing is.

What you can do

Nothing is required. Learning is automatic and the defaults are a good starting point. For the most reliable freeze clock, press Scan and Enable Signal and Last-Seen Entities on the device page: last-seen entities are protocol truth, the most reliable clock a device can offer, and some integrations ship them turned off. A device that reports nothing at all, a dead sensor, a stale ghost in the registry, a monitor whose target is gone, will show as down; that is the point. Fix it, or exclude it from the Global Exclusions or this section's own list if it is a device you do not want judged.

Clone this wiki locally