Skip to content

Releases: SH1FT-W/pulse

26.10.8

Choose a tag to compare

@SH1FT-W SH1FT-W released this 19 Oct 21:47

New

  • Beta: mains-powered devices. Turn on Notifications → Beta → Watch mains-powered devices (off by default) and Pulse also watches devices without a battery from local integrations (ZHA, Zigbee2MQTT, Z-Wave, Matter, Hue, deCONZ, ESPHome, Shelly, Tasmota, TP-Link, WLED and more). Pulse tells you when one is no longer reachable, or when one that usually reports regularly (a plug with a power meter, a Zigbee router) goes silent. A lamp that only reports when it is switched stays OK while it is reachable.
  • Your own notification texts. Notifications → Texts lets you rewrite title and text for Failed, Check, Battery and Back again. You start from Pulse's sentence, insert placeholders ({name}, {area}, {reason}, {model}, {manufacturer}, {integration}) and see a live preview.
  • Five languages. English, German, French, Spanish and Dutch for the panel, notifications, reasons and the integration.
  • Labels. The Home Assistant label pulse_important or pulse_ignore on a device or one of its entities marks it important or ignored. The label wins over the panel switch.
  • Action pulse.send_summary sends the daily summary right away.

Changed

  • Less strict at night. Pulse now learns each device's daily pause (the longest gap that comes back on most days). Sensors that report every few minutes by day but not at night, like a light sensor in the dark, no longer turn Watch, Check or Failed every night. Real outages are still reported.
  • Notifications about one device start with its room, unless the device name already contains it.

Full details in the changelog.

26.10.7

Choose a tag to compare

@SH1FT-W SH1FT-W released this 18 Oct 11:47

Changed

  • Reachable devices that report on their own all the time (longest normal gap up to three hours, e.g. a Matter presence sensor or a Netatmo outdoor module) are judged by silence again. If such a device stays silent much longer than usual while the integration still reports it reachable, Pulse shows Check ("still on the air, but no values"), never Failed. Reachable devices that only report on events (leak sensor, lock, window contact, rain gauge) stay OK as in 26.10.6.

26.10.6

Choose a tag to compare

@SH1FT-W SH1FT-W released this 18 Oct 11:34

Changed

  • Devices that their integration reports as reachable (Matter, cloud connectivity sensor) are never judged by silence anymore, not even after a week. A leak sensor without water has nothing to report, so 26.10.5's Watch ("not used") after seven days was wrong. Such devices are OK, also before Pulse has learned a rhythm; an outage still shows as unreachable.

26.10.5

Choose a tag to compare

@SH1FT-W SH1FT-W released this 18 Oct 10:14

Changed

  • Devices whose integration knows if they are reachable (Matter devices and cloud devices with a connectivity sensor, e.g. Netatmo) are no longer judged by silence. A lock that is only used now and then, or a rain gauge on a dry day, stays OK as long as the integration reports it reachable; after a week without use it becomes Watch ("not used"). When the integration loses the device, Pulse reports it as unreachable as before.
  • The device sheet grows smoothly when Settings are opened (where the browser supports it), scrolls them into view and may be taller on large screens.
  • Devices without a learned rhythm (they only report on actions) become Watch after two days of silence and Check only after a week. They no longer show up in the daily summary after two quiet days; the README and the panel's learning hint say so.
  • sensor.<device>_pulse_last_report is disabled by default: every report would be a recorder row. Enable it in the entity settings if an automation needs it.
  • Stored data is written far less often: the uptime stamp is saved every five minutes instead of every minute, new reports wait ten minutes, settings and actions one minute. Stopping still saves immediately.
  • Non-admin users no longer receive notification recipients or persons in the panel's live data.
  • The diagnostics download no longer contains device IDs of partners or dismissed partner suggestions.
  • pulse.snooze accepts up to 8760 hours (one year) in the actions UI as well, matching the service schema.
  • Log messages are in English.

Fixed

  • After every Home Assistant restart, the state rows HA rewrites on start were read back from the recorder as reports, so a silent device looked alive again ("last report" at the restart time). They are ignored now, and stored ones are removed once.
  • Cloud devices still carried the reports of every cloud poll from before 1.1, so Pulse expected a report every few minutes (a Netatmo rain gauge went to Watch within an hour without rain). Their reports are rebuilt once from real value changes.
  • pulse_device_status_changed fired for the first evaluation after a start when the recorder history changed the verdict.
  • A battery or "battery low" entity provided by another integration (for example a template sensor) counted as a sign of life.
  • Undoing an automatically detected battery change did not remove the report that had been inserted with it.
  • Registry changes of Pulse's own entities and cosmetic entity changes no longer trigger a device rediscovery.

