Renamed: What started as a simple way to track battery levels has grown into a full device health monitoring platform. The add-on has been renamed from Battery Sentinel to Battery Sentinel Plus to reflect its expanded feature set. The slug, repo URL, and existing installations are unchanged.
Dead devices break automations. Battery Sentinel Plus monitors every battery-powered, Z-Wave, and Zigbee device in your Home Assistant, alerts you before problems happen, and gives you a proper management page to track them all.
Z-Wave users: Battery Sentinel Plus monitors your entire Z-Wave network for dead nodes, not just battery levels. Any Z-Wave device (switches, dimmers, sensors, sirens, locks) is covered, including mains-powered devices that have no battery entity at all. Battery Sentinel Plus watches the node status sensor reported by Z-Wave JS and alerts you when a node goes offline, so you know about a problem before an automation fails.
Zigbee users: Battery Sentinel Plus monitors your Zigbee devices via the Last Seen timestamps published by Zigbee2MQTT. When a device stops checking in past your configured threshold, an offline alert fires, and a recovery notification follows when it comes back. Requires Last Seen to be enabled in Z2M and the sensor entities to be enabled in HA. See Zigbee Monitoring Setup for the two-step process.
⚠️ Installation type: Battery Sentinel Plus is primarily a Home Assistant add-on requiring a Supervisor-managed installation (HA OS or HA Supervised). Docker support is available in beta for users running Home Assistant Container or any standalone HA instance -- see Docker Installation (beta) below. Home Assistant Core (Python package only) is not supported.
If Battery Sentinel Plus saves you from dead Z-Wave sensors, drained Zigbee devices, or a phone or tablet that's quietly hitting 10% in the background, consider sponsoring! Even a small one-time amount shows appreciation. Check out my other HA projects while you're here.
⭐ Finding this useful? Star the repo so other HA users can find it!
- Auto-discovers all battery-powered devices from Home Assistant; no manual configuration required
- Battery type auto-lookup: one click in Settings fills in battery types for all recognized devices using the Battery Notes community database -- no manual entry needed; devices with conflicting types are shown in a review modal so you can keep yours or accept the database suggestion
- Handles both numeric sensors (percentage) and binary sensors (Low/OK)
- Color-coded battery level indicators: red below 10%, amber below 25%, green otherwise
- Room/area column sourced from the HA area registry
- Sortable columns: name, level, or room
- Resizable columns with widths saved across browser sessions
- Inline alert threshold and battery type selectors per row, no need to open the device panel
- Live filter box above the device list; type any part of a device name to narrow the list instantly
- Battery Type column header filter: show only devices with a specific type, or find all unassigned devices at a glance
- Column visibility controls in Settings: show or hide any column (Level, Battery Type, Alert Threshold, Notifications, Script, Room)
- Help / About button in the page header: shows the current app version, HA version, and install mode, with quick links to the documentation, changelog, and issue tracker
- Battery Type toolbar: pick a type from the dropdown and apply it to all text-filtered devices at once; useful for tagging a whole category (e.g., all smoke detectors) in one step
- Alert Threshold toolbar: same bulk-set pattern for thresholds; filter by name, pick a threshold, apply to all matching devices with one confirmation
Click any device in the list to open its detail panel. Click the battery level directly to jump straight to the History tab.
- Inline rename: click the device name at the top of the panel to edit it; saving writes the new friendly name back to Home Assistant via the entity registry (entity ID is unchanged, so automations and dashboards are unaffected). Note: this renames the battery entity only, not the parent device; the device name in HA's device registry is separate and will not change
- Manufacturer and model number shown below the entity ID (pulled from the HA device registry; blank if the device has no registry entry)
- Battery type dropdown (AA, AAA, C, 9V, CR2032, CR2025, CR123A, CR2, 18650, or custom)
- Per-device alert threshold (5% to 60% in 5% increments, or Ignore)
- Notes field for free-text information about the device or its battery
- Last replaced date, manually editable or stamped with the Replaced/Recharged Today button
- Per-device notification controls: UI, Email, and Mobile toggles; email address override; mobile app service selector
- Mute notifications: silence alerts for a device for 1 hour, 3 hours, 8 hours, 1 day, 3 days, or 1 week; a bell icon appears in the device list next to muted devices; mutes expire automatically with no cleanup needed
- Battery history chart: the History tab inside each device panel shows a line chart of battery level over time; range selector offers 7d, 30d, 90d, 6m, 1y, and a custom date range; recent data uses HA recorder history, and longer ranges automatically switch to HA long-term statistics so you can see months or years of drain history; the alert threshold is shown as a dashed line; recharge events on rechargeable devices appear as a clear spike back to 100%
- Hide device: removes it from the list and suppresses all alerts; hidden devices are accessible in a collapsible section at the bottom of the Devices tab where they can be restored or permanently deleted. Note: if the entity still exists in Home Assistant, permanently deleted devices will reappear on the next scan.
Battery Sentinel Plus supports three notification channels, each configurable globally and per device.
- UI notification: a single consolidated HA persistent notification listing all currently low batteries, sorted lowest first; updates in place each check cycle and dismisses automatically when all batteries recover
- Email: fires once per device when its threshold is first crossed; resets when the battery recovers
- Mobile push: per-device push notification via any
mobile_app_*notify service; a global default service can be set in Settings with a per-device override in the device panel - Each device has individual UI / Email / Mobile toggles in the device list and in the device panel; column header checkboxes let you enable or disable a channel for all devices at once
- Configurable check interval (default 10 minutes)
- Optional alert when a new battery device is discovered
- Optional alert when a battery device goes unavailable or unknown (useful for Z-Wave/Zigbee devices that stop reporting after firmware updates or radio changes); configurable delay (default 5 minutes) filters out brief communication blips before firing; a matching recovery notification is sent when the device comes back online
- Select any HA notify service from a dropdown (populated from your installed integrations); the dropdown only shows services registered under the
notifydomain -- this is the Home Assistant standard and is followed by all built-in and most third-party email integrations (SMTP, Gmail, etc.); non-standard integrations that register under a different domain will not appear - Global To address and CC field (comma-separated for multiple recipients)
- Per-device email address override
- HTML-formatted email body for proper line breaks in all email clients
- Scheduled daily email report at a configurable time
- HTML-formatted email with a header (Battery Sentinel Plus icon + date/time stamp), color-coded battery levels (red/amber/green), and a footer link to the project
- Full-list mode splits into two sections: Needs Attention (below threshold) and All Batteries (above threshold), each sorted lowest battery first
- Low-only mode sends only the devices below their threshold, sorted lowest first; suppressed automatically when nothing is low (configurable)
- Optional battery type column in each row
- Send Report Now button in Settings sends the report immediately without waiting for the scheduled time; useful for testing your email setup
Run any Home Assistant script when a device crosses its threshold; useful for Alexa announcements, SMS notifications, flashing lights, or any other automation.
- Global script: set once in Settings; runs for every device that has no per-device override
- Per-device script: overrides the global for that device; can also be set to Disabled to suppress the global for a specific device
- Rate-limited to once per calendar day per device; if a battery sits at the threshold and fluctuates up and down, the script fires only once that day
- The Script column in the device list shows the assigned script at a glance (device-specific in white, inherited global in gray, disabled shows "Off")
Battery Sentinel Plus passes the following variables to the script automatically:
| Variable | Example value | Description |
|---|---|---|
device_name |
Back Porch Temp Sensor |
Friendly name of the device |
battery_level |
8% or Low |
Current battery level |
battery_type |
AA |
Battery type if set, otherwise blank |
area |
Outside |
HA area/room if assigned |
entity_id |
sensor.back_porch_battery |
HA entity ID |
Example script: Alexa announcement with a fallback SMS:
alias: Battery Sentinel Plus Low Battery Alert
sequence:
- action: notify.alexa_media_kitchen
data:
message: >
Attention: {{ device_name }} battery is low at {{ battery_level }}.
{% if battery_type %}It uses {{ battery_type }} batteries.{% endif %}
data:
type: announce
- action: notify.sms_gateway
data:
message: >
Battery Sentinel Plus: {{ device_name }} ({{ area }}) is at {{ battery_level }}.
{% if battery_type %}Battery type: {{ battery_type }}.{% endif %}
Entity: {{ entity_id }}Battery Sentinel Plus monitors Z-Wave network health by watching the node status sensors created by Z-Wave JS. When Z-Wave JS marks a node dead, Battery Sentinel Plus picks it up on the next scan and fires an alert. How quickly Z-Wave JS declares a node dead depends on the device type and network activity, mains-powered devices are typically flagged within several minutes once Z-Wave JS attempts to contact them, while battery-powered sleeping devices may take longer since Z-Wave JS waits for their scheduled wakeup window.
This covers your entire Z-Wave network, not just battery-powered devices. Mains-powered switches, dimmers, outlets, locks, sirens, anything with a sensor.*_node_status entity in Z-Wave JS is monitored. Without this feature, the only way to know a node is dead is to notice an automation failed or manually check the Z-Wave device list.
- Monitors all
sensor.*_node_statusentities created by Z-Wave JS automatically; covers every Z-Wave device on your network regardless of whether it has a battery sensor - Fires a dead node alert after a configurable delay; brief communication blips that resolve before the delay expires are silently ignored
- Fires a recovery notification when a dead node comes back online
- Alert fires once per dead event and resets automatically on recovery; no repeat notifications while a node stays dead
- Suppressed on the first scan after add-on startup so a rebooting HA instance does not flood you with alerts while Z-Wave JS is still initialising
- Per-node notification channels (bell, email, mobile push) and mute periods in the Z-Wave tab; global alert delay shared with other monitors in the Notifications settings
- Optional script trigger passes
device_name,entity_id,node_status, anddevice_type(z-wave) to the global script configured in Notifications - Periodic node pinging: optionally pings all alive nodes on a configurable interval (default 30 minutes) via
zwave_js.ping; prompts Z-Wave JS to update node status immediately rather than waiting for its natural mesh update cycle, so dead nodes are detected and alerted sooner; sleeping battery-powered nodes are skipped automatically
Future: dead Z-Wave nodes may appear directly in the device list so they can be muted or acknowledged the same way battery devices are.
Beta: Zigbee monitoring is new and has been tested on a small network. If you run into issues or unexpected behavior on a larger network, please open a GitHub issue.
Battery Sentinel Plus monitors Zigbee device health by tracking the Last Seen timestamps that Zigbee2MQTT publishes for each device. When a device has not checked in for longer than the configured threshold, Battery Sentinel Plus fires an offline alert. When it checks back in, a recovery notification follows automatically.
Requires setup: Last Seen must be enabled in Zigbee2MQTT and the Last Seen sensor entities must be enabled in Home Assistant. See Zigbee Monitoring Setup for the two-step process.
- Monitors all
sensor.*_last_seenentities created by Zigbee2MQTT; MQTT-platform entities only, so Z-Wave and other protocol devices are automatically excluded - Fires an offline alert (bell and/or email) after a configurable delay once the Last Seen timestamp is older than the configured threshold
- Fires a recovery notification when the device checks back in
- Alert fires once per offline event and resets automatically on recovery; no repeat notifications while a device stays offline
- Suppressed on the first scan after add-on startup to avoid false positives while integrations are loading
- Configurable offline threshold (default 24 hours), set higher than your Z2M availability timeout to avoid false alerts
- Separate scan interval (default 30 minutes) independent from the battery check interval
- Per-device notification channels (bell, email, mobile push) and mute periods in the Zigbee tab; global alert delay shared with other monitors in the Notifications settings
- Optional script trigger passes
device_name,entity_id,last_seen, anddevice_type(zigbee) to the global script configured in Notifications - Per-device settings in the Zigbee tab: notes, mute, and per-channel notification overrides
Battery Sentinel Plus discovers any entity with device_class: battery regardless of the integration that created it. ZHA (Zigbee Home Automation) battery devices are fully supported in the main Devices tab alongside Z2M, Z-Wave JS, Bluetooth, Wi-Fi, and Matter devices -- no extra setup required.
The Zigbee offline monitoring feature (Zigbee tab) is Zigbee2MQTT-specific because it relies on the sensor.*_last_seen entities that Z2M publishes. ZHA does not create those entities, so the offline monitoring tab is not available for ZHA setups. Battery level tracking works for both.
Battery Sentinel Plus can automatically identify battery types for your devices using the Battery Notes community database, a crowd-sourced library of thousands of smart home devices and their battery types maintained by andrew-codechimp. The database is bundled locally with the add-on and refreshed weekly, lookups are instant with no external network calls, but it may not include devices added to the community library in the last few days. If the lookup saves you time, consider buying him a coffee, the database is a significant community effort.
- Click Look Up Battery Types in Settings > General to run the lookup
- Devices with no battery type set are updated automatically in the background; a status message shows how many were filled in
- Devices where your existing type differs from the database are shown in a conflict modal; each entry shows your current type vs the database suggestion with per-row Keep Mine / Use DB buttons
- Bulk Keep All Mine / Use All Database buttons in the modal footer resolve everything at once
- Any new battery types discovered are added to your managed battery type list automatically
- All configuration through the built-in Settings tab; no YAML to edit
- Battery type list is fully manageable: add or remove types
- Column visibility card: checkboxes to show or hide each column in the device list; saved across browser sessions
- Scan Now button to immediately refresh battery levels and discover new devices without waiting for the next check interval
- Card-based layout fills the screen on desktop, wraps on mobile
Option A: Shortcut button (requires My Home Assistant to be configured):
⚠️ I'm currently unable to confirm this button works on recent HA versions. It opens the App Store but may not show the pre-filled add repository dialog. I have filed a bug with Home Assistant. If this button works for you, please let me know in issues. In the meantime, use Option B below.
Option B: Manual repository add (works on all installations):
- In Home Assistant go to Settings → Apps → Install App
- Click the ⋮ menu (top right) and select Repositories
- Click + Add (bottom right corner)
- Paste
https://github.com/smcneece/battery-sentinelin the box and click Add
Once the repository is added:
- Find Battery Sentinel Plus in the App Store and click it.
- Click Install and wait a moment for it to download.
- Enable Start on boot and Auto-update.
- Enable Show in sidebar for quick access from the HA menu.
- Click Start.
- Click Open Web UI or use the Battery Sentinel Plus link in the sidebar.
⚠️ No automatic updates: local add-ons are not tracked by the Supervisor. You will not receive update notifications; you must check GitHub releases manually and re-copy files for each new version. The repository install method above is strongly recommended.
- Copy the
addonfolder from this repository to/addons/battery-sentinel/on your Home Assistant host. - Go to Settings > Apps > App Store, click the menu and select Check for updates.
- Battery Sentinel Plus will appear under Local add-ons. Click Install, then Start.
Beta: Docker support is new and has been tested in a limited environment. The developer does not run a full Docker-based HA stack, so feedback from Docker users is especially welcome. Please open an issue if you run into problems.
For users running Home Assistant Container or any standalone HA instance, Battery Sentinel Plus can run as a plain Docker container. You will need a long-lived access token from your HA profile page.
git clone https://github.com/smcneece/battery-sentinel
cd battery-sentinel/addon
docker build -t battery-sentinel .
docker run -d \
--name battery-sentinel \
--network host \
--restart unless-stopped \
-v /path/to/data:/data \
-e HA_BASE_URL=http://your-ha-ip:8123 \
-e HA_TOKEN=your-long-lived-token \
battery-sentinelReplace /path/to/data with a local directory for persistent storage, your-ha-ip:8123 with your HA address, and your-long-lived-token with the token from your HA profile. The UI is accessible at http://your-host-ip:8099 once the container is running. Ingress is not available in Docker mode; access the UI directly via the port.
⚠️ Updates are manual in Docker mode. There are no automatic update notifications. To get notified of new releases, click Watch → Custom → Releases on the GitHub repository -- GitHub will email you when a new version is published. Thengit pull, rebuild the image, and restart the container to update.
Battery Sentinel Plus stores all device metadata (notes, battery types, alert thresholds, last replaced dates) in a single JSON file managed by the Home Assistant Supervisor. This is separate from the add-on code and is included automatically in standard Home Assistant full backups; no special steps required. You do not need to back it up manually.
- Home Assistant OS or Home Assistant Supervised: the Supervisor is required to install and run add-ons. Home Assistant Core and Home Assistant Container installations cannot use add-ons.
- No additional configuration; the add-on connects to HA automatically via the Supervisor API
All configuration is done within the add-on UI. There is no YAML to edit.
| Setting | Default | Description |
|---|---|---|
| Scan Now | button | Refreshes battery levels and discovers new devices immediately; does not re-trigger notifications for devices already flagged |
| Check interval | 10 min | How often Battery Sentinel Plus polls HA for new devices and current battery levels (1 to 120 minutes) |
| Battery types | AA, AAA, C, 9V, CR2032, CR2025, CR123A, CR2, 18650 | Managed list available in the per-device dropdown |
| Look Up Battery Types | button | Queries the Battery Notes community database to auto-fill missing types; shows a conflict modal for devices where your type differs from the database |
| Setting | Default | Description |
|---|---|---|
| Default alert threshold | 20% | Alert level applied to newly discovered devices |
| UI notification | On | Creates/updates a single HA persistent notification listing all low batteries |
| New device alert | On | Fires a notification when a new battery device is first discovered |
| Unavailable device alert | Off | Fires a notification when a battery device transitions to unavailable or unknown state; paired with a recovery notification when it comes back online |
| Alert delay | 5 min | Minutes to wait before firing any unavailable, dead-node, or offline alert; devices that recover before the delay expires are silently ignored; set to 0 for immediate alerts |
| Email notify service | none | Dropdown of your installed HA notify services |
| Default To address | none | Primary email recipient for all alerts and reports |
| CC addresses | none | Additional recipients, comma-separated |
| Default mobile service | none | Fallback mobile_app_* service used when a device has Mobile enabled but no specific service set |
| Global script trigger | none | Script to run when any device crosses its threshold or a node goes dead/offline; always receives device_name, entity_id, and device_type (battery, z-wave, or zigbee); battery alerts also pass battery_level, battery_type, and area; Z-Wave alerts also pass node_status; Zigbee alerts also pass last_seen; per-device setting overrides this |
| Setting | Default | Description |
|---|---|---|
| Send daily battery report email | Off | Enables the scheduled daily email |
| Send report even when all batteries are OK | Off | When off, the low-only report is suppressed if nothing is below threshold |
| Send time | 8:00 AM | Time of day to send the report |
| Send on | All days | Day-of-week checkboxes (Mon through Sun); uncheck any day to skip the report on that day |
| Include in report | Low batteries only | Choose low batteries only or a full status list |
| Include battery type in reports and notifications | Off | Adds a battery type column to each row when set |
| Send Email Report Now | button | Sends the daily report immediately, bypassing the schedule |
| Setting | Default | Description |
|---|---|---|
| Alert when a Z-Wave node goes dead | Off | Enables node status monitoring for all Z-Wave JS devices; notification channels and mute periods are configured per-node in the Z-Wave tab |
| Periodically ping Z-Wave nodes | Off | Pings all alive nodes on a configurable interval so Z-Wave JS detects failures faster; sleeping battery-powered nodes are skipped automatically |
| Ping interval | 30 min | How often Battery Sentinel Plus pings alive Z-Wave nodes; minimum 10 minutes; only active when node monitoring is also enabled |
| Alert when a Zigbee device goes offline | Off | Enables Last Seen monitoring for Zigbee2MQTT devices; notification channels and mute periods are configured per-device in the Zigbee tab |
| Offline threshold | 24 hours | Hours without a check-in before a Zigbee device is considered offline; set higher than your Z2M availability timeout |
| Scan interval | 30 min | How often Battery Sentinel Plus checks Zigbee Last Seen timestamps; independent from the battery check interval |
| Scan Now | button | Triggers an immediate Zigbee scan without waiting for the next interval |
The alert delay for Z-Wave and Zigbee monitors uses the shared Alert delay setting in the Notifications card. The global script trigger in the Notifications card fires for Z-Wave and Zigbee events too, with a
device_typevariable indicating the source.
| Field | Description |
|---|---|
| Battery Type | Dropdown populated from your configured battery type list |
| Alert Threshold | Per-device override: 5% to 60% in 5% increments, or Ignore |
| Notes | Free-text field for any relevant notes |
| Mute battery level notifications | Silence low-battery alerts for this device for a set period (1 hour to 1 week); mutes expire automatically; a bell icon appears in the device list while active |
| Battery level notifications | UI (HA), Email, and Mobile toggles for low-battery alerts on this device specifically |
| Send unavailable notifications | When unchecked, this device is silently skipped for went-unavailable and back-online alerts; useful for devices that are expected to go offline (laptops, phones, tablets); checked by default |
| Email address override | Sends this device's alerts to a specific address instead of the global default |
| Mobile app notification | Select a mobile_app_* notify service to receive push notifications for this device |
| Script trigger | Use global default, select a specific script to override, or set to Disabled to suppress the global for this device |
| Last Replaced | Date of last battery replacement; set automatically via the button or edited manually |
| Replaced / Recharged Today | Stamps today's date as the last replacement date |
| Hide | Removes the device from the list and suppresses all alerts for it. Hidden devices do not reappear on the next scan. A collapsible "Hidden devices" section at the bottom of the Devices tab lets you restore any hidden device at any time, or permanently delete it. Note: permanently deleted devices will be re-added automatically on the next scan if their entity still exists in Home Assistant. |
Battery Sentinel Plus is fully functional on mobile and tablet browsers. For the best experience, a desktop browser is recommended; the device table with resizable columns, battery level bars, and notification checkboxes is designed for wider screens. On narrow mobile screens, columns will be compressed and some detail (such as the level bar) may be partially clipped.
Battery Sentinel Plus discovers any entity in Home Assistant with device_class: battery. This includes:
- Z-Wave and Zigbee sensors, remotes, and door/window contacts
- Bluetooth devices
- Matter devices
- Wi-Fi devices that report battery level (phones, tablets, weather stations)
- Any integration that correctly sets the battery device class
Devices that report battery as a binary state (low/ok) rather than a percentage are displayed with a Low/OK indicator instead of a percentage bar, and sort to the top of the list when low.
Battery Sentinel Plus avoids notification spam by design across all three channels.
- On each check cycle, the add-on builds a list of every device currently below its threshold
- UI: a single notification titled Battery Sentinel Plus: Low Batteries is created or updated in place with that list; it dismisses automatically when all batteries recover
- Email: each device fires one email when it first crosses its threshold and resets when the battery recovers or is replaced; no repeat emails for a battery that stays low
- Mobile: same single-fire behaviour as email; uses the device-specific
mobile_app_*service if set, otherwise falls back to the global default - The check interval is configurable; changing it in Settings takes effect after the current cycle completes without restarting the add-on
- Unavailable device alerts fire once per device when it transitions to unavailable or unknown state, and reset automatically when it recovers. The alert is suppressed on the first scan after add-on startup to prevent a flood of notifications when HA itself is rebooting and integrations like Zigbee2MQTT or Z-Wave JS have not finished loading yet. Devices may briefly show N/A in the list during this window; a manual Scan Now will refresh their state immediately once the integration is back up. Individual devices can opt out entirely via the Send unavailable notifications checkbox in the device detail panel -- useful for laptops, phones, or any device that is expected to go offline periodically.
- Z-Wave node alerts fire once per dead event when a
sensor.*_node_statusentity reports dead, after the configured delay. A recovery notification fires when the node comes back online. Both are suppressed on the first scan after startup for the same reason as unavailable alerts. Node status is monitored separately from battery level because Z-Wave JS updates node status nearly immediately when a node loses communication, while the battery entity in HA may not reflect the problem for hours. - Zigbee device alerts fire once when a
sensor.*_last_seentimestamp goes older than the configured offline threshold, after the shared alert delay. A recovery notification fires when the device checks back in. Suppressed on the first scan after startup. The scan interval is independent from the battery check interval so Zigbee timestamps are checked on their own schedule. - Duplicate alert suppression: if a device is tracked by Z-Wave or Zigbee monitoring, the generic battery unavailable alert is skipped for that device by default, the protocol-specific monitor handles its connectivity notifications to avoid double alerting. This behaviour can be toggled in the Notifications settings card.
Battery Sentinel Plus's Zigbee monitoring uses the Last Seen timestamps that Zigbee2MQTT publishes for each device. Two quick setup steps are needed before enabling it in Battery Sentinel Plus.
In the HA sidebar, open Zigbee2MQTT and go to Settings > Settings > Availability. Enable Enable availability checks and save.
For larger networks (50+ devices) you may want to increase the active timeout from the default of 10 minutes to 15 or 20 minutes. Scroll down within the Availability section to find this setting.
Set Battery Sentinel Plus's offline threshold higher than this value, if Z2M is set to 10 minutes, set the Battery Sentinel Plus threshold to at least 15 or 20 minutes to avoid false alerts.
Zigbee2MQTT creates a Last Seen sensor for each device, but Home Assistant disables them by default. To enable them all at once:
- In HA go to Settings > Devices & Services > Entities
- Search for
last seen - Filter by the MQTT integration
- Select all, then click the three-dot menu in the top right corner and choose Enable Selected
Once enabled, go to the Battery Sentinel Plus Settings tab, enable Zigbee Device Monitoring, and configure your preferred offline threshold. The Zigbee tab will appear automatically once monitoring is enabled.
See CHANGELOG.md for the full version history.
Pull requests are welcome. A few things to keep in mind before opening one:
Test your changes against a real Home Assistant instance. PRs that have not been run will be closed. If the app does not start, that will be caught immediately.
Describe what you tested. In your PR description, say what environment you ran it in (Supervisor add-on, Docker, etc.) and what functionality you verified. "It works" is not enough -- be specific about what you tested and what you could not test due to your setup.
Understand the scope. Some things like Z-Wave or Zigbee monitoring require specific hardware. If you cannot test a feature end to end, say so and we will work out how to verify it before merging. Nothing merges without a real test run on the maintainer's end regardless.
Rebase against the current main branch before opening a PR. The codebase moves fast and a stale PR creates more work for everyone.
- Marc Easen: responsive mobile/tablet layout and HTML extraction into a standalone file
andrew-codechimp maintains the Battery Notes community database that powers the battery type auto-lookup feature. It's a massive crowd-sourced effort covering thousands of smart home devices. If Battery Sentinel Plus's auto-lookup saved you from hunting down battery specs, please consider showing some Andrew some appreciation:
- Troubleshooting: Troubleshooting guide — check here first before opening an issue
- Issues & bug reports: GitHub Issues
- Feature requests & general questions: GitHub Issues
- Community: Home Assistant Community Forum
Devices: Z-Wave, Zigbee, Bluetooth, Matter, Wi-Fi sensors, door/window contacts, remotes, smoke detectors, phones, tablets, weather stations
Battery types: AA, AAA, CR2032, CR2025, CR123A, CR2, 9V, 18650, rechargeable
Software: Home Assistant, Home Assistant add-on, Supervisor, Home Assistant OS, Home Assistant Supervised, ingress UI
Features: Battery monitor, battery tracker, battery replacement, low battery alert, battery notification, battery report, email alert, mobile push notification, HA script trigger






