Kwikset Home Connect 620 door lock - new 800LR model & firmware updates

Two of my HC620 door locks were defective (bad speaker, bad mechanism). Kwikset sent me a replacement which I received and installed today. It turns out it’s got an 800 LR series chip. That product has apparently not been announced yet.

The good news is that the new model works perfectly in Home Assistant. I set it up as non-LR Z-Wave, though.

There is only a cosmetic issue due with the brand / model / product number .

It shows up as Spectrum Brands, Product 0x0811, Unknown product 0x13a9 .

I also noticed that my 10 700 series locks are on 3 different firmware versions, 7.19, 7.20, 7.21 . Are there any firmware updates available for these units ? I didn’t see any notice in Home Assistant. I will be reaching out to Kwikset.

The lone 800LR unit is on firmware 7.23 and probably is too new to have an update.

The Kwikset 620 LR and the 918 LR were officially announced on Feb 12. I forgot what site the article was on but I placed my order as soon as it was announced and have been using it since.

The lock doesn’t use the 800 series chip it uses the 700 series chip. Any 700 or 800 series device can support Z-Wave Long Range it just needs a firmware update.

I asked about firmware updates in 2023 and was told the following: Please note that locks will come with the latest RF chip and we do not release any updates for our Z-wave locks. Once the lock is connected to the hub, the third party will provide any missing firmware. I’ve never seen a third party provide firmware so I assume this means whatever firmware you have is what you are stuck with.

Unknown product just means there is no config file for that device/product code in the Z-Wave JS database. The device will still work though. You can create your own config file. The main reason you would do this is if you are missing functionality. For example I bought a Jasco Pro smart plug and out of the box it was difficult to tell what each parameter did and what each value meant. So I created the config file so that instead of having to look at the manual to figure out what each value was I could just select the parameters from a list in the ui. Here’s a before and after I made the config file.

Thanks. How did you create the config file ? Is there a way to simply update the product ID ? The configuration in the UI looks OK.

As to third parties providing firmware updates, that would sure be interesting - who else is going to have the source code for their lock’s firmware, test it, distribute it ?

For a security product, if there is a vulnerability that requires a fix, and there is no way to update the firmware, what do you do ?

As a matter of fact, while I was away on vacation abroad, I operated on several of my locks remotely - unlocking and locking them. Everything looked fine remotely in Home Assistant, with all door locks reporting being locked.

However, last Monday, my pet sitter came in and found the door to the master bedroom balcony opened with the deadbolt sticking out. One of my 3 indoor cats had escaped. He completely freaked out. Fortunately, I knew how to get her back inside, and she came back indeed 8 hours later.

The log for that particular lock in Home assistant does not show any unlock or lock event for the relevant time period. I am not sure if it is a bug in the firmware, bug in HA, or a weird signal issue, but either way, I can no longer trust this lock, or the 12 others HC620 that I recently installed.

Now that I’m back home, I’m trying to determine which it is. Everything seems to be behaving correctly for the lock in question - it answers to lock and unlock commands, and reports its tatus correctly.

I have got another lock however, which answers to commands, but its lock/unlock status never updates, no matter what I do.

If it turns out to be a firmware issue, Kwikset is going to have to figure out a way to patch it and distribute the fixes. I will post a separate thread about it.

I run Z-Wave JS UI on windows and all of the config files are stored in a folder that’s easily accessible. I simply copied an existing config file, modified it for my device, placed it in the Z-Wave JS UI store/config folder, then restarted Z-Wave JS UI. The product code is stored in the devices firmware and gets reported during inclusion so there is no way to change it.

Just stumbled across this post. I have Z-Wave JS UI running in HA directly. Any chance you might now where these config files are and what changes would I need to make?

I just bought the 620 LR model and am having issues with some of the options not working like auto lock.

You have to configure autolock from the keypad.

Do you guys have any issues with the lock not locking through HA correctly? If I send command to lock through zwave / HA it locks, but does a long beep and the state is shown as unknown.

However if i use the auto lock feature of the lock and the lock does the locking by itself (without getting the zwave command) everything locks correctly and state is updated and no beep is heard.

I think the only time it beeps is if the battery is low or the lock is jammed. In both cases it will generate an event in the logs. I haven’t had any issues with my lock.

There’s have been a few config updates to this lock and recently the status always shows up as unknown even though it locks and unlocks with zwave commands. Anyone had the same issue?

Yes, I’m having the same issue. I’ve tried reinterviewing, removing and replacing the battery pack, and reverting Z-Wave back to 0.13. None of those things helped

i have installed a kwikset 620 lock recently.

i’ve had multiple other kwikset locks (mostly 618 model - CORRECTION: i meant to say 918 model) and bought this one with a hope to improve a few things i did not like about the 918 including the unreliable and very difficult-to-use keypad (vs. physical rubber buttons on the 620). also i was aware that the 620 uses newer z-wave chipset and supports S2 security plus Z-wave Long-range.

i got this installed in my system and setup. then shortly afterwards, i switched from using Z-Wave JS add-on to using Z-Wave JS UI add-on. strangely, now i find that now in home-assistant this lock shows up with manufacturer “Spectrum Brands” and product code “Unknown product 0x23b9”. anyone know why this might be happening?

