Battery management strategies, plans, hints

Now that I have all of these battery powered Zigbee sensors and devices scattered around the house and yard I have learned to check the battery before I blame Hubitat, driver updates, the device, etc.

I also have a drawer(s) with assorted batteries apparently having random life expectancies depending on price, manufacturer, age, etc.

Does anyone have any suggestions for tracking and managing batteries in their smart home devices?

I don't know if it's the best strategy, but what I do is when one battery goes dead, I replace every battery for that model of device. This way I don't end up in a situation where I'm replacing some random battery every week.

1 Like

I guess I'm too frugal or lazy for that.

Plus, it has been my experience that when I buy 5 or 10 or 20 bargain-priced batteries from Amazon that the battery life is fairly random. Some read 40% on install and die soon and some read 100% and seem to last quite a while.

Plus, plus, it is my understanding that battery life can vary with use as in a motion detector.

Has that been working for you?



Is anyone using this?

I use the Battery Level Monitor in HSM. Works great.

I have about 20 battery devices, button, lock, leak sensor, alarm sensors, etc.

I have a spreadsheet I use to track the change date of the battery per device and it also lists the battery date and links to the master inventory of my batteries that are in storage and the date's brands that I purchased. This method has worked well since it identified a bad batch of Amazon's basic batteries CR123A which Amazon replaced for free. After a couple of years and battery replacement cycles I end of up with an estimate of how long before the next change. This assumes the devices will last for years.

I tried to do the same at my mom's house but she is a battery replacement fanatic. She also has buttons, sensors, etc but she doesn't know how to replace those batteries but she does burn through AA and AAA's. So what I did for her is write the current date on the battery replacement using a sharpie. I told her when she replaces batteries to put the old ones in a container. When I visit her every few weeks I pull the old batteries out which were labeled, test them, and most of the time they can go back into the service queue :slight_smile: I then open up devices and label the ones she replaced.

1 Like

I have a Dashboards page "Batteries" on which I put all the batteries. it gives a quick visual look at the levels.

I wish there were a way to auto-populate Dashboard pages (i.e., a "include all devices of type X") item. That would make it even simpler. E.g.,

1 Like

I have about 40 battery powered zigbee devices and find that battery life is a crapshoot. I have some devices (mostly older SmartThings motion & multi sensor) that get at least a year or more on one set of batteries. Still others such as the latest generation SmartThings motion sensors that have battery life ranging from three months down to two weeks. I've tried different brands of batteries, moved devices closer to repeaters, installed more repeaters, blah, blah, blah. Long story short, I can't trust battery level reports. Some stay at 100% for months, then drop to 87% and the batteries are dead. Others rapidly report battery drain falling to 0% and continue to operate normally for months on a supposed dead battery. The only thing that works for me is using the app "Device Watchdog" and report on the lack of activity.

Now I know how these home automation business make their money, they're all heavily invested in battery manufacturing :rofl:

1 Like

Likely more complicated than you want, but I have NodeRed doing various automations such as downloading the automated hub backups, logging events to InfluxDB, etc. One thing I also do is log my devices, events, logs to a MariaDB on my Qnap NAS (NodeRed is also running on the NAS via docker) and I posted a community thread on this topic. As updates come in from a device, I update a time stamp on the device so I can keep track of last updated. I also have a trigger to update a duration of how long the battery has been in place. Then I have a flow that queries this table a few times a day and it sends me a list of devices via pushover that haven’t updated in X hours. But out of this I can see battery durations by device to know if one needs replacing or not. For example my water sensor batteries last over a year and will report 0% for months, while the Iris v2 contact sensors usually die at 15%. Without this data I wouldn’t realize these trends.

Like you I hate replacing batteries. In fact I converted several sensors to USB power, again another article I posted here too.


Yep I bought 6 devices across 3 brands and set them up within a week. Here is the current battery status.

Now battery status is related to how often they report. I tried getting hourly but sometimes the configuration seems to be lost. Computer Room 1 got there because it suddenly had a burst of reporting every minute or so until I reset it.


As per @ronv42 's suggestion and having experience with battery operated wireless alarm systems, I find it helpful (where possible) to use a sharpie and write the date on the new battery. Then you have an idea of when it was last changed. And again, follow this up with a spreadsheet recording the dates. It makes it much easier to keep a track.

1 Like

I installed the Battery Monitor app.
It seems to be working great.
I have 50 devices with batteries.

I guess it creeps up on you.

So how do you track historical battery usage within Hubitat? This would eventually provide data on long the device batteries last on average and facilitate proactivie battery maintenance so a battery does not die when you are out of town, etc.

Please let me know if I misunderstand any of the following:

  1. The Battery Monitor app will let you see the current battery status each device is reporting. There is no info on historical battery changes.
  2. The Custom Note app will also let you track custom fields you set up for devices, so you could set up a battery change Note. There is no data on historical changes unless you choose to name the fields something like Battery Change 1, Battery Change 2, etc... There is no way within Hubitat to visualize this data