Coder Social home page Coder Social logo

lock-manager's Introduction

Lock Manager BETA

This BETA is provided for testing purposes. If you are uncomfortable about figuring things out on your own, you should wait until a proper relase in the MASTER branch of this repository.

Questions like 'How do I install' are NOT proper questions for a beta release.

Feedback like 'this thing doesn't work' is highly appreciated, and will help lead to a release.

NOTES

UNINSTALL all 1.x apps and device types before attepting an install of 2.0. Only install this software AFTER you've already uninstalled old versions of Lock Manager. I would recommend uninstalling instances of the app in the SmartThings IDE.

Questions?

Ask in the Community Forum.

Suggestions/Bugs?

Create a Ticket in the Issue Tracker. (yes, even for feature requests)

Pull Requests are welcome.

Please donate

Donations are completely optional, but if this made your life easier, please consider donating.

lock-manager's People

Contributors

acburnett avatar dependabot[bot] avatar diddywolf avatar ethayer avatar jmb12686 avatar pboyd04 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lock-manager's Issues

Adding User Shows "Please fill out all required fields."

Android Galaxy S7. Just loaded it from the GitHub today (my first SmartApp).
When adding a user, I get the error message "Please fill out all required fields."
If I keep hitting the done button, i keep getting the error.

If i go down to the bottom, and click the lock in the Locks section, then hit done, and then hit done, it usually works. (Out of the 6 times I tested that, it worked on all but 1 of the attempts, and that one took on the second try)

Here's a bogus user showing the error:
image

Anything else I that would help diagnose this?

Push notifications not sending for manual lock/unlock

Notifications work great when a user code is used, however when the lock is manually used no push notifications are sent. I'm not exactly sure what info you need to debug this, please let me know if you need anything further.

Model: YRD210 PB DB
Type: Universal Enhanced ZigBee Lock (jhamstead)

Live log from lock device:

