Battery reporting 200%

Replaced the CR2032 battery on a contact sensor after it failed to report for a few days, and it now shows 200% battery. The battery reads at 3.25V on my voltmeter, a bit on the high side, but not 100% higher.

Could someone on staff kindly check and or adjust the battery percent calculation for the Generic Zigbee Contact Sensor (no temp). Adding the actual volts reported by the device as part of the Events Description Message would be ideal.

Hub: C-4 2.3.3.140
Using system driver "Generic Zigbee Contact Sensor (no temp)"
Device: Linkind Model ZB-DoorSensor-D0003

2 Likes

Can you post the data section of the driver details?

I'd buy more of those batteries. :laughing:

6 Likes

Just as cool as the amp I have w/volume that can go to 11. :wink:

4 Likes

https://www.amazon.com/s?k=licb+cr2032+3v+lithium+battery+10-pack&crid=DJL94MFUEVQ2&sprefix=licb+%2Caps%2C94&ref=nb_sb_ss_ts-doa-p_2_5

I have the same issue with Linkind Leak Sensors. I have 4 of them installed. I initially used the Generic Zigbee Moisture Sensor (no temp). I then used the same but without the "(no temp)". One of them then showed the correct battery level. I looked at the device page for differences, The only thing I saw different was the 1 that was working correctly wasn't in use by Amazon Echo Skill. I removed all 4 from the Amazon Echo Skill and 3 of the 4 are now showing the correct battery level. Maybe just a coincidence - I can't figure it out.

Zigbee devices generally report battery values as tenths of volts. That number is converted by the driver routine from volts to a calulated percentage.

I suspect these two drivers and perhaps many others report something over 3.1 or 3.2 volts as 200%, and your batteries voltage diminshed below this threshold with the passage of time.

BTW I have three Linkind Leak Sensors installed for just over a year, all with original batteries, two at 100%, one at 75%. They work well and saved me two times times yesterday:

  1. The sump pump died
  2. Problem with washing machine drain

It was a good day for the plumber.

1 Like

Try running configure on the device, if that doesn't work factory reset then re join it.

This also presumes that you are on the latest 2.3.3 build where this issue was resolved within the driver.

Did a configure and refresh on the 200% device. However, I'm waiting for it to report battery voltage before doing a factory reset and rejoin. Currently on build 2.3.3.140.

If it's not too much trouble kindly run 3.2 and or 3.3 volts through the Generic Zigbee Contact (no temp)'s battery % calculation and post the result.

1 Like

Anything over 2.9 volts is 100%
The issue with the previous data is that the device was reporting battery percentage vs voltage.
Once config is run successfully it will report voltage.

Factory reset the LK contact sensor by sticking a pin into the reset hole, then re-paired the device, and lo and behold it now reads 100%. I suspect this device does not normally listen for commands.

One caveat: the battery now reads 3.12 volts on my voltmeter.

Not sure why a configure was needed to change the battery % reporting, but I'm done with this. Hopefully it will not reoccur in the future.

OOPS I spoke too soon, back to 200%
Update: The 200% number was generated after re-paring by removing then reinstalling the battery when I did the voltmeter test.

Stupid device seems to ignore the configuration commands.
Ill see what can be done.

2 Likes

Like I said, I changed the driver from Generic Zigbee Moisture Sensor (no temp) to the Generic Zigbee Moisture Sensor and Saved Device, Config, Save Preferences. Prior to that, I removed the sensor from Amazon Echo Skill within hubitat. After an hour or so, I checked and all 4 are reading 100% and the one Smartthings moisture sensor is reading 87%. Don't know why it worked, but it did.

Bottom row of my batteries dashboard:

I was confused when I read these statements. I thought Zigbee reported battery only in volts. After a bit of research I learned (some/all?) Zigbee battery powered devices can report battery as a percentage in cluster 21. The number is between 0-200, divide by 2 then round up to get the actual percentage. So that cluster 21 report of 200% is actually 100% and is apparently not properly processed by some or all of the zigbee generic drivers.

I also learned it's possible to configure the Zigbee device to select which if any types of battery reporting, volts or percentage, are sent. Based on @mike.maxwell 's comments it appears the Linkind devices are not responding to (or not receiving) the configuraration commands as expected.

Since the HE drivers are proprietary, it's possible that:

  1. Some drivers properly handle Zigbee cluster 21 reports
  2. The zigbee configuration commands were accepted by the device

I trust Mike Maxwell will figure this out and get it corrected.

The Linkind leak sensor supports both battery voltage and percentage reporting.

From my notes on the driver used on SmartThings Edge:

-- Battery updates:
--   The device allows for setting a report frequency for both battery voltage and battery percentage.  By default
--   the reporting is disabled (no unsolicited battery reports).

As @arnb said, Zigbee battery percentage reporting returns units of 0.5%, and I've never seen the device report a value higher than 200. I'm not sure why Hubitat would ever process this into a range outside of 0-100% (value / 2). It pops up every so often though.

2 Likes

Several devices natively produce percentage values of of 0 to 100 not 0 to 200

3 Likes

Odd, Do you remember one off the top of your head?

I can think of a couple of ways to handle this

  1. Add a list of devices that do not conform and adjust the logic not to divide by 2. However this truly breaks the idea of the driver being "Generic" and may be a perpetual maintenance issue.

  2. Add a user defined setting stating" This device sends non standard 0-100 zigbee battery percentages", and be done with it.

Download the Hubitat app