Incorrect Zigbee battery level (only decreases)

I have a few Zigbee temperature/humidity sensors (_TZ3000_xr3htd96), but their battery level is funny.
It decreases when battery discharges, but never comes back up when new battery is installed. As if it can only ever decrease, which seems like a bug in HA.

Anyone saw such behavior before?

Yep, same here but I use rechargeable battery so that’s maybe the reason? I am also wondering if resetting the device could make it re-read the battery level?

I use rechargable batteries as well, happens with both regular 1.2V ones and 1.5V lithium batteries as well.
Looks like pressing device button to force-send data helps sometimes, but annoying nevertheless.

Looks like pressing device button to force-send data helps sometimes

what do you mean by that?

There is a recessed button on a sensor that can be pressed with a pin. When you briefly press it once it will immediately send data to the controller.

ok, no luck with that workaround here…

That is normal. You have to understand that the typical discharge curves are very different for lithium and alkaline batteries, and even more so for rechargeable NiMH or Lithium batteries where also the voltage is different, and manufacturers will write the device firmware code for only one type of battery so all battery level values will get out of wack if not using the batteries that the device firmware was specifically written for.

See comparison examples in these references:

Also see related comment here that explain a little about the somewhat related custom device handlers:

I expected rechargeable lithium AAA batteries to behave similar actually since they are 3.7V or whatever internally, which is then converted to 1.5V. But even with fully charged batteries I never see 100% or even 50% battery status with these sensors :person_shrugging:

The best I have is 35% on one of them and it was stuck there for months now.

What exact battery model are those and does the manufactuer provide a dischange curve characteristics? Please understand, in general most commonly available rechargeable Lithium AA batteries and Lithium AAA batteries are usuallyoutpuring around 1.2 volt as standard even though they are meant to replace for 1.5v Alkaline batteries, and the reason for that is the difference in discharge curve characteristics. Regardless, the discharge curve characteristics of any lithium battery are very different from any alkaline battery, and similar goes for NiMH batteries. Anyway, the point is that you can not expect to see correct battery level if using any rechargeable battery or any non-Alkaline unless the manufacturer spevcifically says to do to in the manual for that specific device, as again most firmware developers are simply basing their measurements on standard discharge curve characteristics of a standard off-the-shelf Alkaline battery. So your expectations are sadly wrong. See:

I specifically said that I used batteries that are providing 1.5V instead of typical 1.2V that is typical NiMH batteries. I have Xtar 1200 mWh variant: XTAR AAA Lithium 1200mWh Battery - XTAR
I’m not sure if they have a curve published though.

This all makes sense, except reported battery level doesn’t change even when discharged battery is replaced with a fresh one as reported originally. It can’t be that much off.

Well, according to that chart Lithium battery holds voltage level higher and for longer than Alkaline, yet both fully charged and significantly discharged batteries are reported as 35% battery level by the sensor. So it is not my expectations that are wrong, at least not in this sense, but there is a decent change the sensor itself is just buggy piece is crap, that can’t be excluded.

BTW initially when I just got those sensors, battery level was reported as 100% and was slowly dropping when I used 1.2V NiMH batteries (genuine Panasonic Eneloop Industrial). Now all sensors are showing battery level in 21-25% range regardless of actual battery charge level :person_shrugging:

I doubt it applies if you’ve been testing that long, but I have several devices that don’t immediately report the new battery level, it may be a hour or two (or more?), but not months.

Have you tried re-pairing the device so it goes through a full interview again?

I didn’t want to lose all of the sensor names and stuff, so I didn’t

You do not loose anything in Home Assistant if you only re-pair (i.e. re-joing) a Zigbee device. Re-join does a new full interview. You can also factory reset it. Just do not remove it, instead only re-pair it.

Ah, that I already tried, result was the same :confused:

FWIW, I am having the same problem with my LoraTap remote control. Battery went down to 1%, I replaced the battery several days ago, but it still reports 1% in HA.

I’ve replaced batteries on my ecobee temperature sensors (proprietary) and Aqara mini buttons (Zigbee) in the past and the battery level went back up in HA. So I’m wondering if it’s device-specific. I emailed Loratap support to see if there’s something specific to do when changing battery, but no response yet.

Update: re-pairing the button with ZHA forced it to update the battery level. I did it without deleting the device from HA first, so it didn’t lose any information for the device while doing so.