when i manually inspect the z-wave JS device database, the model 620 appears there and seems to have product ID that seems to match what’s reported by the device, yet somehow Z-Wave JS is not able to identify it. and yes, i’ve tried “re-interview” several times and it doesn’t change.

any seen this? suggestions? (i’m new to z-wave js ui)

That’s how all 3 of mine show up in Zwave js. It is purely cosmetic, and does not affect functionality at all, so I haven’t worried about it.

I was able to get my Kwikset lock working again by factory resetting it:

  1. Remove the battery pack from the lock.
  2. Reinsert the battery pack while holding the Program button on the lock.
  3. Continue holding the Program button for 30 seconds until the lock beeps and the status LED begins to flash red.
  4. Reinterview the device, if necessary

Also, moving to z-wave JS UI wasn’t necessary to solve this issue.

2 Likes

Yep, that fixed it for me. Thanks for taking time to come back and posting a solution here.

Also no re-interview was necessary. You also don’t have to remove/add it from zwave just followed your steps.

1 Like

So, how did you find the details for you device appropriate for the configuration file?

Did you reverse engineer it using something like ZSniffer? Or did you perhaps find details on products.z-wavealliance dot org?

The closest I can find to my 918 is this. The picture is wrong but the product id and product type id match, so I assume it’s the correct one. It’s very light on details. I can see way more available in home assistant than what I can see than any of the links off the zwave alliance’s page.

Contrasting with the Kwikset 916 which has a lot more detail under the configuration link. Even the manual has some zwave details.

Anyhow, I’d love to setup the configuration and contribute it back to the community. I’m just not sure how to get the details. Any direction you could provide would be greatly appreciated.

Most of the stuff that goes in the config file can be found in the device manual. Because almost everything is autodiscoverd during inclusion you really only need to create config files when there is functionality missing from home assistant. For example there is supposed to be a parameter to disable energy metering but its not shown in ha. Here is the guide on how to format your config file zwave-js/docs/config-files/file-format.md at 31d4f6e577145cd881a9f6b0ceda1f166751fc0b · zwave-js/zwave-js · GitHub and here is the guide on how to submit the config file zwave-js/docs/config-files/contributing-files.md at 31d4f6e577145cd881a9f6b0ceda1f166751fc0b · zwave-js/zwave-js · GitHub.

Thanks. That’s not a great workaround if one programmed a significant number of codes into the lock, especially given that there is currently no way to backup or restore the device-specific Z-wave settings.

Fair enough. If it helps, you can bulk set codes using this action if your lock supports it and you keep a list of codes around: https://community.home-assistant.io/t/bulk-update-lock-codes-using-setmany/716368/2?u=richardpeng

You can also set one code at a time using zwave_js.set_lock_usercode

That won’t help unless you keep track of the rest of the settings as well, but I think some settings actually remained after the factory reset, surprisingly enough.

Thank you ! That’s helpful ! Which parameters did you find were not undone by the factory reset ?

Ultimately, re: backup functionality, I’m hoping for some better backup/restore method. For one thing, when it comes to entering door lock security codes, the codes should be encrypted, not in the clear in a HA automation.

In general, I hope that there will some day be a backup/restore feature for the whole Z-wave network, including devices, and not just the sticks, which is already a great step. The goal would be to be able to factory reset every Z-Wave SmartStart device, and once they are automatically added back through the restored SmartStart table, restore all the Z-Wave parameters onto each node.

I’m hoping there is some way to serialize/deserialize all of it without having to know the internal format for every manufacturer device field. Of course, the node numbers would change when devices are re-included. With SmartStart devices, it should still be possible to identify the correct nodes to restore data to, based on their key entries. Not sure if any of it is currently exposed through Z-Wave JS.

Of course, non-SmartStart devices, or failed devices, pose a whole other category of problems - you would need to be able to manually restore them.

And then there is of course the vexing issue of changing device IDs when re-including in HA, which breaks device automations. That’s more of a core HA problem than Z-Wave JS, though.

How did you install the config file ? I tried to put it in the Z-Wave JS UI store/config/xxx.json, but even after restarting the add-on and re-interviewing the device, the product name and ID don’t update. What am I doing wrong ?

The reason I want the product name is that I’m filtering device by model in my blueprints. This is actually not for the lock in this case, but for some Zooz switches. I have mostly ZEN76 switches, but had to install a pair of heavier duty ZEN75 in the garage for the large number of LED ballasts. I want my blueprint to be able to select both types of switches. Right now, the blueprint filters like this :

    zooz_switch_1:
      name: Zooz ZEN76 Switch #1 (Optional)
      default: ""
      selector:
        device:
          filter:
            - integration: zwave_js
              manufacturer: Zooz
              model: ZEN76
            - integration: zwave_js
              manufacturer: Zooz
              model: ZEN76 800LR

I would like to add the ZEN75 800LR to my filter.

Of course, to stay on topic, I would also like to fix the display of the Kwikset 620 LR nodes in ZUI.