(Enhanced) Z-Wave Schlage Touchscreen Lock

This is great, thanks for your work @garyd9! One thing I’ve encountered is that, previously, I could manually unlock the Schlage Lock, then press the “Schlage” button on the touchscreen and it would automatically lock again. Now I have to input my key code for it to lock behind me (if I don’t want to pull out my phone or wait until my presence has left the geofence). Any help would be appreciated

This is the Lock & Leave option, toggle it and you should be all set

1 Like

Re: RBoy’s Solution

I know this is an old thread/conversation but I just saw this.

Then I first purchased my smart-lock I was looking in the community for a solution to change codes. Really all I wanted was a simple app that pushes and lets me delete codes from my phone.

I saw RBoy’s post about it and saw that it was behind a paywall. I’m kind of a paranoid person and since it was behind a paywall, I feel that it is more difficult for others to provide peer review and as such, ensure that the app developer is not trying to pull off anything nefarious. Not saying RBoy is doing that AT ALL, but it is my personal policy to keep security in mind.

RBoy’s app being behind a paywall, instead of paying the reasonable fee, it inspired me to work on my own solution instead. I am a software dev after all. That’s how my app was born. I wanted it to be open source so that others could complain about it, improve it, and also call me out if I try anything silly. ( I wouldn’t :wink: )

While I have nothing against the practices of a paywall myself for most things… It makes a lot of sense! I am certain that trust in RBoy’s code is not misplaced, it’s just not something I wanted to do myself. At least when I was looking for a solution with limited knowledge of what the platform could do.

To RBoy’s credit, SmartThings has created an App market for their own profit. It is A LITTLE for us, but in the end, it saves them countless hours of dev time. Just let the community create the apps as people want. RBoy (probably) makes solid apps that deserve compensation.

My app was supposed to be stupid simple… but then you guys messed it all up and asked for features. Argh.

OpenSource FTW.


I will say with confidence that RBoy well deserves the monetary compensation and have found use from far more than just the Schlage lock, which was my initial reason for paying for access.

He is a very good developer and provides support and enhancements regularly. I’m happy to have contributed :smile:

That said, being behind a paywall does have one downside… no GitHub integration as far as I am aware of, which makes updating a manual process. A small price to pay, in both senses of the term, for access to great custom code from a great developer.

I also have no problem throwing a couple of bucks to others that have a donate option, such as the wonderful Nest Manager code on here. The community is why SmartThings is still my favorite platform even with it’s well known issues here and there (see mobile app updates :wink: and font rendering within).


I like contributing to developers for their work, but don’t typically get into paywalls as I like to pick and choose from a range available options, change things up over time, and don’t want to feel like I “should” use everything from one source because I paid a higher price for access to that one site.

I do end up paying more in the end, but I enjoy “spreading the wealth” across the gamut from casual hobbyists to more “serious” developers. If Rboy had an option to purchase individual apps/DTH’s I’d likely take advantage of that as well. Not his/their business model, which is fine of course, different strokes for different folks.

I just love that this community is as active and creative as it is - without the creative talents we have here the SmartThings platform would be much less interesting/useful. Samsung should always be showing big love to the devs that hang out here. :smiley:


I wasn’t saying anything against RBoy. It’s just not for me. Seeing posts by them on the ST forum they seem very helpful and a good source for apps. That’s not how I wish to use SmartThings personally. The paywall and lack of another option is the reason I made my lock app.

I’d give credit to RBoy for committing to writing good software if I used it… That being said, the community that SmartThings has created here is opposite the idea of a paywall. There’s no way around it. SmartThings made a kind of open community as a strategic move to be able to offer more solutions to people and thus profit. RBoy makes a profit in a “OpenSource” community designed to make a profit for SmartThings. It’s not bad, and I can’t fault the logic or ethics. It’s just not how I wanted to use SmartThings.



I’m using this code. I am getting a Lock jammed notification but nothing is jammed. I have checked it many times. When I switch it back to the original z-wave Lock device I still get the same message. I may be crazy but I don’t remember it there before. Any thoughts? Thank you.

maybe try to reset and start from 0
first, do a proper device exclusion and discover it again

