Schlage Connect ZWave Locks


Hmmm I don’t see anything in my logs at INFO level. I do see the msg being sent at the DEBUG level, and I see a reply with success, but no actual code is returned…

17-04-30 17:10:17 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 1698278896: Received {'service': 'get_usercode', 'service_data': {'code_slot': 1, 'node_id': 10}, 'type': 'call_service', 'id': 10, 'domain': 'lock'}
17-04-30 17:10:17 DEBUG (MainThread) [homeassistant.components.websocket_api] WS 1698278896: Sending {'result': None, 'type': 'result', 'success': True, 'id': 10}

My OpenZWave version:

OpenZwave Version 1.4.2503 Starting Up

What version are people running?


I’m running the same version of OpenZwave. Tell me - when you try OpenZwave control panel, are you able to set/get the usercodes there?

As I mentioned earlier, I’m using a Kwikset Zwave lock, not a Schlage, but I would think these locks use the same protocol for this.


I removed my lock from the ZWave network, removed it from the door, brought it much closer to the controller, and re-added it. It definitely changed some things. But I’m still not getting any INFO in the log when get/setting a usercode via HA.

Now in the OZWCP, I have more lock options, I see a space to set user codes (I think) they are pre-populated with a bunch of hex numbers. Do I need to put the code in as hex? I tried just a 4 digit code but nothing appeared to happen…

I also see a bunch more things in HA. So i believe it wasn’t fully added before.

I’m running the Hassbian image. I see it was just updated yesterday, I wonder if that could be related…

Mine is an older Schlage lock, but I was using it with Vera for years successfully - able to get/set codes, and notified by code when a code was entered…


I swapped for Kwikset and they work much much better than Schlage. With Schalge it was always very slow to respond and sometimes not at all. With Kwikset it is much much much better.


Sweeping generalizations like that are unhelpful. My Schlage locks are near instant and report status immediately and have been doing so for over 8 months now. When working with something like the z-wave protocol and home assistant in disjointed pieces there are many factors involved which may or may not cause issues with hardware.

Kwikset seems to work better in your situation but may not hold true for everyone.


I realize how many factors are involved. My point is Schlage had constant issues for me that even after significant work invested to get it working I was not able to do so. Also a quick search brings up many others. The issue seems to be with how it refreshes status with the only solution to force polling and refresh and suffer the battery life that comes with that. The other option is to run it via Wink which seems to have some more intelligence built in.

This is what led me to Kwikset as many who had issues with Schlage reported none with Kwikset. I’ve now had 5 functional locks for 7+ months with zero issues; they work perfectly. They are also all on the original batteries at around 70% remaining.

So I stand by what I said. If you want a working lock in HA as of today Kwikset is a better option versus Schlage. It is a set it up and forget it experience. Works out of the box. I still have one Schlage in a non-often used door and it continues to be a pain in the arse,


@jwelter do I understand correctly that you are using Kwikset with HA and it pairs fine? What about adding/deleting user codes and such?


What model Schlage do you have? What version of OpenZWave? What type of HA install?

Trying to find differences, why mine isn’t working…


For those trying to get user codes to work in automations and other functions, here is the code that works for me. I got it working the other day and it has worked flawlessly for my needs so far. I tried the template in Post 12 and it never worked for me. I have a Schlage Camelot by the way.

Template sensor to get user code. When its unlocked or locked via some other method, the value is empty.

  - platform: template
        friendly_name: 'Front Door Code'
        value_template: >
                          {% if is_state_attr("lock.d11_front_door_lock_locked_26_0", "lock_status", "Unlocked with Keypad by user 1") %} 
                          {% elif is_state_attr("lock.d11_front_door_lock_locked_26_0", "lock_status", "Unlocked with Keypad by user 2") %} 
                          {% elif is_state_attr("lock.d11_front_door_lock_locked_26_0", "lock_status", "Locked with Keypad by user 1") %} 
                          {% elif is_state_attr("lock.d11_front_door_lock_locked_26_0", "lock_status", "Locked with Keypad by user 2") %} 
                          {% endif %}

Then just reference that sensor in your automations. For example:

 - alias: Disarm when user code is entered
     - platform: state
       entity_id: sensor.front_door_code
       to: "U1"
     - platform: state
       entity_id: sensor.front_door_code
       to: "U2"
     condition: and
       - condition: state
         entity_id: input_boolean.mode_armed
         state: "on"
       - condition: state
         entity_id: input_boolean.auto_arm_disarm
         state: "on"
     - service: homeassistant.turn_off
       entity_id: input_boolean.mode_armed
     - service: notify.all
         message: "Welcome Home. The alarm is disarmed. Mode is still away."

Schlage Locks - User Codes

Hey, thanks for the post.

Forgive my noob-ness.

First question - this is my first time getting into templates - where, exactly, does your above code snippet go? The “-platform: template” section?

2nd: How do I find out what to use for “lock.d11_front_door_lock_locked_26_0”? I have something called:


That would be it?

unknown type is raising some red flags to me - should it? Mine is an older Schlage, I believe I got it in maybe 2010… Worked fine for years with my Vera…

Thanks for your time and help.


The template goes into your sensors yaml, or configuration.yaml under sensors: if you don’t have a seperate file. The second part is an automation.

As far as the unknown name, does your lock actually work with HASS? Did you do a secure add from the Open Z Wave Control Panel?

Also, I renamed mine from inside the control panel to D11_front_door_lock. I don’t know for sure, but what you have may be the default name.


I’m fairly certain I have that all configged right - I still do not receive any user code entry notifications.

Maybe I’ll have to dig into the z-wave code…


Here is the deadbolt I have:



You have alot of things going on in the thread; what items do you have pending?:

. Do you want to add a code? See who just unlocked the door or provision a lock?
Can you lock and unlock the door from the frontend?


Any zwave locks without the huge panel on the inside of the door? My wife is baulking at that. I know you have to put the batteries somewhere, but even at that, it seems a bit extreme.


@turboc it is a negotiation. Your wife is saying to you that if I have a huge panel on the inside of my door, it has to be worth it to me. If she maybe doesn’t have to carry her keys, or she can lock the door by just clicking on a button, or the door locks automatically when everyone leaves, it might be worth it. You’re not getting rid of the panel, so you have to come up with something :wink:


Haha good question.

To recap: I had this Schlage deadbolt working with a Vera system for years. Trying to get it to work with HA now.

First I believe it hadn’t added correctly. I removed it, brought it with 2m of the rasp pi, and it appears (?) to have been added correctly. I’m not sure it is added correctly at this point. It is defined as Schlage Unknown or something, and in OZWCP, I don’t have much option for it (ie ability to get/set codes) I think I did have this option in OZWCP at some point?

If/when I can get it added correctly, I want to be able to set user codes, and to have events generated when these codes are entered.

I’m thinking I should maybe remove and re-add it again…?

Can anyone confirm that Schlage BE369 is working correctly?



I don’t have that specific lock, but here is the instructions that worked for me for two locks:

Long story short, find the options.xml file and set a network key, and then follow the instructions in the post. It has worked for me for a couple of locks.


Yea, that’s the problem. We come and go through door from the garage to the house. It’s always unlocked, since the garage door is closed. So to her it’s just an eyesore. It’s like the Ring doorbell. To her, what difference does it make, the delivery guy doesn’t stick around to talk, and the only other visitors we get are door to door types and the only ones of those we want to talk to are the Girl Scouts, but only during cookie season. I’m the geek in the house. She figures we got along fine without it for 30 years, why do we need it now. Because it’s available now and it’s cool, just aren’t good arguments.


@turboc after 30 years, your wife might be right :wink: