It seems there’s a bug with the UK Yale Keyless Lock. Using the built-in device handler or the Universal Enhanced handler the lock reports 10% battery from new. (I haven’t seen this change but I’ve only owned it for a couple of months)
I’ve done some debugging and it appears the Yale Keyless is sending “00 80 03 0A” 0A is 10 in Hex. So the lock is incorrectly sending its battery level as 10.
The only time I can get it to send this data is when it’s first paired with the hub. Looking at the device attribute history the battery level hasn’t logged any changes, so it looks like the battery level never gets resent.
I’ve had a play around with the ST Zwave lock handler and a modified version can be found here: https://raw.githubusercontent.com/TmpR/yaleKeylessLock/master/deviceHandler.groovy
If you just want a quick fix, this version sets the battery level to 100% when the “batteries change” event is sent from the lock. So, use this new handler, then go and take the batteries out and put them back in. Battery level will now read 100%.
I have some questions though if anyone can help…
- Bizarrely I can’t find anything in the ST Generic Zwave lock handler that handles this code. Can anyone else see where it’s handled in the code I’ve linked to above? I’ve found all the other event handlers, and several battery status handlers but none of these are the ones that get fired.
Here’s the log for the only time a battery event gets fired:
"zw device: 04, command: 9881, payload: 00 80 03 0A " parsed to [‘name’:‘battery’, ‘unit’:‘%’, ‘value’:10, ‘isStateChange’:true, ‘displayed’:true, ‘linkText’:‘Front Door’, ‘descriptionText’:Front Door battery is 10%]
I can’t even find that string in the code anywhere! I’ve added debug outputs to all the other battery related events and none of those get triggered.
- Does anyone know if the Yale Keyless lock fires the other low/critical battery events that there are handlers for?