New Schlage vs Old

I have a Schlage Connect FE469NX Zwave enabled deadbolt. It’s always been problematic to get it to enroll to the Aeotec Gen 5 stick. I’ve seen others with the same concern. I’m thinking about upgrading to the newer BE469ZP, but before I drop a couple hundred on it, I want to know if others with it have had better success enrolling it. Also, any thoughts on whether the Aeotec Gen5+ or 7 would be a better option with the current lock? Thanks!

I can’t answer about the deadbolt but I can say that the series 7 controllers do not work with openHAB’s Zwave binding.

Does this mean that it still isn’t enrolled? I struggled at first with my BE469 (not a ZP) with a Zooz controller, but once it was in, it was in. I haven’t had to change it.

I think I had to be within three feet of the lock for the secure inclusion, which I accomplished by temporarily running my Raspberry Pi off of a power bank.

I can’t speak directly to the ZP, but if you search I think others have gotten it to work. If I recall correctly, the one functional advantage (beyond Z-Wave Plus) is that there’s a dedicated door lock channel in the ZP. In my older BE469, I have to read the raw output to determine the current state of the lock.

That feature is what is most appealing. I want to set a rule to turn on a number of lights when the door is unlocked.

Does your FE469 have the alarm_raw channel? If so, this rule might work. You’d have to confirm that it uses the same event codes.

If it doesn’t send any states, then I’d agree that the upgrade is worthwhile.

The information is still there to create such a rule. You just have to parse out the state from the raw. It’s a pretty simple message if it’s anything like the Kwickset 914. An example message looks like this:

{"type":"22","value":"0"}

At least for the 914 there is a nice table telling you what it means:

The following table provides a reference of the Alarm_Number related messages.

Alarm Type    Alarm Level            Notification Event  

021              001                      Lock Secured using Keyed cylinder or inside thumb-turn  

022              001                      Lock Un-Secured using Keyed cylinder or inside thumb-turn  

026              001                      Lock Auto Secured – Bolt Jammed (Not fully extended)

027              001                      Lock Auto Secured – Successful (Fully extended)  

017              001                      Lock Secured at Keypad – Bolt Jammed (Not fully extended)   

018              000 or User-ID#*   Lock Secured at Keypad – Successful (Fully extended)   

019              User-ID#*              Lock Un-Secured by User (User-ID) at Keypad  

023              001                      Lock Secured by Controller – Bolt Jammed (Not fully extended)   

024              001                      Lock Secured by Controller – Successful (Fully extended)   

025              001                      Lock Un-Secured by Controller – Successful (Fully retracted)  

112              User-ID#*              New User Code (User-ID#) added to the lock  

032              001                      All User Codes deleted from lock   

161              001                      Failed User Code attempt at Keypad  

162              User-ID#*             Attempted access by user (User-ID#) outside of scheduled   

167              001                      Low battery level   

168              001                      Critical battery level   

169              001                      Battery level too low to operate lock  

* User-ID# values: 001 to 030

So that message means the deadbolt was unlocked manually either via a key or the knob on the inside.

When a action that requires entering a code occurs the value has the number of the code that was entered.

Something like the rule @rpwong links to with mappings to “users” in JS would be something like this (Note, I’m just typing this in right now, it probably has errors):

var codes = {"0": "NA",
             "1": "Joe",
             "2": "Ann"
             "3": "Dog Walker"};
var msg = JSON.parse(event.itemState.toString());


switch(msg.type) {
  case "21":
  case "27":
  case "18":
  case "24":
    // lock secured
    break;
  case "22":
    // unlocked manually
    break;
...
  case "19":
    console.info(codes[msg.value] + ' unlocked the door!');
    // unlocked with code
    break;
}

Of course you only need case statements for those alarms you care about.

This is very helpful if I can get this thing enrolled. What you mentioned about the code entry trigger is most important, as it works when someone enters the house rather than leaves it. Perfect for this application!