Schlage Connect ZWave Locks

Quick question - if I want to use one of these locks - http://www.schlage.com/en/home/products/BE469NXCAMFFF.html - I don’t have to have a WINK or anything along those lines do I. I can’t quite tell and wanted to ask before buying one. I’m looking to pair it with HASS using a Zwave dongle/raspberry pi that I have going.

Thanks!

2 Likes

You don’t have to have a Wink hub, but it does make it easier. I had my lock up and working pretty quickly but I’ve seen a number of posts here of people having trials doing it with ZWave. That said, once they get it set up with ZWave, they get more attributes to track than I do.

If you do a quick search of the forums, you’ll find some answers on how to do this. If you can’t find them let me know and I’ll post some links.

1 Like

@rpitera - thanks for the heads up - based on my dealings with openzwave control panel - I think I can tackle it (had a nasty run in with the minimote - but I won!) - so I’ll take a stab without the wink I think. Appreciate the info - I had done some digging, but just wanted to confirm. Thanks!!!

This link to a reddit post should help you out a lot.

2 Likes

Thanks for the link - I’ll take a read asap!

That was my post. Jesus christ it was maddening to get it set up only because there isnt great instructions. Once I knew what to do, it was super simple.

1 Like

That’s why I never unpaired them from Wink. It’s just me in the house so I don’t need the extra attributes like which code unlocked the door or anything so I stayed with what was working.

I was following your post and was glad to see you got it working finally!

speaking of that…how do you get those extra features? I would love to be able to 1. see which codes unlocked it and 2. program codes from HASS. Are either of those possible?

I think you have to look at the attributes in the dev states panel and then work out a template sensor to display them. Since I don’t have any of them on ZWave I can’t tell you more than that. But as an example, this is how I used to get the battery level attribute from one of my device trackers:

droid_battery:
       value_template: '{{ states.device_tracker.rpitera_rpitera.attributes.battery }}'

Have you found an answer to this? I’d be really nice to see which codes unlocked a door. I am also having trouble finding the mappings for alarm types…etc Wish schlage would put out some sort of documentation on their zwave implementation as they are marketing it as a lock which can be controlled via zwave.

@halpplz - I sat down and took a stab at this lat night - no luck at all. I’m looking for some help with this thing. I can see it added under ozwcp - but I can’t get it to lock or unlock under ozwcp at all. I keep getting something about ERROR: Dropping command, - what’s so annoying is I get the lock to show up in terms of seeing 2 sensors at the top of HASS - Alarm Level and Alarm Type - and I now see a Lock Group on the frontpage of HASS and it says Schlage BE469NXCEN touchscreen Deadbolt Locked and a toggle.

Like I said, I can’t get OZWCP or HASS to lock or unlock the lock.

  1. Does the key need to be there under the options.xml file - see here for what I’m asking - See Network Key Section In This Link?
    (I have done this by the way…but my options.xml file is not in the path they talk about - it’s in the path specified in my configuration.yaml for zwave)

  2. I reset the lock last night - tried adding and re-adding several times. Lik eI said - no luck - but if I do it severla times, I get multiple sensors in HASS - ugh. How do you remove zwave devices from HASS (I tried the developer tools - remove_node) - but the little yellow light on the lock on the door would just stay on sometimes. Do you delete the zwcfg_xxx.xml file or something like that?

  3. Do I hit add_node_secure in HASS under dev options and then do the programming on the lock or is it the other way around? Like I said - I could see the device in OZWCP but it didn’t seem to want to lock or unlock.

  4. How do you lock/unlock the device to test in OZCWP?

I think that’s it for now - thanks for any help!!

Ok. To start with, let me get my info up responding to my own post questions… and then when I get home tonight I will edit my post to see if we cant get Vexter running.

I was able to get my hands on the z-wave documentation for YALE locks.

http://www.pepper1.net/zwavedb/uploads/resources/513c90984733a978c86885d00c0a99ef40dd8b72.pdf

Fortunately they use the same COMMAND_CLASS_ALARM scheme as Schlage, so I have working lock/unlock detection for user codes, inside thumb knob, and outside Schlage button. I wrote a quick template below for proof of concept.

Hope this helps…

#security
  - platform: template
    sensors:
      front_lock_last_action:
        friendly_name: 'Last Action'
        value_template: > 
                          {% if 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_level_5_1', '1') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_5_9', '6') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_type_5_0', '19') %} 
                                  Unlocked: User Code 1
                          {% endif %}

                          {% if 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_level_5_1', '2') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_5_9', '6') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_type_5_0', '19') %} 
                                  Unlocked: User Code 2
                          {% endif %}
        
                          {% if 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_level_5_1', '1') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_5_9', '2') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_type_5_0', '22') %} 
                                  Unlocked: Inside Deadbolt
                          {% endif %}

                          {% if 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_level_5_1', '1') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_5_9', '1') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_type_5_0', '21') %} 
                                  Locked: Inside Deadbolt
                          {% endif %}

                          {% if 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_level_5_1', '0') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_5_9', '5') 
                          and 
                            is_state('sensor.schlage_be469nxcen_touchscreen_deadbolt_alarm_type_5_0', '18') %} 
                                  Locked: Outside Keypad
                          {% endif %}
5 Likes

@mkzimms - Thanks for he template and response - I’ll be watching for your post!

@vexter0944

It kind of sounds like your issues are with the the lock not being added as a secure node so most of its command_classes are not available on the zwave network.

As a baseline, I am using the All-In-One installer. Here are my steps. I’m going to be verbose and note everything just incase, although you probobly know most of it since you’re already mostly running… some people may not.

Step 1

To start off with, make sure the network keys are set. I ran a grep on the filesystem looking for NetworkKey and set it the same in both options.xml files. I think it only needs to be in the first one, but I set both anyway for good luck.

sudo grep -ir 'name="networkkey"' /

It returned these two paths

/srv/hass/src/python-openzwave/openzwave/config/options.xml

/srv/hass/hass_venv/lib/python3.4/site-packages/libopenzwave-0.3.1-py3.4-linux-armv7l.egg/config/options.xml

Step 2

Shutdown HASS and open up the open zwave control panel at http://your_pi_ip:8888

sudo systemctl stop home-assistant.service
cd /srv/hass/src/open-zwave-control-panel/
sudo ./ozwcp -p 8888

Step 3

Enter in the path to the zwave stick and hit initialize. Probobly at /dev/ttyACM0. You can find its path by unplugging and replugging it in then running dmesg on the command line.

Step 4

Use OZWCP to remove the Schlage node if you already tried to attach it by calling node remove and then running through the pair routine on the lock.

Enter the programming code
Hit 0 on the keypad and wait until you get a green checkmark.

Step 5

Reboot the pi.

Step 6

Factory reset the lock.

Disconnect the battery.
Hold the outside Schlage button and reconnect the batteries.
Release the Schlage button.

Step 7

Go back into the OZWCP again (same as step 2) and reinitialize.

Step 8

Call add secure node and then roll over to your lock and initialize pairing.

Enter the programming code
Hit 0 on the keypad and wait until you get a green checkmark.

It can take a few seconds, I believe mine took about 15 seconds.

Step 9

Once paired, close out OZWCP and restart homeassistant

sudo systemctl start home-assistant.service

You should now see a whole shit ton of badges at the top of the home assistant window and it should have created a new card called locks with the lock name and a on/off slider. Hang out for a few minutes, your network may need to heal.

Now try to lock/unlock again.

10 Likes

@mkzimms - thanks for the EXTREMELY detailed post - I’ve got a lot going on today - but I may take a swing at it this evening/tomorrow as soon as I get a chance, Thanks for taking the time to post all of that. I can confirm my keys were set in both options.xml - and I tried add secure node - but I may not have waited long enough. Will report back as soon as I can. Thanks again!!

@mkzimms - Perfect! Worked like a charm! Thanks again for the DETAILED post - that nailed it! Worked EXACTLY as you described! Thanks again for the help!

Awesome, glad I could help!

1 Like

I’ve been using both HA and Smatthings in tandem for a while now. I’d love to be completely on HA but I find that some of their community-created smartapps and device handlers are exceptional. One of those instances where they have an amazing solution is Schlage Connect. I paid $20 or $25 for the code to get the additional features and functionality that came with this app. How difficult is it to use some of the same code within my HA environment and is that breaking some type of protocol for acceptable use?

@jthacker48 the same using an unlicensed copy of Microsoft Office.

I’d be nice to be able to set the user codes remotely. I have not figured that out yet, anyone have some insight?