ring icon indicating copy to clipboard operation
ring copied to clipboard

Handling of “Door lock jammed” message

Open TejasAntani opened this issue 4 years ago • 10 comments

Bug Report

Describe the Bug

when a door lock gets stuck, ring responds with a jammed error. Home bridge-ring does not handle this message and instead leaves the device in a spinning circle state.

To Reproduce

Steps to reproduce the behavior:

  • set up door lock to jam upon locking
  • Attempt to lock door from home app
  • See error in ring app, see spinning wheel in home app

Expected behavior

Home should also return a jammed error and show lock in prior state, in sync with the ring app

Screenshots/Logs

If applicable, add screenshots and log output to help explain your problem.

Additional context

Add any other context about the problem here.

Homebridge Ring Config

Post homebridge-ring platform config without sensitive information


HIGHLIGHT THIS TEXT AND POST CONFIG HERE
DO NOT INCLUDE YOUR REFRESH TOKEN OR EMAIL/PASSWORD (replace them with xxx)

Environment

  • OS: [e.g. Raspbian]
  • Node.js: [e.g. 12.14.1]
  • NPM: [e.g 6.13.4]
  • homebridge-ring: [e.g 6.0.3]
  • homebridge: [e.g. 0.4.50 or N/A]
  • hoobs: [e.g. 0.4.50 or N/A]

TejasAntani avatar Feb 22 '21 05:02 TejasAntani

I'd be happy to add support for this, and it should be possible as HomeKit supports a LockCurrentState.JAMMED value. To make it happen, I'll need you to get your lock into a "jammed" state and then follow the directions in https://github.com/dgreif/ring/wiki/Data-Discovery. Once I get a look at that data, it should be an easy addition

dgreif avatar Feb 22 '21 14:02 dgreif

Hey there. I had the same question and put our Kwikset lock into a jammed state to get the info below. Happy to send over anything else that's helpful. Thanks - this plugin has been great!

{ "adapterType": "zwave", "batteryLevel": 100, "batteryStatus": "full", "categoryId": 10, "commStatus": "ok", "commandTypes": { "communication-poll": { "requiresTrust": false }, "lock.lock": { "requiresTrust": false }, "lock.unlock": { "requiresTrust": true }, "reconfigure.start": { "requiresTrust": false }, "update-node-neighbors.start": { "requiresTrust": false } }, "componentDevices": [ { "rel": "0:access-code", "zid": "xxxxxxxx-xxxx-uuid" } ], "deviceFoundTime": 1614565847395, "deviceType": "lock", "impulseTypes": { "error.lock.jammed": { "trusted": false }, "locked.by-auto-lock": { "trusted": false }, "locked.by-keypad.access-code": { "trusted": false }, "locked.by-manual": { "trusted": false }, "locked.by-one-touch": { "trusted": false }, "unlocked.by-keypad.access-code": { "trusted": false }, "unlocked.by-manual": { "trusted": false } }, "lastCommTime": 1614649624972, "lastUpdate": 1614649625306, "linkQuality": "ok", "managerId": "zwave", "manufacturerName": "Kwikset", "name": "Front Door", "pollInterval": 43200, "roomId": 7, "setupByPluginStatus": "complete", "setupByUserStatus": "complete", "subCategoryId": 0, "tags": [ "security-warning.accepted" ], "tamperStatus": "ok", "zid": "xxxxxxx-xxxx-uuid", "locked": "unknown" },

sswany avatar Mar 02 '21 01:03 sswany

@sswany thanks for posting! The interesting bit is "locked": "unknown". Looking at the plugin, it looks like I'm already watching for "locked": "jammed" and using that to report a jammed lock. There is also support for an "unknown" state in HomeKit, which I already support. When you had it in that state, what did HomeKit show for the lock?

@TejasAntani If you get a chance, I'd be interested to see if your lock shows similar data if you get it jammed and run the data discovery tool

dgreif avatar Mar 02 '21 03:03 dgreif

In that case, I did get the 'jammed' notification from Ring, but Homekit stopped spinning and said 'unknown.' I'll try again tomorrow and see if I can get something different.

sswany avatar Mar 02 '21 03:03 sswany

@sswany based on what I see in your data, HomeKit showing 'unknown' makes perfect sense. There may be an additional event coming through ring that indicates it was jammed, but the lock doesn't seem to retain that as its "current state"

dgreif avatar Mar 02 '21 03:03 dgreif

How long does the discovery script take to run? I let it go for 5 mins or so and it hasn't finished.

TejasAntani avatar Mar 02 '21 04:03 TejasAntani

@TejasAntani it shouldn't take that long, only about 30-45 seconds at the most. There were some issues with a dependency recently that may be causing it to hang. Try installing the previous version of the plugin and then installing the latest version again. You can install previous versions via the homebridge ui plugin if you have it

dgreif avatar Mar 02 '21 04:03 dgreif

@TejasAntani can you update to the latest version and try again?

dgreif avatar Mar 11 '21 22:03 dgreif

Hi. It's still stuck on "fetching devices". Any ideas?

TejasAntani avatar Mar 12 '21 03:03 TejasAntani

@TejasAntani I can't seem to recreate that issue with the data discovery tool on my end. Don't worry about running it, I'm guessing it will be the same as what @sswany reported. I think I can probably set up one of my August locks and recreate the issue on my end to get the data I need.

dgreif avatar Mar 13 '21 01:03 dgreif