Important Entities Watchdog: Monitoring Home Assistant Entity Availability

Important Entities Watchdog overview in Home Assistant: tracked entities with status, last-reported time and history.

The Important Entities Watchdog is a custom integration for Home Assistant that monitors whether important entities are still sending data – and makes it visible when a device goes silent. Unlike the built-in unavailable state, it also catches sensors that keep reporting a frozen, stale value.

The problem

Home Assistant only marks a device as unavailable once the integration actively reports the failure. Many devices never do: the battery is dead, the WiFi is gone or a token has expired – the entity simply keeps its last value. From the standard display this is hard to spot.

The Watchdog therefore checks not the value but the time of the last update (last_reported) and compares it against a configurable time window.

Features

  • Monitors all entities carrying a specific Home Assistant label
  • Creates a binary sensor per entity (device_class: connectivity): on = reported within the period, off = silent
  • Summary sensor per configuration: count plus list of silent devices (silent_entities attribute)
  • Dynamic membership: adding/removing the label automatically creates or deletes the sensors
  • Two evaluation modes: real-time and polling
  • History is preserved across reloads (stable unique_ids)
  • Interface in German and English

Installation

Via HACS (planned): add the repository as a custom integration, install, restart Home Assistant.

Manually: copy the folder custom_components/important_entities_watchdog/ into config/custom_components/, restart Home Assistant, then add it under Settings → Devices & Services → Add Integration.

Configuration

One entry is created per label and period combination:

  1. Select a Home Assistant label (e.g. critical)
  2. Choose a period: 1m, 10m, 1h, 6h, 12h, 24h or 7d
  3. Optionally enable real-time mode

An entity counts as silent when it hasn’t reported anything within the period. Settings can be changed later without losing the history.

Created entities

For the label critical with period 24h:

  • one binary sensor per monitored entity binary_sensor.important_entities_watchdog_critical_<source>_24h
  • a summary sensor sensor.important_entities_watchdog_silent_critical_24h – state = number of silent devices, attribute silent_entities = list of entity IDs (plus, among others, tracked_entities, tracked_count, period_seconds, next_check, tick_seconds)
  • a cleanup button for orphaned sensors button.important_entities_watchdog_clean_orphans_critical_24h

Evaluation modes

Polling (default): evaluation runs on a tick of period/10 (for 24h, roughly every 2.4 h). Saves resources for frequently reporting sources; detection is delayed by at most one tick.

Real-time: the Watchdog subscribes to state-change events and detects failures instantly, with a safety tick every 60 seconds. Useful for short periods and critical devices.

Example automations

Daily report of silent devices:

automation:
  - alias: "Watchdog – morning report"
    trigger:
      - platform: time
        at: "08:00:00"
    condition:
      - condition: numeric_state
        entity_id: sensor.important_entities_watchdog_silent_critical_24h
        above: 0
    action:
      - service: notify.mobile_app_phone
        data:
          title: "Silent devices"
          message: >
            {{ states('sensor.important_entities_watchdog_silent_critical_24h') }}
            device(s) no longer reporting:
            {{ state_attr('sensor.important_entities_watchdog_silent_critical_24h',
               'silent_entities') | join(', ') }}

Instant alert as soon as a new device goes silent:

automation:
  - alias: "Watchdog – instant alert"
    trigger:
      - platform: state
        entity_id: sensor.important_entities_watchdog_silent_critical_24h
    condition:
      # only when the count rises, not when recovering
      - condition: template
        value_template: >
          {{ trigger.to_state.state | int(0) > trigger.from_state.state | int(0) }}
    action:
      - service: notify.mobile_app_phone
        data:
          title: "Device went silent"
          message: >
            Newly silent:
            {{ state_attr('sensor.important_entities_watchdog_silent_critical_24h',
               'silent_entities') | join(', ') }}

Limits

  • Restart false positives: after an HA restart, last_reported is reset – shortly after startup, devices may falsely appear silent. For instant alerts, a short grace period after boot is recommended.
  • Polling latency: in polling mode the detection delay is up to one tick (period/10).
  • Per-entity uptime (availability in percent) is not yet implemented.
  • Tested with Home Assistant 2024.x and 2025.x.

Source code and docs under the MIT licence on GitHub – issues and pull requests welcome. A good companion: our Advanced Entity Selector Card to find and label the entities you want to monitor in the first place.