Development

  • CI: HACS validation runs on push and weekly, actions in the issue triage are pinned to commits, translations are checked for completeness, and a weekly job tests against the latest Home Assistant. Issue form for bug reports. Panel component tests with happy-dom.

26.10.4

Choose a tag to compare

@SH1FT-W SH1FT-W released this 16 Oct 19:40

New version numbers

From now on Pulse uses calendar versions: year.month.release of that month. 26.10.4 is the fourth Pulse release in October 2026; the next month starts again at .1 (e.g. 26.11.1).

The jump from 1.1.0 to 26.10.4 is intended. Home Assistant and HACS see 26.10.4 as newer than every 1.x, so the update is offered as usual. The "What's new" sheet explains the new numbers once.

No other changes in this release.

1.1.0

Choose a tag to compare

@SH1FT-W SH1FT-W released this 16 Oct 12:15

New

  • Battery forecast: Pulse estimates how long a battery will last ("about 2–5 months") from Home Assistant's long-term statistics. Devices with coarse or unreliable levels honestly show no forecast. The battery card lists what is due in the next eight weeks.
  • "Radio, but no values": with Zigbee2MQTT's health check (enabled only after you confirm in the panel), Pulse notices devices that still talk to the network but no longer send readings.
  • Missing battery entity: a device whose battery sensor has been unavailable for a day while it keeps reporting gets its own reason.
  • Cloud outages: when several devices of a cloud integration (e.g. Netatmo, Ring) go quiet together, Pulse sends one calm message instead of an alarm per device. A cloud's polling is no longer taken as a sign of life.
  • Partner suggestions: Pulse suggests devices that are regularly active together; accept or dismiss them in the device sheet.

Fixed

  • A grouped notification was queued again every minute during quiet hours.
  • Stored data was only written at shutdown while devices kept reporting.
  • After a longer Home Assistant downtime all devices were reported as failed. The time Home Assistant was off no longer counts as silence.
  • Zigbee2MQTT replays after a restart arrived later than expected and counted as signs of life, hiding real failures.
  • A single Zigbee2MQTT message with battery and voltage could be taken as a battery change.
  • A device's own "battery low" sensor now wins over a contradicting percentage.
  • Devices no longer monitored keep no orphaned Pulse entities.
  • Headline, rhythm bar and reason now agree on when a silence started; a single stray report after a long silence no longer counts as recovery, a real action does.
  • Less work in the event loop with many or chatty devices.

Panel

  • The headline puts problems first ("3 devices need you") and only glows when everything is in rhythm.
  • Times older than five days show a date; important devices carry a star and can be marked from the menu.
  • "Battery replaced" is the main action only when the battery is the likely cause; clearer, consistent wording; better phone layout; empty and connection-lost states keep the last view.

1.0.1

Choose a tag to compare

@SH1FT-W SH1FT-W released this 13 Oct 07:54

Pulse checked against the Home Assistant Integration Quality Scale. Self-assessed result: Platinum. Every rule is listed in custom_components/pulse/quality_scale.yaml, either done or exempt with a reason.

New

  • Download diagnostics under Settings → Devices & services → Pulse. It contains the state of every monitored device, Zigbee2MQTT and the settings, without device names, recipients or persons. Attach it when you open an issue.
  • README: known limitations, troubleshooting and removal instructions.

Under the hood

  • Platforms declare PARALLEL_UPDATES.
  • Type checking runs with mypy --strict.

1.0.0

Choose a tag to compare

@SH1FT-W SH1FT-W released this 08 Oct 17:40

First release of Pulse, a passive battery watchdog for Home Assistant.

Pulse watches every battery-powered device, learns how often each one normally reports and tells you when one goes quiet. It only listens and never polls, so it costs no battery and no airtime.

What you get

  • Rhythm learning from the last ten days of recorder history, so there is no learning week.
  • Status per device (Good, Watch, Check, Failed), always with a reason in plain words.
  • Restart echoes from Zigbee2MQTT or Home Assistant never count as a sign of life.
  • Zigbee signs of life: one switch turns on last_seen and availability in Zigbee2MQTT.
  • Cross-check between partner devices, for example a lock and its door contact.
  • Battery change detection from voltage or level jumps and Zigbee re-joins, with a history per device.
  • Notifications to the Companion app: right away, daily or off per level, quiet hours, critical alerts for important devices, only when someone is home, action buttons. One message instead of many when a hub or bridge takes several devices down at once.
  • Repairs entries for failed devices, diagnostic entities, events and actions for automations.
  • A sidebar panel with a rhythm strip per device, a heartbeat calendar and the notification settings. Read only for non-admins.

Installation

Add https://github.com/SH1FT-W/pulse as a custom repository in HACS (type Integration), install Pulse, restart Home Assistant (2026.9 or newer) and add the integration with one click.