diff --git a/smartapps/ethayer/lock-manager.src/lock-manager.groovy b/smartapps/ethayer/lock-manager.src/lock-manager.groovy index 2c1b9df..b437037 100755 --- a/smartapps/ethayer/lock-manager.src/lock-manager.groovy +++ b/smartapps/ethayer/lock-manager.src/lock-manager.groovy @@ -81,14 +81,14 @@ def pollCodeReport(evt) { log.debug 'checking children for errors' children.each { child -> child.pollCodeReport(evt) - if (child.isInErrorLoop()) { + if (child.isInErrorLoop(evt.deviceId)) { log.debug 'child is in error loop' needPoll = true } } if (needPoll) { log.debug 'asking for poll!' - runIn(25, doPoll) + runIn(20, doPoll) } } diff --git a/smartapps/ethayer/lock-user.src/lock-user.groovy b/smartapps/ethayer/lock-user.src/lock-user.groovy index 8222b6c..925b9ed 100755 --- a/smartapps/ethayer/lock-user.src/lock-user.groovy +++ b/smartapps/ethayer/lock-user.src/lock-user.groovy @@ -721,6 +721,7 @@ def pollCodeReport(evt) { // set user to disabled state if (state."lock${lock.id}".enabled) { state."lock${lock.id}".enabled = false + state."lock${lock.id}".errorLoop = false state."lock${lock.id}".disabledReason = "Controller failed to set code" send("Controller failed to set code for ${app.label}") } @@ -732,13 +733,11 @@ def pollCodeReport(evt) { } } -def isInErrorLoop() { +def isInErrorLoop(lockId) { def errorInLoop = false - parent.locks.each { lock -> - if (state."lock${lock.id}".errorLoop) { - // Child is in error state - errorInLoop = true - } + if (state."lock${lockId}".errorLoop) { + // Child is in error state + errorInLoop = true } return errorInLoop }