Kwikset smartcode 916 status and updates

Do you have the zwave or zwave-plus model? For me the original had the same issue, the zwave plus model does not…(for me.)

Only issue I have is that on restart of HA, it triggers an unlock ~ lock event (doesn’t physically happen, just reports this). Otherwise the workaround works great.

Apparently the fix didn’t get merged? The PR seemed to go stale.

I confess I dropped this – the workaround has made me lazy

There is a section in the component where there are a list of known “quirky” locks that have a workaround built-into the component. There are already a longish list of Kwikset models in that component but mine isn’t one of them. I haven’t tried to figure out the intricacies of determining the specific internal model # needed to register my lock in the list of “quirks” that are already there.

@a3a - Thanks a ton for this workaround - I am going to take a stab at trying to figure out how to resolve directly in the component, but very grateful for a good interim solution.

Hey everyone, I did poking around and I think I figured out how to get my specific Kwikset Lock (916) working. You need to be comfortable with loading custom components in your HASS instance to do this. As @a3a mentioned, the ZWave Lock Component has some fixes for quirky locks. It seems all the Kwikset locks use the same WORKAROUND_DEVICE_STATE, and just needs the correct manufacturer_id and product_id to match your lock. My lock was not on the list to be matched, so didnt pick up the workaround behavior. The instructions below will help you find your IDs and modify the zwave file to catch your Kwikset lock.

  1. Open your HASS Logs
  2. Identify your Z-Wave IDs: Navigate to Configuration>Zwave>Select your lock node>Print Node
  3. Search the string in your logs for manufacturer_id and product_id and make note of it
  4. Modify your components/zwave/lock.py file and add your lock IDs at around line 35.
  5. Restart HASS and test!

My locks so far as been VERY consistent. I will continue to test but if we get more people to test and provide their IDs we can do a pull request with HASS core.

I typed this up super quick, so hopefully this makes sense. Heres the lines I added to my lock.py Zwave file:

    (0x0090, 0x0001): WORKAROUND_DEVICE_STATE,

Good Luck!

2 Likes

Hello All,

I’ve had a Kwikset Obsidian for about a year now and it has always bothered me that after connecting it to Home assistant it would not show the “locked/unlocked” status in the Home Assistant UI.

Initially, I came here to the Home Assistant forums looking for a solution and found that the whole codes list approach which I didn’t like, so I came up with a templates approach using Automations. BUT BEFORE you use this, the solution that @blee posted is absolutely the best solution in my opinion, and I’ve since then removed my automations and used @blee’s approach, which I’ll show in detail how to do below.

Here is the automations solution using templates, it’s not perfect and sometimes if you lock/unlock the door to quickly it gets stuck in a loop, unlocking and locking the door until I reboot Home Assistant which is not acceptable to me for a long term solution. But, it’s cleaner then the codes so if anyone wants to use it, here it is.

And here is the config for unlocked.

Now using @blee’s solution here are my updated step-by-step instructions making this solution easy to follow and do yourself.

  1. Open your HASS Logs (You need a log viewer or file system access installed to do this) I would suggest the file system approach which is Samba since you’ll need it anyway for the later steps, you can install it from your Home Assistant Supervisor section.

  2. Identify your Z-Wave IDs: Navigate to Configuration>Zwave>Select your lock node>Print Node

  3. Connect via Samba and open your logs file.

  4. Search the string in your logs for manufacturer_id and product_id and write them down. The logs are long so expected a huge wall of text.

  5. Now to get a copy of the Zwave component you’ll need to download the source code for Home Assistant.

  6. Once you have it downloaded you need to extract the zwave component, which is a folder with files in it. Make a copy of this folder somewhere.

  7. Now you need to open and edit the lock.py file and add in the information you wrote down.

  8. Now you need to connect to the config directory using Samba access and create a folder called “custom_components”, you must spell it exactly correct. Then copy up the whole zwave folder which contains the modified lock.py file in it to this directory.

  9. MAKE A BACKUP AND DOWNLOAD IT!!!

  10. Restart HASS, test it and you should be good to go.

Some drawbacks to consider, when the community updates the Zwave code in the future to be compatible with newer versions of Home Assistant, it might break since your custom component is essentially a forked version of the code. SOOOO you’ll need to from time-to-time repeat these steps to update your custom component unless someday your device makes it into the main source code. Also if you’re on a really old version of HA, you should look for an older version of the Zwave component to try and ensure compatibility. The best thing to do is just update HA to the latest version, then create the custom component.

Good luck and THANK YOU SO MUCH to @blee for finding this solution. SUPER AWESOME :+1: :+1: :+1: :pray: :pray: :pray:

How has it been working for you? Mine is great, and will be putting together a pull request to get this pulled into the project. We can probably include both of ours for the sake of simplicity!

Mine has been flawless, working nearly instantly updating the status. Awesome work on your find… my addition is actually in the photo in my post if you’re able to make a push and include these devices is standard builds.

Cheers and thanks again!

I submitted a PR here, with your lock as well :slight_smile:

And approved! That was quick - I suspect next build we’ll be able to remove that custom component!

Nice work thank you

Anyone know if this has been included in the most recent update? Guessing not since my lock is still having this issue.

Looks like it should be included in the next version 0.113

@firstof9 thanks. How do I find that info in the future?

You can look around on the github PR’s tab: https://github.com/home-assistant/core/pulls

It has been in since at least 111.0, if not earlier. I checked that tag on the git repo and see the change listed in the file. Additionally its working fine for me right now.

@firstof9 - am I reading this wrong? Where do you see 0.113?

I think I mixed up my threads lol

I’m running the current version and keep having status issues with my lock. Thought it wasn’t in this version due to that. I see several ways to use Zwave devices, what’s the proper way? I’m currently using the zwave integration but also see OpenZwave under Add-ons.

Thanks!

I’m using the OpenZWave (Beta), experiencing the same issue. I just found and successfully tested this solution… Secure Lock Not Updating Status?

I am using it with Kwikset 916 and Yale B1L.

Same issue with openzwave