Managing Lock Codes without Groovy

That article is helpful. I have another question and maybe you or others can answer it: I have three Kwikset locks that I control with the Rboy Lock User Management app. Since the app is Groovy based, it’ll disappear soon. I’ve emailed Rboy, but haven’t gotten a response. Anyway, after the Rboy app is gone, how do you program codes in locks using SmartThings after Groovy is gone? I realize this a SharpTools forum, but maybe someone knows? I have installed the Smart Lock Guess Access app in SmartThings, but don’t see how I can do anything other than opening and closing the locks (and maybe I’m missing something, which is possible). Thanks.

Hi Rich-
I hope you don’t mind that moved your post out of the beta thread (trying to keep that thread focused on beta specific items rather than broader SmartThings discussion). This also opens the question up to the broader SharpTools community in case anyone has feedback.

I don’t personally change the codes on my smart locks frequently, so I can’t speak to Smart Lock Guest Access SmartApp. I did play around with a concept of building a dashboard + rules for changing lock codes and it’s certainly possible, but I suspect dedicated Smart Apps have other unique features you might be looking for.


Perfectly OK to move the query. I wasn’t sure if the beta thread was the best place for it anyway. If there are dedicated SmartApps that aren’t Groovy, I’m not aware of them. My locks are still using custom DTH’s. I suspect that this is why I can’t change codes like I can with the Rboy app (which provided me with the custom DTH). I suppose I could move to an Edge driver now, but I might just wait until I’m migrated by Samsung and then experiment. Thanks.


By the way, I don’t change my lock codes often, either, but sometimes I have to add one and I don’t know of another way other than through the Rboy app (well, I think I can do it if I take the cover off the lock, but that’s tedious). The Rboy app also lets me schedule access so for example if we have some handyman come to the house I can set the lock code to be available only during the time the handyman is supposed to be there. Can I set codes with a SharpTools rule? I was poking around in the rules and couldn’t find anything yet.

Under the life tab in the mobile app you should be able to add Smart Lock Guest Access. After you install it, lock codes can be managed from the upper left menu of that app.

1 Like

Thanks for sharing, Jimmy! :+1:

Yes, most lock devices will offer a setCode() command. If I remember correctly, the parameters are:

  1. Code Slot
  2. Code PIN
  3. Code Name (Description)

OK, I see the dropdown menu now. Sheesh. That was hard to find! ;-). I do see all the names of guests that have codes assigned to each lock, but all I think I can do is edit the names, not the codes, so I guess I’ll keep poking around because I missed that I could even see the guests names. I can delete names/codes as well. There is a history listing. It shows when my Rboy app updates the codes. Anyway, thanks for the tip!

1 Like

OK, I’ll check this out. I suspect that I could write a rule that authorizes our cleaners with a code as of 8 am then delete the code as of 5 pm and only do it on Thursday.

One other question: can a rule be triggered by a certain code being used to open the door? The Rboy app has a feature that let’s me do things depending upon who opens the lock. I’ve emailed their support, but no answer yet (although I know he’s been active on the SmartThings Community so I’m hoping he has a plan).


It depends on how that information is reported. In the Groovy world, locks could report an extra data parameter and put whatever they wanted into that field. It was commonly used to report things like which code was used to unlock.

@plb44 was just asking about this in his thread:

For my use case, it’ll probably work if I track if the front door lock is unlocked regardless of code used because on Thursdays during the day it’s only the cleaners that unlock it.

1 Like

In webcore, you can find these values using $args.method and $args.usedCode. Those come off the unlock event, but I don’t see them as context variables. any way to manually query for the values?

Thanks for the additional details, Scott. Were you able to see my reply in the thread linked above?

yes it seems like it would be info from the data property, so you are saying that is not accessible to sharptools? I am using kwikset 910 with the generic z-wave lock handler.

It’s just that it doesn’t seem to be documented in the next-generation eventing APIs at all.

I took a look through the Z-wave Lock Edge Driver and it still has some references to, so I just put in an order for a Kwikset 910 and will try it out.

wow, that’s very nice of you. I am excited to see if you are able to extract that info. would definitely be nice to react to the specific user code or entry method. in the meantime, how can I check if I am using an edge driver for my zwave lock?

You can open the SmartThings mobile app and open the device you are interested in. Give the screen a moment to load, then tap the ... in the top right and if you see a ‘Driver’ option, it’s on an Edge driver.

From what I understand, as of today, you’ll only be on an Edge driver if you’ve explicitly reonboarded the device recently (removed it and re-paired it to SmartThings). The exception to that is if you are part of the Edge Driver Betas in which case they have automatically migrated some drivers already. I believe the plan is to start the automatic migration for regular SmartThings users sometime late August through end of September.

Hi! Groovy refugee working on transitioning my handful of live WebCore pistons. Similar to @RichB, I want to enable a lock code for my cleaners during scheduled visits. I originally had mine tied to a GCalSearch presence sensor which I’m working on mimicking in IFTTT. On the Rules side, I need to add the code when that presence is active.

My input arguments appear to show in the opposite order from your screenshot, with the numeric value coming last. I’ll try it out with the reverse sequence when I get home and can confirm the code enters properly but wanted to raise it here given the discrepancy withwhat you just posted.

1 Like

Are you moved over to the next-generation integration? Keep in mind, the next-gen connection is only enabled for new users by default, so if you had a legacy connection to SharpTools at some point in the past, you may still be using that.

If you’re just getting started with SharpTools and don’t have many rules/dashboards built-out yet, you can deauthorize your existing legacy connection which would then make the next-gen connection available to you (proceed through auth, select the location, and tap deny).

Alternatively, we can get you added to the beta so you connect connect the next-gen connection side-by-side your existing legacy connection. :slight_smile:

I would also add that the Groovy platform has an oddity where when it is asked for the list of parameters, they don’t always come across in the right order. You can fix it by tapping the ‘Advanced’ toggle in the top right of the Device Action in your rule and then change the parameter types as you see fit.

1 Like

Got it in one. I didn’t realize the different connection would lead to a different presentation of the options. I set up an account ages ago and am just now making an effort to use it, so re-linking the couple of rules I started setting up was no big deal.

1 Like

Feel free to send a note to if you’d like us to reset your trial so you can try out the premium features. :slight_smile:

1 Like