[RELEASE] Door lock code/lock user management (create, delete and schedule codes) with automatic lock/unlock, custom user actions and SHM integration

smartapp_alerts
dth_locks
smartapp_security
smartapp_locks
rboyapps

(www.rboyapps.com - Make your home your butler!) #1

This Lock User Code Manager runs on the standard Z-Wave Lock device that comes with SmartThings and works with any lock that supports remote codes. However, while it does work with the stock ST Z-Wave Lock device handler we strongly recommend to use the Enhanced Universal Z-Wave Lock device handler which has many additional features which can be exploited by this SmartApp.
Tested with Schlage, Yale, Kwikset and Monoprice

##Multi User Management with Notifications App, Scheduling and Automatic Lock/Unlock
###OVERVIEW
This is a comprehensive user management SmartApp. Key features include

  • Program multiple locks simultaneously (with support for variable pin lengths if your lock supports it)
  • Create a list of users and codes
  • Notifications for individual users using their codes
  • Memory of programmed user codes (doesn’t forget, you can add/update/delete from the list)
  • Setting individual expiration dates/times for each code
  • Notification if the door lock gets jammed while locking
  • Adjust the coding speed for the lock (too fast or too slow can be an issue, use the right speed for your lock)
  • Advanced scheduling options for each user including permanent codes, one time codes, expiration codes with start dates and recurring scheduled codes.
  • Running a Routine and changing Modes when a user successfully unlocks a door (configurable per door)
  • Turning on/off switches when a user successfully unlocks a door (configurable per door)
  • Notify user if too many invalid codes have been entered (requires Enhanced Universal Z-Wave Lock)
  • Automatically relock door after the door is closed (with a delay option)
  • Retract deadbolt (unlock) if the it was extended (locked) while the door was still open to avoid damage to door frame
  • Automatic code programming retry on lock communication failure
  • Integration with SHM (Smart Home Monitor)
  • Global options or per user specific configuration options (user unlock actions can override general unlock actions)

##This app is available on the RBoy ST SmartApps Server, http://smartthings.rboyapps.com.
If you like the Apps consider supporting our development efforts. Visit our Facebook page to get Access to all our Premium ST Apps Server and get updates on new apps. http://www.facebook.com/RBoySTApps

###INSTRUCTIONS:
Simple to use, just enter the maximum number of user slots you want to use (highest amongst all locks if managing multiple locks simultaneously), now enter the user name/codes for each slot. Configure the notifications options (by user, mode etc) and actions to take when users unlock the door. Note the app will only clear the codes that it is writing, e.g. if you’ve set max users to 4 it’ll only overwrite the first 4 codes.
Leave it blank to delete the user slot. Keep in mind the app takes up to 15 seconds to program each code, so you’ll have to wait 15xZ seconds if you lock supports Z user slots before the programming is complete. This delay for each code can be configured from the app and helps if users are facing issues with communication with the lock. Sending too many codes too fast can cause communication issues so find a number that works for you.

NOTE: You cannot import existing codes from the lock, this app will overwrite any existing codes on the lock.

This works with any Z-Wave Lock that supports remote programming.


