Door Locks Fully Supported by ST's

I added the ability to create burner codes. Also cleaned up some wording and fixed a couple of bugs.

Check it out and let me know what you think!

Hi Erik Thayer
The user-lock-manager is not working at all with my Yale lock, no codes are sent to the lock even without scheduling, I get the following in the log:

3:07:22 PM GMT+2: trace lock from Floor 1 Lock was provided with codeUsed…creating subscription
3:07:21 PM GMT+2: trace codeReport from Floor 1 Lock was provided with codereturn…creating subscription
3:07:21 PM GMT+2: trace Testing was provided…creating subscription
3:07:21 PM GMT+2: trace Home was provided…creating subscription
3:07:21 PM GMT+2: trace Testing is attempting to unsubscribe from all events
3:07:21 PM GMT+2: debug Updating ‘Locks’ with settings: [userSlot:9, userCode:1234, notification:true, locks:[Floor 1 Lock], notifyAccessEnd:true, notifyAccessStart:true, notifyAccess:true, userName:Testing, burnCode:false]

Hello Nagui,

Those are regular initialization logs. The subscription messages you see here have to do with subscribing to actions such as when a code is entered at the door, or when a code is sent to the lock. This allows the app to watch for activity and report back notifications. If you used the scheduler, one or two (depending on if there’s a stop time set) additional subscriptions would be made.

I don’t see any errors in that group of log messages.

What Yale lock do you have?

One step that may not be straight forward is that no codes are sent to locks upon initialization of the app. Two different triggers can send codes to the app though. 1 - User manually triggers the app (This adds the user to the lock, even if it’s not on the scheduled time) 2 - A schedule event fires in which access would normally be granted (if you went the schedule route).

To manually trigger the send code command:
Go into “My Apps”

Click on the ‘Play’ icon to trigger the send command.

After a couple of seconds, you should receive a message such as ‘Testing now has access to Floor 1’

Note: I don’t have access to any model Yale lock, so debugging on my end may be tricky. SmartThings would have had to have the setCode command working for that model.

The IDE is tricky on this app. It’s very buggy and doesn’t work quite right. If you insist on using it, use physical devices, not the simulated ones. The simulated locks do not have code functionality. To trigger the same manual action as in ‘My Apps’, press the ‘Trigger Now’ button.

EDIT: As an aside, make sure you’re using the official Z-Wave Lock device type for these apps, a custom device type may break this functionality.

Thanks a lot Erik, it was only firing upon pressing play, scheduling was not working, your last side note solved the problem , I was using s special device type to adjust timeout for the Yale lock so that the status reflects its actually condition, when I reverted to original device, scheduling fires on time now.
My lock is the Yale Security YRL-220-ZW-619 Real Living Touchscreen Lever Door Lock

I’m glad that it seems to be working now. It’s too bad that there is a status delay on the Yale locks. I have not experienced this. A status delay problem might mean that actions after the door is unlocked could be received later than anticipated. You may have issues with the single use code functionality and with the future planned functionality of activating lights/appliances on user code entry.

Hopefully SmartThings can solve the condition problem on their official device type support for Yale locks.

Good luck!

I’ve moved discussion about my smartapp and it’s development to a new thread.

Join us here:


It seems right now it is limited to 30 codes? Yale locks allow you to have 250. Is that possible with your app.

Just enter more. The app doesn’t enforce any limits, just makes suggestions.

@bigpunk6 Thanks for the hard work. Functionally it works great. I keep codes 1 & 2 blank on the app so I can use local codes (codes programed on the lock) just in case my internet goes down. I can’t wait to see your next revision.

Many Thanks,

I am about to purchase a home automation hub (vera or st) and the first purpose for which I am purchasing it is for lock control. I need to be able to unlock and lock doors remotely and another VERY important feature is to be able to unlock other locks when one lock is opened by the keypad (I will have two keypads on the door–one up high to keep small children from getting out unbeknownst to me).

Of course I would like to be able to schedule unlock and lock times (Automatically lock all locks after 10 pm, automatically unlock at certain times of day).

Another important feature is to be able to create temporary codes for visitors.Am I understanding correctly that some of these features aren’t available with ST?

