Hi,
I have some Xiaomi zigbee temp/humidity sensors reporting 0% battery for months…same with zwave door/window contact sensors…
so, my useless report that I get weekly looks like this for months:
Low battery sensors:
BedroomBattery is 0%
KidsBattery is 0%
LivingBattery is 0%
Balcony2DoorBattery is 0%
aqara sensors are 2032 batteries, door tamper is CR2
I checked the voltage of those 0% 2032, its between 2.7 and 2.9
Now, the problem I have is I will soon be away for a month of summer vacation and I would very much need to have temp/humidity indoor data, so my rules can fire up the HVAC to dehumidify.
If I lose those 3 aqara sensors, I’m screwed.
So most probably I will pollute the planet with 3 batteries that are still working, just for the piece of mind. If I was staying home, I would run them until the sensors stop reporting…
sorry for the rant, I am not really looking for answers
Don’t know about Zigbee, but zwave should update the battery when the device wakes up. I’m assuming there is a battery channel for the device and it is linked to an item. Could try to manually wake the device and see if communication is working as a test.
Pardon my question, but how do you know, if it is always zero? Also for zwave, (Again don’t know about zigbee) normal frequency for wakeup is typically hours (mine is 24 hrs on my door sensors) to save battery life
i use zigbee 2 mqtt, so it sends data from the sensor every 10-15-30 minutes. i guess if there is no change then it sends only every 30min, if there is, then it can be 5min.
I dont understand your question, if I am getting regular updates of battery being 0%, how can I know what?
To me 2.7 V is really low, I would change those right away. Did you install new batteries and see if the sensors start reporting anything other than zero?
Getting reliable battery readings from the lithium cells in these sensors seems to be problematic. Zooz sensors are quite unreliable for me. They’ll report 0% and continue to work for months. Sometimes that doesn’t matter but in other cases I want to be sure they will work. I hate tossing batteries earlier than I need to. My current solution has been to slowly swap out with slightly larger sensors that use alkaline batteries. They have been giving reasonable battery life while also having better reporting. Not sure this is a great idea or not - time will tell.
I only posted to address the zwave door sensor and try to understand your configurations. With Zwave the sensor data from the battery device does not require the device be awake, whereas the battery reading only comes with a wakeup. Waking every 30 minutes has no value IMO. With the OH Zwave, I have an “update time stamp” on the battery channel and have a page with the value and the time.
In any case I agree with @jswim788 that the battery percents are unreliable (although 0% seems extreme). As I occupy the house, I just wait until they stop sending a battery update (quick review of the battery graphs) before replacing the battery.
“Battery level” is often just a threshold based on voltage. And yes, this is mostly useless.
A 3V battery is expected to have a voltage range of 2700-3300mV, so when a battery level is 100% that often just means “voltage is at least 3300mV”. When the voltage drops to between 3200-3300mV, the level might change to 80%, and on and on until it reports 0%.
The thing is, voltage doesn’t decrease linearly as a battery depletes. The decrease is fast when the battery is full, then slows down. That’s why battery levels appear to drop very quickly from 100% to 70-80%, then slower over the rest of the battery’s actual lifespan.
Really, this makes percentage the worst representation of battery life, because you can’t use it to predict how long it’ll be before you have to change the battery. It’s just easy for the average consumer to grasp.
At the bottom end, manufacturers set conservative thresholds for 0% battery level, because they want users to see it long before the battery actually dies…and most people don’t check battery levels very frequently. So they’ll use something like 2900V, even though the device will happily continue working until 2.7V.
Really, it would make more sense if they set 10% as the bottom end of the range with the understanding that you’ll never see 0%…because the battery is dead.
Why you are not using other sensors, like Shelly HT oder Shelly plus HT Gen3.
They run with batterys, but have also a USB Power connection.
In case of powered, they wake up ever 10 min and report their values.
There is a OH binding ready for use since serveral years which work.
I have serval of them in use, since years and control the battery with a rule an graph.
If less than 20% I get a WhatsApp and a mail to change the battery, or in case of Button1 to recharge, thats it.
I assume that MQTT could also work here…
I’m using zigbee2mqtt 1.32.2, and yes WSDCGQ11LM. I’m using them for years and haven’t experienced this behaviour before…maybe its time for an upgrade of z2mqtt…
one of them is reporting 2.7V, one is 2.8V and one is 2.9V. all report level 0%. one is in the fridge, reports 71% and 2.95V but that one was swapped recently.
I’m using several Zwave battery devices and see the same behaviour. Because of this I created a rule, which once a day checks the Zwave last WakeUp. If its to long, I get a notification.
var logger = log('Zwave Last Wakeup');
var ThingRegistry = osgi.getService('org.openhab.core.thing.ThingRegistry');
function ThingCheck(item) {
if (item.getProperties()['zwave_lastwakeup'] != null && time.toZDT(item.getProperties()['zwave_lastwakeup']).isBefore(time.toZDT('PT-37H')) && item.getStatus().toString() != "UNINITIALIZED") {
logger.info(item.getLabel() + " LastWakeUp " + item.getProperties()['zwave_lastwakeup'])
actions.NotificationAction.sendNotification("levin.harte@bluewin.ch", "Gerät " + item.getLabel() + " hat sich seit " + item.getProperties()['zwave_lastwakeup'] + " nicht gemeldet, Batterie prüfen");
}
}
ThingRegistry.getAll().forEach(ThingCheck)