Has anyone been able to get this to work? I have no problems with notifications when the correct code is entered, but nothing ever fires on an incorrect code. On UI7.
Does your last user variable clear eventually or stay set after a user enters a pin? That might your problem. On my Schlage (different model). I had to clear the last user.
I created a scene that clears last user that is triggered by the lock locking. To do that you add this LUA:
luup.variable_set(“urn:micasaverde-com:serviceId:DoorLock1”, “sl_UserCode”, “”, 56)
But change 56 to your device number.
I recently upgraded to a VeraPlus with UI7. I could never get the “Bad PIN code entered” trigger to work on my VeraLite. I tried your idea to clear the variable sl_UserCode. I confirmed that the variable was null after I locked the lock. But when I entered a bad PIN code, it still did not trigger my scene. The only thing I could find in the logs is this entry:
04/26/17 12:59:16.295 ZWaveNode::HandlePollUpdate_Alarm node 20 device 59 v1type: 21 v1level: 1 source: 0 status: 255 type: 6 event: 1 parms: 0 code: (null) <0x76dcf520>
where device 59 is the Schlage BE469NX.
You have to enter a bad pin code multiple times before it will send a trigger.
(Schage did not want to send an event when you just fat fingered a button)
I tried entering a bad pin code three times, but still no scene was triggered. The only thing I see is the this in the log, and I don’t know how to interpret it:
04/26/17 15:56:09.547 ZWaveNode::HandlePollUpdate_Alarm node 20 device 59 v1type: 161 v1level: 1 source: 0 status: 255 type: 6 event: 16 parms: 0 code: (null) <0x76bc7520>
By the way, the I was looking through the Z-Wave Device Class Specification and it said that the Alarm Command Class was recommended for locks. The explanation for Alarm Command Class is “Command Class to announce alarm condition e.g. wrong code entered or door is open but lock status is closed.” According to the Z-wave alliance web site (http://products.z-wavealliance.org/products/1051/classes) this Schlage BE469 does not support the Alarm Command Class.
Edit: Scratch what I said in the paragraph above. The Alarm Command Class has been superseded by the Notification Command Class, and the Schlage BE469 does support Notification.
Is it working for you?
Despite that statement at Z-wave Alliance, my Schlage BE469 does indeed use the alarm command class. However, I don’t know what it does with bad pin codes. I’ll test later and report back.
If I enter a bad PIN code 4 times, the lock issues an audible alarm (provided you config it that way). It also sends a Notification Report Command shown below.
ZWaveNode::HandlePollUpdate_Alarm node 20 device 59 v1type: 161 v1level: 1 source: 0 status: 255 type: 6 event: 16 parms: 0 code: (null) <0x76983520>
The Application Command Class Spec says that type: 6 means access control, and event: 16 means Keypad temporary disabled.
So the question remains: is there a way to get Vera to trigger a scene based on this notification?
It works for me … but you need to clear a different variable for Door alert.
You need to clear sl_PinFailed not sl_UserCode
I clear both of these on all of my doors 1 minute after any valid or invalid door code is entered on any door.
I watched the value of sl_PinFailed (using a Reactor expression for this purpose), and notice that it does not change regardless of my entering a valid or invalid Door Code. It remains set to “1”.
Are you suggesting that there’s a flaw with that variable, such that we should be resetting it to (null) between events?
NOTE: During the same test(s), I see “urn:micasaverde-com:serviceId:DoorLock1”, “sl_UserCode” indeed changes to match whichever known/good code was last entered.
Because I, too, would love to trigger things (either Scenes or Reactor routines) based on code entries, without relying on Vera’s built-in Devices > Notifications > [Whenever… ] mechanism.
P.S. I’m actually using the BE369 deadbolt set from Schlage, but I believe its specs and operational modes pretty much parallel those of the BE469.
Like shooting a taser gun at the visitor when someone enters a bad code?
I was thinking pepper spray or garden sprinkler, but yeah, along those lines.
(Actually, in all seriousness, I used to trigger an old X10 Siren module with some Lua code, before the module started acting up and sounding in the middle of the night for no reason. Indeed, that scary episode is what got me thinking about modifying my Vera to handle “Lock” events more maturely and rationally.)
I pity the foul who forgot the door pin code at your home…
I live in New Orleans, murder capital of the world, where packages are stolen daily and door handles checked nightly, so… yeah.
Ring doorbells and cameras everywhere. Caught 3 auto burglars the other night in front of my home, lol.
P.S. Sorry we briefly hijacked this thread; will stop now, awaiting answer to question about lock variables, above.
It has been my experience … that the LOCK never clears this on a BAD code … and never Triggers an event unless a DIFFERENT Valid code is entered.
That is why I clear the event … So that a REPEATED (with much delay in between) code (i.e. my code) is entered.
Like I said … my PLEG device that triggers on this event … has an action that 1 minute later … clears the variable.
Thanks for the suggestion. I actually just tried setting sl_PinFailed to 0 (instead of the empty string, which deletes the entire variable from the Schlage device), with:
luup.variable_set("urn:micasaverde-com:serviceId:DoorLock1","sl_PinFailed", 0, 13)
However, during subsequent testing, with good codes or bad ones (thrice in a row, naturally), it just stays set to 0. Similarly, no amount of entering bad codes (3x) changes the standing value of sl_UserCode, so it’s not a useful trigger, either.
So I feel as though I’m back to square one trying to detect when bad codes are entered on the BE369. Not giving up yet!!
If only Schlage provided more documentation about how their locks behave…