FAQ’s

  1. Does this work with my lock?
    Yes this works with any lock that supports remote programming (currently only Z-Wave locks from ST support remote programming). It work with Schlage, Kwikset, Monoprice, Yale etc.

  2. Can I use the stock/default ST Z-Wave Device Handler for my lock with this SmartApp or do I need a custom Device Handler?
    Yes you can use the stock ST Z-Wave Lock device handler. However by using the enhanced universal device handler you can get access to some advanced features like Invalid Code notifications. You can find the enhanced universal z-wave device handler here: [RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features

  3. Can I control multiple locks with the app?
    Yes you can control multiple locks from a single app instance. Every lock will have the same codes programmed into them. Make sure that your locks are configured to accept the same code lengths (e.g. Schlage locks need to be told what code length to expect)

  4. Can I install the app multiple times to control different locks?
    Yes you can install the app as many times as you like. Each app can control one or more locks (all locks will be programmed with the same codes). However make sure that one lock is NOT controlled by more than one app. i.e. A single app can program two locks but two apps cannot control the same lock.

  5. Can I tell the app to only program incremental changes made?
    Yes, you can enable the option for incremental changes at the bottom of the first page.

  6. The door relock option isn’t functioning or it is delayed/slow to respond
    Your ST instance is facing a problem with the broken ST platform timers. Relocking is based on timers. The platform has a known issue where timers don’t fire on time or just dying for some users (it’s random). Please report it to ST support and refer to this thread: Scheduler and Polling quits after some minutes, hours, or days

  7. I’m seeing “unexpected error” when I’m trying to setup/configure the SmartApp on my phone
    Your ST cloud instance is having trouble, this happens for a small set of users randomly and is not specific to any app. Just wait for a while and try again later and most likely the server would have load balanced itself and corrected the problem. If not please contact ST support. You can also open IDE Live Logging while configuring it and if you see any errors let us know, if not, it’s the platform. Our apps are tested heavily before we release them and have thousands of active users.

  8. I’m seeing the app repeatedly verifying codes every 5 minutes. Does it impact my lock battery?
    This is normal. Each time the app is opened, it will reprogram all the codes to the lock for security. Thereafter it will run an internal check to ensure that codes are enabled/disabled on schedule and any changes are kept in sync with the lock. It runs this check every 5 minutes, but it’s an internal check and does NOT interact with the lock, so it has no impact on the battery.

##Troubleshooting
The programming to user codes is a communication between the Hub and the Lock. If there is an issue with the programming it’s because of communication issues between the lock and hub and you can use the below step to troubleshoot it. Please remember that Z-Wave is generally a slow high latency network with VERY limited distance. Multiple factors can affect the performance and stability of a Z-Wave network including distance between the hub and Z-Wave devices, location of “active” Z-Wave repeater devices, walls/objects (reflections) in between, the order in which the “active” repeater devices can online and registered with hub (yes this is a factor too!) etc.

  1. Restart the ST hub (unplug and replug it, not a reboot). This resolves 50% of issues
  2. Change the programming delay in the SmartApp (on the first page at the bottom, last option). The default is 60 seconds between codes. Avoid using less than 60 seconds as the platform sometimes just stops scheduling timers otherwise and it will result in some codes being programmed and others not.
  3. Sometimes Schlage locks get stuck in a loop (defective firmware, known on FE599) jamming the network making it unresponsive or work randomly/unpredictably. Remove the batteries from your lock and reset it.
  4. If the gap between the hub and lock is too much it may not be able to reliably communicate, you will see symptoms like randomly missed notifications, delayed notifications. Try to bring your hub closer or install a “active” Z-Wave repeater device in between them.
  5. Click on repair Z-Wave network in the Hub utilities (through your ST smartphone or the IDE). This can help reconfigure the network to take care of active devices which came online and are “out of order” and helps optimize the network. This can take 10-15 minutes while the hub optimizes the Z-Wave network.
  6. Please MAKE SURE you’ve configured the lock to use the same code length as the number of digits you’re you’re entering for each code in the app. If the number of digits in the code entered in the app does not match the code length configured on the lock it WILL NOT work.
  7. If the codes are not programming on schedule (running late or early), check your Hub’s Date/Time and Timezone. The SmartApp uses the hub’s timezone/dates and NOT your local system. You can configure your Hub’s timezone through your phone or the IDE.
  8. If you’re getting an error while trying to save/publish the code in the IDE. One of two things, first make sure you’re using the correct installation instructions (this is a SmartApp and NOT a Device Handler). If you’re still getting an error, then the ST IDE is having issues. Try again after a while or try closing the browser and starting over.
  9. Use this enhanced universal device handler for your Z-Wave locks, it will improve the overall reliability and functionality of the Lock and SmartApp.

Enjoy!!

##Single user lock code management
OVERVIEW and INSTRUCTIONS
The below a basic version which allows you to manage the door user codes individually. This is for security if you don’t want history of user codes to be left in the app or are managing the user codes manually from the lock also. It can be used with multiple locks simultaneously (make sure they have the same code lengths) but can only program (add/update/delete) one user at a time. It also supports expiry of single user codes. It has NO memory of previously programmed codes. It’s a once and done shot. It is good for ad-hoc code management.

The latest version of all apps with updates are available on the RBoy server.

/* **DISCLAIMER**
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Without limitation of the foregoing, Contributors/Regents expressly does not warrant that:
* 1. the software will meet your requirements or expectations;
* 2. the software or the software content will be free of bugs, errors, viruses or other defects;
* 3. any results, output, or data provided through or generated by the software will be accurate, up-to-date, complete or reliable;
* 4. the software will be compatible with third party software;
* 5. any errors in the software will be corrected.
* The user assumes all responsibility for selecting the software and for the results obtained from the use of the software. The user shall bear the entire risk as to the quality and the performance of the software.
*/ 

/**
* Add and remove user codes for locks
*
* Copyright RBoy
* Redistribution of any changes or code is not allowed without permission
*
* Change Log:
* 2016-5-15 - Fix issue with non existent timezone
* 2015-7-6 - Fixed issue with code expiry not working
* 2015-6-17 - Fix for dynamic preferences not working after ST platform update
* 2015-5-27 - Bugfix for expiration date entry
* 2015-2-11 - Added support for expiration dates
* 2015-1-1 - Added option to customizing name
* 2014-11-27 - Stable created
*
*/
definition(
    name: "Lock single user code management",
    namespace: "rboy",
    author: "RBoy",
    description: "Add and Delete Single User Codes for Locks",
    category: "Safety & Security",
    iconUrl: "https://s3.amazonaws.com/smartapp-icons/Allstate/lock_it_when_i_leave.png",
    iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Allstate/lock_it_when_i_leave@2x.png"
)

import org.joda.time.DateTime

preferences {
    page(name: "setupApp")
}

def setupApp() {
    dynamicPage(name: "setupApp", title: "Lock User Management", install: true, uninstall: true) {    
        section("Select Lock(s)") {
            input "locks","capability.lock", title: "Lock", multiple: true,  submitOnChange:true
        }
        section("User Management") {
            input "user", "number", title: "User Slot Number", description: "This is the user slot number on the lock and not the user passcode",  submitOnChange:true
            input "action", "enum", title: "Add/Update/Delete User?", required: true, options: ["Add/Update","Delete"],  submitOnChange:true
        }

        if (action == "Add/Update") {
            def invalidDate = true
            if (expDate) {
                log.debug "Found expiry date in setup"
                try {
                    Date.parse("yyyy-MM-dd", expDate)
                    invalidDate = false
                }
                catch (Exception e) {
                    log.debug "Invalid expiry date in setup"
                    invalidDate = true
                }
            }

            section("Add/Update User Code") {
                input "code", "text", title: "User Passcode (check your lock passcode length)", defaultValue: "X", description: "The user passcode for adding/updating a new user (enter X for deleting user)"
            }

            section("Code Expiration Date and Time (Optional)") {
                if (expDate && invalidDate == true) {
                    paragraph "INVALID DATE - PLEASE CHECK YOUR DATE FORMAT"
                }
                else if (expDate) {
                    def ed = Date.parse("yyyy-MM-dd", expDate)
                    paragraph "Code expiry date set for ${ed.format("EEE MMM dd yyyy")}"
                }

                if (expDate) {
                    if (!expTime) {
                        paragraph "PLEASE ENTER TIME FOR CODE EXPIRY"
                    }
                }

                input "expDate", "date", title: "Code expiration date (YYYY-MM-DD)", description: "Date on which the code should be deleted", required: false,  submitOnChange:true
                input "expTime", "time", title: "Code expiration time", description: "(Touch here to set time) The code would be deleted within 5 minutes of this time", required: false,  submitOnChange:true
            }
        }

        section([mobileOnly:true]) {
            label title: "Assign a name for this SmartApp", required: false
        }
    }
}

def installed()
{
    log.debug "Install Settings: $settings"
    state.codes = [:]
    unschedule()
    runEvery5Minutes(expireCodeCheck)
    runIn(1, appTouch)
}

def updated()
{
    log.debug "Update Settings: $settings"
    if (!state.codes) {
        state.codes = [:]
    }
    unschedule()
    runEvery5Minutes(expireCodeCheck)
    runIn(1, appTouch)
}

def appTouch() {
    if (action == "Delete") {
        for (lock in locks) {
            lock.deleteCode(user)
            log.info "$lock deleted user: $user"
            sendNotificationEvent("$lock deleted user: $user")
            sendPush "$lock deleted user: $user"
        }
        log.debug "Removing tracking expiry of user $user"
        state.codes.remove((user as String)) // remove it from the tracker, we don't an unexpected code removal later
    } else {
        for (lock in locks) {
            lock.setCode(user, code)
            log.info "$lock added user: $user, code: $code"
            sendNotificationEvent("$lock added user: $user")
            sendPush "$lock added user: $user"
        }

        if (expDate && expTime) {
            TimeZone timeZone = location.timeZone
            if (!timeZone) {
                timeZone = TimeZone.getDefault()
                log.error "Hub location/timezone not set, using ${timeZone.getDisplayName()} timezone. Please set Hub location and timezone for the codes to work accurately"
                sendPush "Hub location/timezone not set, using ${timeZone.getDisplayName()} timezone. Please set Hub location and timezone for the codes to work accurately"
            }
            log.trace "The date/time on the hub now is ${(new Date(now())).format("EEE MMM dd yyyy HH:mm z", timeZone)}"
            def midnightToday = timeToday("2000-01-01T00:00:00.000-0000", timeZone)
            def expT = (timeToday(expTime, timeZone).time - midnightToday.time)
            String dst = timeZone.getDisplayName(timeZone.inDaylightTime(new Date(now())), TimeZone.SHORT) // Keep current timezone
            def expD = Date.parse("yyyy-MM-dd Z", expDate + " " + dst).toCalendar()
            def exp = expD.getTimeInMillis() + expT
            log.debug "Removing any existing tracking expiry of user $user"
            state.codes.remove((user as String)) // remove it from the tracker so we don't duplicate if the code being overwritten
            state.codes.put(user,exp) // Add to the expiry list
            def expStr = (new Date(exp)).format("EEE MMM dd yyyy HH:mm z", timeZone)
            log.info "$locks user code expiration set to $expStr"
            sendNotificationEvent("$locks user $user code will expire on $expStr")
            sendPush "$locks user $user code will expire on $expStr"
        }
    }
}

def expireCodeCheck() {
    log.debug "ExpireCodeCheck called"
    def allCodes = state.codes.collect() // make a copy otherwise we can't remove it from the for loop (concurrent exception)
    for (code in allCodes) {
        TimeZone timeZone = location.timeZone
        if (!timeZone) {
            timeZone = TimeZone.getDefault()
            log.error "Hub location/timezone not set, using ${timeZone.getDisplayName()} timezone. Please set Hub location and timezone for the codes to work accurately"
            sendPush "Hub location/timezone not set, using ${timeZone.getDisplayName()} timezone. Please set Hub location and timezone for the codes to work accurately"
        }
        log.trace "The date/time on the hub now is ${(new Date(now())).format("EEE MMM dd yyyy HH:mm z", timeZone)}"
        def expStr = (new Date(code.value)).format("EEE MMM dd yyyy HH:mm z", timeZone)
        log.debug "user ${code.key} expires $expStr"
        if (code.value < now()) {
            def user = code.key as Integer // Convert back to integer, groovy converts to string in a key value pair
            for (lock in locks) {
                lock.deleteCode(user)
                log.info "$lock deleted expired user: $user"
                sendNotificationEvent("$lock deleted expired user: $user")
                sendPush "$lock deleted expired user: $user"
            }
            log.debug "Removing tracking of user $user"
            state.codes.remove((user as String)) // remove it from the tracker, we're done here
        }
    }
}

(Enhanced) Z-Wave Schlage Touchscreen Lock
Door Lock suggestions
Kwikset 914: changing Pin Remotely
Lock Code Automation
[RELEASE] User Unlock/Lock Door Notifications and Actions
Adding a Schlage Z wave Deadbolt (BE369) to ST Network, not working
Schlage Door Lock features
Truly _smart_ smart locks
Unlocking Door the Simplest Way
Schlage 498 with lock code manager strange issue
Smart alarm - deactivate by unlocking lock
Recommendations for Smart Lock
Best Smart Lock - My Scenarios
Schlage Connect Lock-Trying to set codes remotely?
Please share your thoughts on locks - keypad vs no keypad
Yale Z-Wave YRD240 Access Code Creation
Unable to use door lock as a trigger for Routines
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Schlage FE599--some questions
Kwikset lock codes...why the need for dev app to manage codes?
Is this right: get push notification if lock unlocks?
Schlage connect on sale at home depot
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Schlege lock help
Do something if lock is locked with code
[RELEASE] User Unlock/Lock Door Notifications and Actions
Kwikset Zigbee Lock turn off alarm
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[RELEASE] Rental Lock Automater - Automate user codes with AirBnB, HomeAway and VRBO
Activate a routine but if a window sensor is on then don’t turn on?
Another fustrated user joining the ST community out of necessity (UK Yale Lock Integration)
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
How to recognize housekeeper?
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
How to? Auto Door Lock after Unlock (Goodnight)
Yale locks - Remotely change codes?
Adding Schlage connect locks; New to SmartThings!
Smart Lock Questions
Individual code access text notification
Schlage Connect Not Working, is it the battery already?
Confused with Yale smart lock manager
Zigbee Lock User Code addition
Lock Manager Question
Change mode and ARM with Schlage lock?
Wanting to use kwickset lock as alarm keypad
Best Door Lock ? Auto open when you come home - worst door lock?
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Newbie Guidance
Disarm SHM when Door Unlocks?
Using camelot touch less to change mode?
Yale Conexis Lock help
Recommendations for Smart Lock
Notify Option for Schlage BE369NX Door Lock
(Enhanced) Z-Wave Schlage Touchscreen Lock
New ADT partnership, new touchscreen hub and devices 10/29/2017
Scheduling Schlage Connect BE469 Lock?
@RBoy update notifications?
Smart Locks Home Solution? Did miss something?
Lock with key codes
Issue with Yale Real Living Door Lock Codes
PIN for in-app door unlocking (schlage lock)
Custom notifications with door locks and Samsung r1 speakers?
[RELEASE] Enhanced ZigBee Keypad Lock - Centralite, IRIS, UEI and Xfinity Keypads Device Handler
Pre Sale questions
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Tigger Scene / Mode via Lock Codes
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[DEPRECATED] - Universal ZigBee Lock DTH with Lock Codes
[DEPRECATED] - Universal ZigBee Lock DTH with Lock Codes
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[DEPRECATED] - Universal ZigBee Lock DTH with Lock Codes
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[Depricated] Lock Code Manager
Issues with the new stock Smart Locks / Smart Codes feature
Door Locks Fully Supported by ST's
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
POPP - Z-Wave Plus KeyPad? Other U.K. Keypad Options?
Most affordable remotely controlled Deadbolt?
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Automatic poll (Schlage FE599NX) after unlocked with code?
FAQ: How do I add / delete user codes on my new Schlage Connect lock?
YRD446 Assure Lock with Bluetooth & Z-Wave
New to Smart Things need help managing Schlage lock user codes
New to Smart Things need help managing Schlage lock user codes
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Smart Home Monitor
[RELEASE] Universal Enhanced Z-Wave Lock, Schlage Lock, Yale Lock, Kwikset Lock, IDLock, DanaLock, August Pro and Samsung Lock Device Handler with Alarm Control, Notification, RFID, Door Sensor and advanced features
Yale lock notifications
FAQ: Can I add a keypad to control my garage door?
Door lock with door sensor
Smart Home Monitor
Tracking Schlage Connect Door Codes
Schlage Nexia Lock Remote Administration
Schlage Nexia Lock Remote Administration
Changing Lock Codes Remotely?
Z-Wave locks, events, etc
Door Locks Fully Supported by ST's
How to use the lock status to create notification
Schlage Camelot Satin Nickel Touchscreen Deadbolt with Alarm set up code
Schlage Nexia Lock Remote Administration
New "Home on Code Unlock Too"
Schlage Century wont connect to Smartthings Hub
Schlage Camelot BE469WK vs. BE469NX ? confused
(Brian Smith) #2

I have Kwiksets and I have the same issue. I would love to have this functionality so I can add codes when I’m away. I’m fairly certain that Revolv had the functionality. I’m hoping ST can get it integrated.


(Acastal) #3

This is what I use and it works with Kwikset 914’s


(www.rboyapps.com - Make your home your butler!) #4

thanks @acastal I tried that but it isn’t working with either of my 2 locks. It doesn’t seem to get a response from the lock after sending the command to add the user code.

Could it be because the lock doesn’t report the capability to manage user codes? What is what I see in my raw description. I don’t see 0x63

Raw Description 0 0 0x4003 0 0 0 5 0x22 0x72 0x7A 0x98 0x86


(Acastal) #5

For me it just worked. Months after installing the first lock when I installed my second one I forgot the change the device from Zwave lock to the custom lock type so it did not work until i remembered to do that as well.


(www.rboyapps.com - Make your home your butler!) #6

Any you can pull up the raw capability list from your Device List and post it here to me to compare?


(Acastal) #7

Raw Description 0 0 0x4003 0 0 0 3 0x72 0x86 0x98

Is that what you are looking for? This is with Custom Lock device type.


(www.rboyapps.com - Make your home your butler!) #8

yes thanks, I don’t see 0x63 (user codes) in your list but it seems to be working for you. I’m guessing there’s something different about schlage locks, maybe they use sub channels to communicate. (like the CT100 uses sub channels for RH parameters). Wonder where I can get that info.


(www.rboyapps.com - Make your home your butler!) #9

Interestingly CasaVerde supports remote codes for schalge locks.
http://wiki.micasaverde.com/index.php/Schlage_Lock


(www.rboyapps.com - Make your home your butler!) #10

@duncan and @urman on another thread you had mentioned that Schlage locks remote administration features are supported but they haven’t been implemented due to a backlog.

Can you please share some pointers with us on how we can communicate / setup the communication with the schlage locks so we can manually modify the device apps for now to make it work. Unfortunatley I can’t find any technical documentation on how to access teh remote pin code features for Schlage and the setUserCode is not working (nothing is being returned from the lock).

Pointers would be much appreciated. thanks


(Duncan) #11

Probably you aren’t getting any response because you aren’t subscribing to the right attribute. Here’s a post I wrote on the Lock Codes capability:

Also, user should be an integer, not a string.

The reason you don’t see user codes in the command class list is because it is only available encapsulated by the security command class, 0x98.


(www.rboyapps.com - Make your home your butler!) #12

@duncan you are a freaking GENIUS!! I’ve been breaking my head on this for weeks and ONLY issue was I send a text instead of an integer. Add, update and remove user all work great with the standard Z-Wave lock device type. I’ll post the updated Smart App above.

One last question - I’m trying to create a dynamic page, ie. when the user select add user it should pop up one more input for the code other when selecting delete user it should not have any inputs. I can’t find the right documentation, could you point me in the right direction here.

Thanks again.


(Greg) #13

RB,

Just wanted to say thanks for this code. This is wonderful.


(Dave N) #14

Looking forward to the repost of the updated app. I tried @acastal 's app last night but the code didn’t seem to take on a test (and yes I was using an integer for the user). There are so many great app’s like this buried in the private depths of the 11,000 apps. Sure hope there is a common, searchable, repository one day.


(www.rboyapps.com - Make your home your butler!) #15

I didn’t have to make any changes to the device type, it just worked with the standard z-wave lock device type.

And I complete agree with you. We’re all reinventing the wheel here and hopefully we’ll have a app repository soon with categories. I’ve even submitted these apps to ST to publish.


(Mcvoss) #16

RB,

Just wanted to say thanks. This works great!!!


(Nagui Anis) #17

Thanks for the work, will this work with the Yale locks?


(www.rboyapps.com - Make your home your butler!) #18

I only have a Schlage lock to test with. Maybe you can try it and let us know, if the Yale lock follows the same z-wave commands I don’t see why not. I think it should work with any lock unless the lock has a custom way to communicating the user information.
It’s just a SmartApp so no harm done :smile:


(Dave N) #19

I saw you mentioned posting an updated Smart App that’s why I mentioned the repost.
When I have the app installed I only have the option of Delete with yes/no boolean. You mention Add, update and remove. Am I running the same code?


(www.rboyapps.com - Make your home your butler!) #20

Correct when it’s not deleting it will Add (or Update if the slot is already filled). I’m still trying to figure out how to create a dynamic page to make it clearer. Any help for folks who know dynamic pages would be helpful :smile: