Schlage Connect ZWave Locks

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?

any chance somebody figured out how to set user codes via hass without smarthings or vera?

Updated to the last version of HASS 0.37.1 and lost the following sensors :

  • sensor.schlage_be469nxcen_touchscreen_deadbolt_access_control_3_9
  • sensor.schlage_be469nxcen_touchscreen_deadbolt_burglar_3_10
  • sensor.schlage_be469nxcen_touchscreen_deadbolt_power_management_3_11
  • sensor.schlage_be469nxcen_touchscreen_deadbolt_sourcenodeid_3_2
  • sensor.schlage_be469nxcen_touchscreen_deadbolt_system_3_12

I did remove the lock from the Zwave network and include it again but same result ?
Any ideas ?

I also discover that if I open manually it does not update the status on the GUI like it used to

Thanks

Oof. And I was about to update this evening. Thanks for the heads up, Ill backup upgrade and see if I can’t identify an issue.

I did removed and added it back again this time all erros were fixed , don’t know exactly what happened.

This is possible now. The documentation is a little poor, but this feature was added in release 38.

2 Likes

O.M.G.!!! Do you know how happy this makes me? If this truly works, I can finally, completely, dump the Vera controller which, at this point, is only holding my three Z-Wave locks so I can manage user codes.

It definitely works. I’ve been using it for a couple weeks on my Kwikset lock. I also created automation rules to disarm my alarm when user code 2 unlocks my front door.
For the Kwikset model, the clear code function does not work, though.

Are you able to set any codes? Can you do anything when a particular code is used to unlock the door? Like automations and such?

I will try this on a day off with my Schlage locks and see how it goes.