also check if deadbolt goes all the way out
had to do on mine, and have learned the hard way :slight_smile:
hope it helps!

I have not tried a reset. I have confirmed the Lock is extending all the way. The functionality of the Lock is great. It is just the notification. Although today the notification has seemed to clear itself. :confused:

Thanks @garyd9 and @Toasty for putting a lot of this together. I started using Toasty’s V2 of this because I like the new layout.

While debugging some of the code, I noticed that I could add a bit of improvement (and a quick fix) on the Alarm Sensitivity part. You used a slider (which I like) to set the sensitivity, and as you mention in the code, the standard slider has a range from 0-99. However, the slider definition allows us to specify the range during the setup of the tile. On line 144 I changed it to:

controlTile("alarmSensitivity", "device.alarmSensitivity", "slider", height: 2, width: 2, inactiveLabel: false, range:"(1..5)")

This allows the slider to only go from 1 to 5. Next, I had to fix a few other pieces so that your code would not use the scaling you put in place. I think it simplifies setting this value.

Also, during debugging, I noticed your switch statement in the setAlarmSensitivity block did not have the correct values and as a result, the command to set the new sensitivity was not firing for me. The switch statement was on line 1345.

I’ve posted my adjustments below:

1 Like

Wanted to clarify something about the sensitivity slider that isn’t completely intuitive (at least not to me. :slight_smile: )

The Schlage lock manual shows a sensitivity setting graph that shows settings from 1-5 from left-to-right. 1 (the left-most value) is the most sensitive, and 5 on the right is the least. That’s unusual, as normally you’d use the larger number 5 as the most sensitive setting and 1 as the least.

Because of that, I’m not sure if the slider in the DTH follows that same odd standard, i.e., is the left-most position the most sensitive setting (1), and the right-most position the least sensitive setting (5)?

I ask because sliders (imagine a volume slider or video scrubber) typically increase what they manage as you move the slider to the right, and decrease when moved left.

Appreciate it if you can clarify.

EDIT: Oh, also just noticed that though there is a label in the code for the Sensitivity setting, it’s not showing up on-screen.

controlTile("alarmSensitivity", "device.alarmSensitivity", "slider", height: 2, width: 2, inactiveLabel: false, range:"(1..5)") { state "alarmSensitivity", label:'Sensitivity', action:"setAlarmSensitivity", backgroundColor:"#ff0000"

1 Like

Oh, and I made this small change - seeing “Unlocked” in red is much easier to see/find when scrolling through the UI, and feels like the right color for that alert to me.

Look at me, I’m a software engineer! :wink:


What line of code did you change the color of “unlocked”? I would like to do the same. Thanks!

Only phone right now, but I can tell you that the red Color code is #ff0000.

Search for “unlocked” as a text label in the code, replace the existing color code with above.

S/B around row 100 - 115:


Checking in on this… anybody find antique brass yet!? Wife acceptance factor is too low unless I can find matchy matchy

I check about once per month, and I haven’t found any in antique brass.

Hi @garyd9. I submitted a pull request to add some functionality. Unless I am mistaken, there is no way to change the alarm mode to a specific value by sending a custom command via CoRE. As it stands now, calling setAlarmMode() will only cycle the different alarm modes. So I expanded the functionality of setAlarmMode() to allow passing a string value that sets the alarm mode to a specific setting. Please consider merging (or editing if you think it can be done in a better way). Thanks!

Unfortunately, garyd9 has not been an active member for some time. You could possibly start a new fork.

As I commented on the pull request:

I’m no longer supporting or maintaining anything related to smartthings. I haven’t done so for over a year now due to ST breaking several promises made to developers and customers.

1 Like

Thanks Gary. I understand the situation and appreciate writing back to us here in the community.

That brings up the question for people using Schlage with (the new) Lock Manager - is Gary’s DTH still the preferred one for the Schlage? I know there is a “generic” one for zwave locks that works with Lock Manager, but it was my understanding Gary’s had some Schlage specific stuff that gave it a step up on the generic one. Should we try to update the “generic” handler to add the Schalge specific stuff?