-
Notifications
You must be signed in to change notification settings - Fork 0
The Battery Report
A low battery threshold tells you which cells are low. It cannot tell you which are about to be. This page is the one that can.
It is an HTML page in www/device_sentinel/, one file per day, named battery_report_YYYY-MM-DD.html, and fourteen are kept. Beside them sits battery_report.html, always a copy of the newest write, so a dashboard Webpage card pointed at /local/device_sentinel/battery_report.html always shows the current one.
On the development fleet one morning, a soil sensor sat at 82 percent and a door sensor at 24 percent. The percentages say the soil sensor is in better shape. It is not. The door sensor had a week left and the soil sensor had two months, because one was falling and the other was drifting.
That is the whole argument. A level is a snapshot and a battery is a story, and no threshold you can set will tell the two apart.
The table you came for. Every cell that is measurably losing charge, sorted by how long it has left, which is the order that matters rather than by level or by rate.
Each row carries the level now, how fast it is dropping per day, and how long is left.
How long is left is said in words, not days. "About 2 weeks", not "13 days". That is deliberate and it is not the interface being coy. The projection assumes the last seven days continue, which a dying cell often does not: one cell on the development fleet read twelve days, then seven, then ten, over two days, while its actual level went 12 percent, 22, then 24 as it sagged under load and rebounded. The words say what the arithmetic supports. A number would claim more.
Read it as a ranking, not as a date. What it reliably tells you is which cell to replace first.
The bands widen as they reach further out, because the error does: under a week, about 2 weeks, about a month, about 2 months, about 3 months, about 6 months, under a year, over a year.
Cells at or below your low battery threshold, with the moment each crossed it. The same devices your problem list and daily brief are already telling you about, gathered here so the page holds the whole picture.
A cell can be in both tables. It is counted once in each and means two different things: one has crossed, the other is heading somewhere.
A count and a list of names with their levels, and nothing more.
This is not a filler section. A steady reading is a healthy one, not a stale one. A cell holds its level for most of its life and then falls, so a bank where most cells are steady is a bank in good order. Rates and projections are omitted here on purpose: a cell that has not moved has no rate worth printing, and a lifetime projected from rounding error runs to thousands of days.
Every readable cell in ten-point bands, as a bar chart.
A healthy fleet is lopsided by nature, one tall bar near the top and a thin tail below. What this answers at a glance is whether that shape still holds. A flattening bank, or a growing tail at the left, is a season's worth of cells reaching the end together.
Any device reporting a level above 100 percent.
That is not a very healthy battery. It is a device reporting a raw scale, usually millivolts, through an entity Home Assistant has labelled a percentage. On the development fleet one outdoor light sensor reads 186 every day. Such a device can never cross a low threshold, so it would sit silently in your bank looking like the healthiest thing you own. Naming it is the only useful thing to do with it.
How many watched devices report no battery at all.
Some are mains powered and that is the end of it. Others have a battery entity their integration shipped switched off, which is common, and the Enable Battery button turns those on in bulk. If this number is larger than you expect, press that button.
The falling cells are not confined to this page.
- The problem list carries any cell inside your Days Till Empty horizon, reading "battery empty in about 2 weeks". Tick it off and it stops notifying you while staying on the list, so you can watch it come true.
- The daily brief names the nearest ones and links here.
- The Battery: Falling sensor counts them, with the devices and their time left as attributes, for a dashboard or an automation.
All four read from the same rows, so none of them can tell you a different time for the same cell.
Both live on the Low Battery screen.
- Days Till Empty decides how far ahead a falling cell is called out, from 7 to 30 days, defaulting to 30. It changes the problem list and the brief, never this page: the report lists everything that is falling regardless, because you opened it and want the whole picture.
- Battery Low Threshold decides what counts as low, and so what appears in the second table.
It needs history. A cell that has been installed a week has seven readings, and seven readings of a cell sitting flat at 100 percent tell nobody anything.
The projection becomes worth reading once a cell leaves its plateau, and the plateau is most of a battery's life. The cell that proved this held 32 percent for ten days before it broke. Until a cell does that, expect this page to say it is steady, and expect that to be correct.
Device Sentinel is brought to you by James Lander at The Thinking Home. Read the story behind it: Reliable Home Assistant Dead Sensor Detection.
Repository · Report an Issue · Releases · Blueprints
Licensed under GPL-3.0-or-later. Copyright © 2026 James Lander.
Start Here
Configuration
- The Device Page
- Notifications and Daily Brief
- Exclusions and Muting
- Low Battery
- Signal Strength
- Freeze Detection
- Advanced
The Reports
Automations
Understanding
- How Device Sentinel Learns
- Maintenance Mode
- The Bridge and Broker Sensors
- What Is Recorded About Your House
- Built to Be Efficient
Coordinator Stacks
Help