6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:45 AM: debug parse() --- returned: [name:lock, isStateChange:false, value:locked, descriptionText:Front Door is locked, displayed:false, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:45 AM: trace parse() --- description: read attr - raw: A6870101010800003001, dni: A687, endpoint: 01, cluster: 0101, size: 08, attrId: 0000, encoding: 30, value: 01
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:43 AM: debug parse() --- returned: [name:lock, data:[usedCode:, type:remotely], descriptionText:Front Door locked remotely by SmartThings, value:locked, displayed:true, isStateChange:true, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:43 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 20 01 0101FFFF00ECE0E41200
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:41 AM: debug parse() --- returned: null
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:41 AM: debug parseResponseMessage() --- ignoring response - catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 00 01 00
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:41 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 00 01 00
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:38 AM: info lock() -- cmds: [st cmd 0xA687 0x01 0x0101 0x00 {}, delay 2000]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:35 AM: debug parse() --- returned: [name:lock, isStateChange:false, value:unlocked, descriptionText:Front Door is unlocked, displayed:false, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:35 AM: trace parse() --- description: read attr - raw: A6870101010800003002, dni: A687, endpoint: 01, cluster: 0101, size: 08, attrId: 0000, encoding: 30, value: 02
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:33 AM: debug parse() --- returned: [name:lock, data:[usedCode:, type:remotely], descriptionText:Front Door unlocked remotely by SmartThings, value:unlocked, displayed:true, isStateChange:true, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:33 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 20 01 0102FFFF00E1E0E41200
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:30 AM: debug parse() --- returned: null
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:30 AM: debug parseResponseMessage() --- ignoring response - catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 01 01 00
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:30 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 01 01 00
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:24:26 AM: info unlock() -- cmds: [st cmd 0xA687 0x01 0x0101 0x01 {}, delay 2000]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:39 AM: debug parse() --- returned: [name:lock, isStateChange:false, value:locked, descriptionText:Front Door is locked, displayed:false, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:39 AM: trace parse() --- description: read attr - raw: A6870101010800003001, dni: A687, endpoint: 01, cluster: 0101, size: 08, attrId: 0000, encoding: 30, value: 01
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:37 AM: debug parse() --- returned: [name:lock, data:[usedCode:, type:manually], descriptionText:Front Door locked manually, value:locked, displayed:true, isStateChange:true, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:37 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 20 01 020DFFFF00AAE0E41200
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:30 AM: debug parse() --- returned: [name:lock, isStateChange:false, value:unlocked, descriptionText:Front Door is unlocked, displayed:false, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:30 AM: trace parse() --- description: read attr - raw: A6870101010800003002, dni: A687, endpoint: 01, cluster: 0101, size: 08, attrId: 0000, encoding: 30, value: 02
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:28 AM: debug parse() --- returned: [name:lock, data:[usedCode:, type:manually], descriptionText:Front Door unlocked manually, value:unlocked, displayed:true, isStateChange:true, linkText:Front Door]
6dae0a3e-d2f1-4d9f-93a8-981ee5a0a30a  11:23:28 AM: trace parse() --- description: catchall: 0104 0101 01 01 0140 00 A687 01 00 0000 20 01 020EFFFF00A0E0E41200

Expose alarm of lock to Smart Home Monitor

Would love a way to expose the alarm of my Schlage lock so that it could be triggered by events, specifically with Smart Home Monitor.

I don't think there is an official way to trigger the alarm but maybe someone smart could figure out a way to "trick" the lock into sounding it's alarm?

Notifications

I suddenly can't access the notifications menu for a user. It just spins when I try and open it on a user or on main page. (I recently updated IOS, but am not sure if it worked after that).

location.timezone is null

I'm using iOS 10.3.1.

I see this error in the logs:
java.lang.NullPointerException @ line 619

This is the line it's referring to:
def today = new Date().format("EEEE", location.timeZone)

When I played with the code, I noticed a line that says "subscribe(location, locationHandler)" and that locationHandler is actually null.

It's possible that the reason the error happens is because, when I installed the SmartThings iOS app, I told iOS to not allow the app to access to GPS. I re-enabled GPS permissions and reinstalled the app, but it still doesn't work.

Can't add a user

I use two Schlage FE599 locks and am just getting started. In the Lock Manager iOS SmartApp, I get an error when I try to add my first New User.

  1. Click New User
  2. Enter a name
  3. Enter a 4-digit code
  4. Select slot 1
  5. Click Next
  6. Now I see a blank window. The top has a Back button, title "Lock User", and Done button. There are no controls or anything below.
  7. Click Done
  8. See red error message slide down from the top: "Error saving unnamed page. Please contact SmartApp developer."

I'm guessing you added a blank page on accident? Can I fix this in my code easily, or should I wait for a proper fix?

Installed lock disappears

After installing the lock and setting up a new lock. It disappears and I cannot see available users / edit

Multiple instances

Lock Manager will show a single instance in the interface. When I go into it there are no users. If I click "done" to exit I am returned to the SmartApps section of the Automation tab with multiple instances of Lock Manager shown. One of those instances will have my users listed in it when I select it.

Cannot add a contact to get notifications to

Hi, I'm having a problem with notifications that require contacts. If I have a contact in the "Contact Book" and whether it has only an email or multiple forms of contact I'm having an issue. If there are contacts then I cannot go into the notifications section. It spins for a second and then stops over and over again. Nothing shows up in the logs either.

Text notifications allow me to set them up and I receive the confirmation text but nothing actually gets sent out.

Any ideas?

Thanks

Bug: App says "unlocked" when device is actually locked

The Schlage FE599 has two modes: "locked" which means visitors must enter a PIN in order to release the latch, or "unlocked" which means visitors can release the latch without typing a PIN.

In the "My Home" section of the SmartThings app, it shows my lock device as "UNLOCKED", but when I walk to the door and turn the handle, the latch does not move, which means the device is actually LOCKED. It seems the displayed status is not in sync with the lock. If I tap UNLOCKED, the text changes to LOCKED and the actual lock stays silent (because nothing changed in it). Then, when I tap LOCKED, the text changes back to UNLOCKED and I hear a metallic click in the actual lock because it changed from LOCKED to UNLOCKED.

I guess when the app opens, it may need to query the lock to get its status, unless the SmartThings hub can somehow store that status to prevent unnecessary battery drain on the lock. It might be a bug with the custom device handler.

groovy.lang.MissingPropertyException in Lock User

Just saw the following error in the Lock User logs:

12:59:36 PM: error groovy.lang.MissingPropertyException: No such property: lock for class: java.lang.Boolean @ line 798

Seemed to occur after the user was in a "Controller failed to set code" state, after I reset the user.

The relevant code is the return lockApp.lock in this function:

def getLock(params) {
  def id = ''
  // Assign params to id.  Sometimes parameters are double nested.
  if (params?.id) {
    id = params.id
  } else if (params?.params){
    id = params.params.id
  } else if (state.lastLock) {
    id = state.lastLock
  }
  state.lastLock = id
  def lockApp = getLockApp(state.lastLock)

  return lockApp.lock
}

It appears getLockApp() returned false for some reason, and this function doesn't check for that condition.

Feature Request: Limit number of slots per lock

The Schlage FE599 lock only allows 19 slots but the lock-manager app acts like we can use 30 slots, so this could confuse users. It would be helpful if you added a setting to the Lock page that says "Number of slots supported" so I could select "19", and then the app would limit the slot numbers we can select on the New User page and the number of slots shown on the "Lock Info" page.

We have two of these same model, so it's pretty easy to support us. But if someone has multiple models that support different numbers of slots, this could require a pretty big re-write of the code unless you just go with the biggest number.

hide passcodes in app

It would be great if you could hide the passcodes in the app after you've put them in. Something like **** instead of 1234 would be great!

Cannot see lock info

Installed today
After entering several users and testing the lock - everything works great
But when reopening the app all the users are gone
And no ability to list user data
What have I done wrong?
Tks - Jim

Lock Manager screen won't load

I cannot bring up the Lock Manager screen up from my phone (Android) from Automation/Smartapps screen. I have 2 locks under Things which I can see and make changes there. I can't delete the app to reinstall because I can't bring up the screen, LOL! I tried Force Reconfiguration no luck. I've been using Lock Manager for months and I don't even make changes in Lock Manager to test or to try to break it because it has been so stable. Any help is appreciated.

No notification sent when unlock or lock manually on BE369

Thank you very much for sharing the lock-manager.
I have a Schlage BE369. I just installed the device handler "ethayer : Z-Wave Lock Reporting" and smartApps Lock Manager and three other sub apps.
However, I am not getting any notification when entering unlock code on the keypad, turning lock/unlock knob on the lock. The lock status does not get updated on lock/unlock.
Are the behavior expected?

No Devices

I've gotten the program (?) installed but when I get to the activate custom DTH for your device, I don't have any devices listed.

Am I missing a step?

Thanks

Codes do not populate?

I tried to use this app, but never see codes in the lock info screen.

I have a zwave touchpad lock, so i picked the "touchscreen" DTH, instead of a the reporting. Was that a mistake?

I see this in the logs:
fdfe5851-af55-49c0-a128-b93fa75aa355 1:43:44 PM: debug No codes to set
fdfe5851-af55-49c0-a128-b93fa75aa355 1:43:44 PM: debug running load codes
fdfe5851-af55-49c0-a128-b93fa75aa355 1:43:39 PM: debug run code logic

Kwikset 910 issues

Just pulled the latest apps and DH and no love for my 910. Upon installing the main Lock Manager app, and adding the lock, I find this error in the IDE:

9d82a715-3555-4d56-b8b8-389fe273fe76 4:55:31 PM: error java.lang.IllegalArgumentException: Command 'updateCodes' is not supported by device 0ef1e9b0-d3b6-4a7e-858a-2b76a7172963 of type 'Z-Wave Lock Reporting'. Supported commands: [poll, lock, unlock, refresh, lock, unlock, setCode, deleteCode, requestCode, reloadAllCodes, unlockWithTimeout, setCodeLength, nameSlot, ping, unlockwtimeout] @ line 545

I've tried several DH and the one that seems to almost work is the ST Z-Wave lock w/codes. Though despite it at least showing the attempt to updateCode, it never gets sent, of course.

image

What's interesting, is despite not SETTING the codes, it was able to pull some ancient ones from the lock. Roughly two years old, from previous roommates on another continent. Slot 2 and 3.

image

Can not access user to modify or delete codes

To reproduce this issue, simply add a lock code expiration time.

Dont add a start time.

Save the data.

Then try to access that user. Youll get a error and the page wont even come up.

image

I tried to fix it...but I was spending too much time trying to figure out why parent was null. I have no idea why it happens to be null after adding a end date.

Would like to add some features, but would like to discuss first

I have 3 Schlage Touchscreen locks, 2 are installed and 'mostly' working.

I'd like to be able to do a few things, and don't mind going in and doing myself if you are open to that, however I'd like to talk about the design of them if you want to go that way. If a separate app is the way to do this, or if extending your stuff is the best way, let me know :)

Some of these may or may not be possible, but I'd like to explore. I'll put them in rough order of priority. Also assume that all features would be for a subset of the active locks. ie. Add new user and random code for locks 1 and 3, or for 2 and 3...but NEVER 1 and 3.

  1. Ability to give a new user a random PIN that takes the current lock's pin length into account (or set pin length manually on the "lock" profile if it can't poll it)

  2. Ability to set that user a start/end time with a calendar view. We'll be doing this a lot and the manual 'enter day/month/year' for start/end by hand is error prone. #wifefriendlyfeature

  3. Ability to make a new user/random-code/start-end date via some sort of automation (python on google cloud, REST api call into a server, something). I don't know enough about this system yet to know how to do this (or if it's possible), but bypassing having to manually enter new codes (and remove old users) would be ideal.

  4. Ability to pull all data (all locks, all users, all start/end days, # of uses, etc) for further manipulation/viewing (local web service, etc)

Advice? Thoughts?

Battery Levels Never Update

Not sure if this is an issue with my Kwikset (910, IIRC) deadbolt, the batteries inside, or something to do with the lock-manager.

The initial batteries in the lock drained pretty quickly, so I swapped for some rechargeable AA batteries fully charged. They've been working great in the lock for 4 months now. Still, the battery shows in the developer dashboard as 1, and there appear to be no events related to battery status. Smartthings iOS app shows the battery level as 1% as well.

Have you heard anything about this? Others in the forum have seen battery levels not updating for hours or days, but never 4 months.

Any tips for debugging are much appreciated!

Installation Issues

Hello,
I'm new to using ST - I have 2 keyless deadbolts (KwikSet & Schlage)

I'm tyring to follow your instructions on installing this lock manager.

On the SmartThings website when I Enable GitHub (I have an account) it either adds my account (phoenixfma) or gives me an error when I attempt to add ethayer/lock-manager. It says (GitHub repository ethayer/lock-manger not found). I can find it on GitHub when I search for it, but I can't seem to connect through ST...
It automatically adds my personal GitHub but when I try to add a new repository it won't save/says it can't find it.

Unable to create "New User" with secondary account

Hi, E - me, again.

I'm the primary SmartThings account holder, and I sent my hubby an invite giving him access to the account. And while he has no problem accessing Lock Manager via SmartThings, and he is able to view the "User(s)" I've set-up, he is unable to set-up "New Users." When he chooses the option nothing happens.

Is this supposed to happen?

Add Zigbee Keypad Support

I know you're actively working on this but I just wanted to be able to track it so I know when I can switch over from the old app :). Also, let me know if you need help with the implementation. See below for my enhanced implementation within the old User Lock Manager;

def keypadPage() {
  dynamicPage(name: "keypadPage",title: "Keypad Settings (optional)") {
    section("Settings") {
      // TODO: put inputs here
      input(name: "keypad", title: "Keypad", type: "capability.lockCodes", multiple: true, required: false)
    }
    def hhPhrases = location.getHelloHome()?.getPhrases()*.label
    hhPhrases?.sort()
    section("Routines", hideable: true, hidden: true) {
      input(name: "armRoutine", title: "Arm/Away routine", type: "enum", options: hhPhrases, required: false)
      input(name: "disarmRoutine", title: "Disarm routine", type: "enum", options: hhPhrases, required: false)
      input(name: "stayRoutine", title: "Arm/Stay routine", type: "enum", options: hhPhrases, required: false)
      input(name: "nightRoutine", title: "Arm/Night routine", type: "enum", options: hhPhrases, required: false)
      input(name: "armDelay", title: "Arm Delay (in seconds)", type: "number", required: false)
      input(name: "notifyIncorrectPin", title: "Notify you when incorrect code is used?", type: "bool", required: false)
    }
  }
}
def alarmStatusHandler(event) {
  log.debug "Keypad manager caught alarm status change: "+event.value
  if (event.value == "off"){
    keypad?.setDisarmed()
  }
  else if (event.value == "away"){
    keypad?.setArmedAway()
  }
  else if (event.value == "stay") {
    keypad?.setArmedStay()
  }
}

private sendSHMEvent(String shmState) {
  def event = [
        name:"alarmSystemStatus",
        value: shmState,
        displayed: true,
        description: "System Status is ${shmState}"
      ]
  log.debug "test ${event}"
  sendLocationEvent(event)
}

private execRoutine(armMode) {
  if (armMode == 'away') {
    location.helloHome?.execute(settings.armRoutine)
  } else if (armMode == 'stay') {
    location.helloHome?.execute(settings.stayRoutine)
  } else if (armMode == 'off') {
    location.helloHome?.execute(settings.disarmRoutine)
  }
}

def codeEntryHandler(evt) {
  //do stuff
  log.debug "Caught code entry event! ${evt.value.value}"

  def codeEntered = evt.value as String

  def data = evt.data as String
  def armMode = ''
  def currentarmMode = keypad.currentValue("armMode")
  def changedMode = 0

  if (data == '0') {
    armMode = 'off'
  }
  else if (data == '3') {
    armMode = 'away'
  }
  else if (data == '1') {
    armMode = 'stay'
  }
  else if (data == '2') {
    armMode = 'stay' //Currently no separate night mode for SHM, set to 'stay'
  } else {
    log.error "${app.label}: Unexpected arm mode sent by keypad!: "+data
    return []
  }

  def i = settings.maxUsers
  def message = " "
  while (i > 0) {
    log.debug "i =" + i
    def correctCode = settings."userCode${i}" as String

    if (codeEntered == correctCode) {

      log.debug "User Enabled: " + state."userState${i}".enabled

      if (state."userState${i}".enabled == true) {
        log.debug "Correct PIN entered. Change SHM state to ${armMode}"
        //log.debug "Delay: ${armDelay}"
        //log.debug "Data: ${data}"
        //log.debug "armMode: ${armMode}"

        def unlockUserName = settings."userName${i}"

        if (data == "0") {
          //log.debug "sendDisarmCommand"
          runIn(0, "sendDisarmCommand")
          message = "${evt.displayName} was disarmed by ${unlockUserName}"
        }
        else if (data == "1") {
          //log.debug "sendStayCommand"
          if(armDelay) {
          	keypad.setExitDelay(armDelay)
          }
          runIn(armDelay, "sendStayCommand")
          message = "${evt.displayName} was armed to 'Stay' by ${unlockUserName}"
        }
        else if (data == "2") {
          //log.debug "sendNightCommand"
          if(armDelay) {
          	keypad.setExitDelay(armDelay)
          }
          runIn(armDelay, "sendNightCommand")
          message = "${evt.displayName} was armed to 'Night' by ${unlockUserName}"
        }
        else if (data == "3") {
          //log.debug "sendArmCommand"
          if(armDelay) {
          	keypad.setExitDelay(armDelay)
          }
          runIn(armDelay, "sendArmCommand")
          message = "${evt.displayName} was armed to 'Away' by ${unlockUserName}"
        }

        if(settings."burnCode${i}") {
          state."userState${i}".enabled = false
          message += ".  Now burning code."
        }

        log.debug "${message}"
        //log.debug "Initial Usage Count:" + state."userState${i}".usage
        state."userState${i}".usage = state."userState${i}".usage + 1
        //log.debug "Final Usage Count:" + state."userState${i}".usage
        send(message)
        i = 0
      } else if (state."userState${i}".enabled == false){
        log.debug "PIN Disabled"
        //Could also call acknowledgeArmRequest() with a parameter of 4 to report invalid code. Opportunity to simplify code?
        //keypad.sendInvalidKeycodeResponse()
      }
    }
    changedMode = 1
    i--
  }
  if (changedMode == 1 && i == 0) {
    def errorMsg = "Incorrect Code Entered: ${codeEntered}"
    if (notifyIncorrectPin) {
      log.debug "Incorrect PIN"
      send(errorMsg)
    }
    //Could also call acknowledgeArmRequest() with a parameter of 4 to report invalid code. Opportunity to simplify code?
    keypad.sendInvalidKeycodeResponse()
  }
}
def sendArmCommand() {
  log.debug "Sending Arm Command."
  keypad.acknowledgeArmRequest(3)
  sendSHMEvent("away")
  execRoutine("away")
}
def sendDisarmCommand() {
  log.debug "Sending Disarm Command."
  keypad.acknowledgeArmRequest(0)
  sendSHMEvent("off")
  execRoutine("off")
}
def sendStayCommand() {
  log.debug "Sending Stay Command."
  keypad.acknowledgeArmRequest(1)
  sendSHMEvent("stay")
  execRoutine("stay")
}
def sendNightCommand() {
  log.debug "Sending Night Command."
  keypad.acknowledgeArmRequest(2)
  sendSHMEvent("stay")
  execRoutine("stay")
}

radio button group for "select slot" incorrectly hard coded to 30 elements.

background:
a) The Yale Zwave lock physically allows for 250 slots / user PIN codes.
b) Lock-manager already allows one to go into setup for a lock and (re)define the max number of slots allowed.

All of the above is great.

However, the "add user" panel has a bug.

this panel forces you to supply a username, a code (4-8 digits) and a slot number.
The interface to supply the slot number is one must "tap" on the field and then you are presented with a hard coded radio button group of just 30 elements.
What this means is even though the lock itself can handle 250 users, the lock manager software will only support adding upto 30 users (slots). The other 220 slots can not be managed in the current incarnation of lock-manager.

Options include hard code increasing the size of the radio button group to 250,
or dynamically setting radio button group size to the max slot size of any lock being managed,
or possibly abandoning the radio button group and force end user to enter the slot number value.

"Scheduling" disables access to "User" profile

Hi, E. Great App.

I've no issue setting up a "User" profile.

However, if I then access the "User" profile to add a schedule for the "User," after choosing my options and hitting "Done," I receive the following message "You are not authorized to perform the requested operation;" after which time I hit "Done" again and return to the Lock Manager screen, but am no longer able to access the "User" profile, and my only option is to swipe left (iPhone 6) and delete the user profile.

I'm not a programmer, so assistance in laymen's terms would be appreciated.

Forgot to mention that my lock is a Schlage Connect.

Thanks in advance.

~L

NewUser page is blank

I've got a Yale YRD240 Z-wave lock. I installed Lock Manager parent and child apps per the v.1.1 instructions at https://dl.dropboxusercontent.com/u/54190708/LockManager/v1.1/guide.pdf

I can lock/unlock the lock just fine.

However, using the iOS SmartThings app, when I click 'New User' and enter the user name, code and slot and click 'Next' the next page is blank, except for a 'Back' and 'Done'. If I click 'Done' and I get the error 'Error saving unnamed page. Please contact SmartApp developer".

Thanks,

Kevin

Installed locks not listed on Lock Manager Screen

I just configured my front door lock to use this app, and when I go into the Lock Manager, the lock is not listed for me to view and/or edit. Yet, I am getting notifications that were set on this lock. Please help. Thank you.

Sorry, unexpected error message- for New Lock, New User & New Keypad

Hello, i hope someone can help. I have installed the Lock-manager on the back end template, so that I can have access to creating pin-codes for people to enter our home using the yale YRL-220. It is linked to the ST hub and can only lock and unlock. I followed the directions to install the Lock manager smart app onto the ST app, but it continues to state "Sorry, but there was an unexpected error." for any entry (New Lock, New User, New Keypad).
Please advise

Lock info not showing manually (default lock) codes

1/ installed and paired a schlag connect
2/ 2 built in codes not changed/removed
3/ installed your app, using Z-Wave Schlage Touchscreen Lock handler
4/ Added the lock and one new user with a new code (code 3)

Issue 1: In code info, I can see code 3 (and gave it slot 5) but all other slots show empty. though, they are not deleted and still function. Communication is fine since after using the code 3, I see that #Entries is +1

Issue 2: (not sure it is an issue): in lock settings->notification settings-> there is a "send notifications to and a book icon. it says you can't currently add this.

Overall great job especially on the clear documentation! first time ST app installer and it was a pleasure. let me figure this thing out, start distributing to my family and but you a coffee :-) !!

I am still surprised ST nor Shclag has the ability to remote manage codes as a out of the box experience.

Feature Request: Display version number somewhere

Since updating SmartThings apps is so complicated using Git and Publish and such, it would be a good idea to add a visible version number to the lock-manager app. This would help developers and users verify which version a user is using when they report problems.

Notifications

The current setup always notifies me, but I'd like to customize that so that if my wife is home, or certain modes are active that it wouldn't send the notification. This would be adding constraints to the notify options.

Schlage Connect Touchcreen unreliable after last device hanlder update

I recently pulled in the latest device handler update for my Schlage Connect Touchscreen. Unfortunately, the lock and unlock actions immediately became unreliable. I would initiate a command to lock or unlock and it would very often get stuck in the locking or unlocking state and never actually take any action on the lock.

In the event that it did actually take the action there was a delay of around 5-6 seconds that wasn't there previously and the locked or unlocked status would take even longer to update after the action had been taken.

Reverting to commit 93bd6de immediately resolved all of these issues.

-Thanks

Feature Request: View log

If you have time, please add the ability to view logs from the lock-manager app. Logs should show user name, action (lock/unlock), date/time.

And/or add a button to export or email the entire log out to an address we type in. That will allow us to manage the logs on a PC more easily.

Throwing error when using keypad.

I noticed it while using "Arm Night" on the keypad, returned the following error after the delay:

c8061ec4-b42d-4a41-9ce3-913bc4d96eb1 9:43:02 PM: debug Keypad manager caught alarm status change: stay c8061ec4-b42d-4a41-9ce3-913bc4d96eb1 9:43:02 PM: error java.lang.NullPointerException: Cannot get property 'nightRoutine' on null object @ line 123

Still armed correctly but figured you'd like to know

Fix keypad arming delay.

Currently the delay only applies to the SHM status change, it should apply to both running the chosen routine and settings the SHM status. As I had posted on the community thread, the flow should be something like: Arm Keypad -> Send "setExitDelay" command to keypad -> Wait for "delay" seconds -> Run desired routine and change SHM status.

No notification for auto-lock with Schlage touchscreen

First, thanks so much for this app. This new version is a great improvement!

I have a Schlage touchscreen, and I'm getting notifications for every event I'd like other than when the auto-lock kicks in and locks the door after 30 seconds. Is there any way to make that happen? I will try and take a look myself but have no SmartThings experience.

BUG: User Code Slots not accurate and push notification not working when revoking user code

After upgrading from the repo to the latest version, the slots are messed up.
I have 3 user code using slot 1,2 and 3 but when i create a new user code, it shows 1,2 & 3 available.
It use to only allow me to show the slots that is not in use.

What would happen if you have 2 user code on the same slot?

In addition, when i revoke a user code, I still don't get notification that user access has been removed even though the push notification is turned on for revoking user code.

Error message " You are not authorized to perform the requested operation"

I add user code on the lock manager with setting the calendar. I set start date/time and end date/time.
After I complete the process, I tried to go inside this user to take a look the setting. I got a error message that "You are not authorized to perform the requested operation". I can not edit or delete this user code.
What Can I do to reset this issue ?

User codes-schedule- Etc don't get updated by the lock

Hi. Thanks for making this smart app. I have a Schlage connect camelot deadbolt. I was able to install the Lock Manager 4 applications following your instructions (https://dl.dropboxusercontent.com/u/54190708/LockManager/v1/guide.pdf). I am having a problem because I created users in the ST app, but I cannot have the lock to add the new user via the hub automatically. Currently, I can only add-delete codes manually. How can I troubleshoot this? Thanks in advance.

Guillermo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.