Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.35k stars 1.69k forks source link

Requesting all PIN codes from Kwikset lock results in a deluge of responses. #17242

Closed kevinsaucier closed 1 year ago

kevinsaucier commented 1 year ago

What happened?

I submitted this a couple of weeks ago but thought I had found the issue. I was wrong. :( I apologize if this is a duplicate or if this is just my complete braindeadedness. :) I did search, both here and Google and didn't find an obvious answer.

If I submit a payload of '{"pin_code": ""}' to the /get of my Kwikset Zigbee lock, the lock (or Z2M) responds with an individual, but identical, message for every user/slot in my lock. So, for my lock with 25 slots, I submit this:

image

And I get this, 25 times:

{"action":null,"action_source_name":null,"action_user":null,"battery":60,"linkquality":164,"lock_state":"locked","pin_code":null,"state":"LOCK","users":{"0":{"pin_code":"1111","status":"enabled"},"1":{"pin_code":"2222","status":"enabled"},"10":{"status":"available"},"11":{"status":"available"},"12":{"status":"available"},"13":{"status":"available"},"14":{"status":"available"},"15":{"status":"available"},"16":{"status":"available"},"17":{"status":"available"},"18":{"status":"available"},"19":{"status":"available"},"2":{"pin_code":"3333","status":"enabled"},"20":{"status":"available"},"21":{"status":"available"},"22":{"status":"available"},"23":{"status":"available"},"24":{"status":"available"},"3":{"status":"available"},"4":{"status":"available"},"5":{"status":"available"},"6":{"status":"available"},"7":{"status":"available"},"8":{"status":"available"},"9":{"status":"available"}}}

If I submit a payload of '{"pin_code":{ "user":1}}' instead, I get the same message as above but just a single time. Substituting any valid user number for the 1 in the payload has the same results, a single response containing all users' codes.

Thanks!

What did you expect to happen?

I expected to only receive a single message containing all users when submitting a blank payload and, when submitting a user specific payload, I expected to only receive that single slot's data. That may not be realistic, but that was my response. :)

How to reproduce it (minimal and precise)

Submit a /get to a lock with ''{"pin_code": ""}'' as the payload, then watch was is returned to the primary topic.

Zigbee2MQTT version

1.30.3 commit: 24c6b2e

Adapter firmware version

7.1.1.0 build 273

Adapter

Skyconnect

Debug log

Note that the log is showing refreshes being performed every 5 seconds due to the HA 'keymaster' add on being used to manage codes. This 5 second refreshes causes 24 messages to be fired every 5 seconds. I'm thinking this may be causing a backlog as I'm seeing a delay in processing new /set messages. debug.log.txt

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days