(I am not a computer programmer, but if worst came to worst I can study and copy and paste, but I really don’t have time for that in my life right now)

Plenty of existing smart apps can do what you need. They are easy to load and you don’t have to be a programmer to do it, so no worries there. In addition, there are some add-ons developed by community members that can help. For example, the SmartRules app by @obycode works well for a multitude of situations. ( There is also a web rules app option that is being worked on. Both could easily open the second lock when the first one is unlocked.

You can also pretty much guarantee that there is a good shot someone in the community has already created the app you need. If not, everyone here loves to code! :smile:


I’m very appreciative of everyone’s work on apps, but I find it highly disappointing that the feature of remotely controlling PIN codes that I was told in 2013 “is on our roadmap” still hasn’t been built into the app natively.
Especially when ST sells the kwikset locks that have this feature. Yet they can’t support it. Only reason I bought ST was because this feature was coming soon.

Very disappointed in being misled every time I contacted ST before making my purchase.

1 Like

The app that I created supports Hello Home actions on unlock. Just create a Hello Home action that unlocks the doors that you need, and tie it to a user’s code entry.

Hi Duncan - Is the new firmware to support ZigBee locks available yet? If not, could you please give me rough idea of when it might be?

Do these apps enable zigbee locks to work with st?

Hi Brian,
I’m new to Smart Things and am interested in getting better control over a door lock (remote PIN admin). Your post makes it sound like I might be able to this without too much fuss (I’m not a coder). Can you point me in the best direction to get started? I’m an Android user btw.

Many thanks in advance!

Sorry for the delay, @Aaron_Solet.

It is pretty easy to setup. Personally, I use Kwikset 912s (two of my three first floor entry doors have them). But, there are plenty of other options, including deadbolt only options. Check the Compatible Products list -

To control them, I use @ethayer’s awesome User Lock Manager

There are a few others in the community here, but that is the one I settled on and use. Erik is quick to update and has done a great job with the app.

In addition, I also use @obycode’s SmartRules (iOS only at this point) to control my locks outside of Routines when needed. It’s a great app that is very easy to use.

There is an alternative to this - @bravenel’s Rule Machine

I personally don’t use that one, but Bruce is a great programmer and the app has a large following here. There are some issues with how Android renders the pages (I think they still exist), so you would have to configure them from a Mac/PC. Check that thread for more info.

In the end, the locks were the biggest selling point to the smart home install with the Mrs and the first thing I did. One of our doors unlocks automatically when we arrive, allowing someone to walk in the door with their hands full and not fumble for keys. I can also monitor them to ensure they are locked when we are gone. If a guest arrives and lets them selves in via a code, I have @ethayer’s app run a routine to turn lights on, etc that would normally occur when I arrive home and my presence runs a full routine.

One suggestion I would make, though. If you only use one smart lock, make sure you have a key for it if the battery dies and you didn’t replace them. Or, in my case, I have two doors with smart locks. They both have rechargeable batteries. I charge them on “alternating schedules” so that one always has more of a charge than another. I just have my iPhone remind me when I need to charge them, every month for each lock, but offset by two weeks between them.

Hope that helps!

I get the following error codes:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script1454280863870834421942.groovy: 1036: unable to resolve class JsonSlurper
@ line 1036, column 20.
def codeData = new JsonSlurper().parseText(

script1454280863870834421942.groovy: 1079: unable to resolve class JsonSlurper
@ line 1079, column 20.
def codeData = new JsonSlurper().parseText(

script1454280863870834421942.groovy: 1179: unable to resolve class JsonSlurper
@ line 1179, column 18.
def codeData = new JsonSlurper().parseText(

script1454280863870834421942.groovy: 1231: unable to resolve class JsonSlurper
@ line 1231, column 14.
json = new JsonSlurper().parseText(json)

What am I doing wrong?

Also, im confused on the .groovy data.
There is : user-lock-manager.smartapp.groovy
and zwave-lock.groovy

what is the 2nd one for? Do we just add it to the end of the first .groovy code?

The tutorial video says to delete preferences down. When i did that i would get the errors. I found out that when i copied the 2 lines of code above it would work.

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

Above is the 2 lines of code i was talking about.

Still not sure about what the 2nd .groovy (zwave-lock.groovy) is for.