Schlage Connect Locks - HA Integration Needs Attention

Tags: #<Tag:0x00007fc4045fb1d8>

Same results, interesting details.

  1. Before a complete reset of the stick I installed Domoticz (OpenZwave included), nothing huge here, just a cool mesh graph and one detail I was unaware of - my powered ZWave tstat does everything but repeat…? I had a screenshot but lost it on a reboot before I saved it. Either way, that node is on the opposite side of all the locks

  2. After resetting the USB stick, removing everything Zwave, adding .old to all relavant files in HASS, some of the locks came back with OLD names that I once named them for testing. Not even the most recent ‘friendly names’ and I cannot rename those. IS HA MESSING WITH THIS TOO?!

I just wish there was something that said, Node 1 asked Node 28 to lock and attempted to contact Node 28 through Node 26 but the message dropped after Node 26

Only thing I can think of is not enough mains powered devices relaying your mesh here’s my mesh, and the only devices with high response are those with batteries (or backup batteries):

The naming issue is most likely related to the zwcnfg file. When you reset the stick, etc it probably was left behind. It’s not a huge deal, just a pain in the butt. There are a few posts about zwave and naming since 81.x? somewhere a few updates back. I will say at this point, I do believe that your issue is not lock related, but zwave related. You might want to start a new thread about how to improve the mesh, or asking about hops, etc. Might get more response than in the schlage thread.

1 Like

Thanks for the great work here. I’m a newb so still learning here but I have a few questions.
I have my single schlage lock connected and I’m able to set a code via the lovelace UI.

  1. I’m seeing the following error when checking config though. Configuration invalidCHECK CONFIG

Invalid config for [automation]: required key not provided @ data[‘action’]. Got None required key not provided @ data[‘trigger’]. Got None. (See ?, line ?). Please check the docs at

I read somewhere that you can’t have a blank automation file and so I copied their dummy automation into the automation.yaml but not sure if there’s something else I may be missing. I also had to use a merge command in my configuration.yaml to get the package working.

  1. I get a Date Invalid error on the card for setting up a key for both start and end date

  2. I don’t currently seem able to setup a 2nd code although the lock took my first one.

Appreciate any thoughts.

Is this code still functional on the most recent version of HA? If so, is it possible for you to give me a short and simple step by step on how I should be importing this into my configuration.yaml? I originally tried to split it up into my separate [ie: automations.yaml, scripts.yaml, groups.yaml] categories but I’m getting all kinds of errors. I am really happy to have found this project. I’m still a newbie but I can definitely follow directions. I should add that I’m using hassio if that makes any difference.

this is a thread that I put together.

You dont need any code (including mine) to get your locks to lock, unlock, etc. This is more for people who want to set codes, change codes, delete codes, schedule codes, etc. but out of the box, HA supports locking and unlocking.

I can confirm that this works… Thanks!

Has there been any progress in getting the delete code functionality working properly? There doesn’t seem to be any updates in getting the fork of openzwave into home assistant. I would really like the ability to delete codes instead of setting them to a random code.

I would install the fork myself, however this is proving to be difficult when using the official docker container.

Keep in mind the delete codes does not work on Kwikset zwave locks.

You might try using the config path option for the open zwave settings. It seems to be working for me. It’s about half way down this page

Adding Custom Devices

Unfortunately, the version of OpenZWave present in Home Assistant can sometimes lag behind what is released in the OpenZWave GitHub repository. The OpenZWave repository has a config directory that is broken down by vendor, so you should be able to see what devices are supported. If the device you are looking to add is not supported in Home Assistant but is found in the OpenZWave GitHub repository you still have some options.

To use the newer device configuration we can use the Z-Wave integration option config_path.

Start by downloading the latest version of OpenZWave from their GitHub repository. Once that is downloaded and extracted you need to add it into your Home Assistant environment. This will be a little different depending on how you installed Home Assistant. For me, I use a Docker container for Home Assistant so I copy the OpenZWave config directory contents into my configuration directory and name the directory openzwave_config . Note that you only need the config directory from OpenZwave not the rest of the repository.

Then in your Z-Wave configuration within Home Assistant you can set the custom config_path. This allows Home Assistant to use the latest devices added to the GitHub repository.
usb_path: /dev/zwave
config_path: /config/openzwave_config

So I’m completely new to home assistant but I feel like I’m failing pretty hard here…

I have the lock setup in, lock will unlock with no issues.

I created a folder called packages in the config directory

now I’m pointing at the packages directory with the configuration.yaml file

I downloaded and renamed the file called lock_package_for_one_deadbolt.txt

The node_id for the lock is 2, which I changed from 104 in the above file

I’m seeing the following names in the entity registry, should I be renaming these? I guess that’s where part of my confusion is coming in:


Here’s the current error I’m getting:

The following components and platforms could not be set up:

  • packages
    Please check your config.

I also tried commenting out the pushbullet lines, because I don’t have pushbullet or similar installed quite yet… Any help at least troubleshooting would be appreciated!

Did you ever get this working? It has been 30 days, so I’m hoping so. But if not, yes you need to rename the entities based on the comments in the file. I will say it’s possible and likely that the file is a bit outdated, but I believe it will work for you.

Also the error you received is actually saying your packages folder is not configured correctly.

I ended up just using the zwave setup and it worked okay, I can’t add or delete user codes on the fly but honestly I’m not too concerned about that at the moment.

@ptdalen I’ve switched over to the latest OpenZWave config files, but I still cannot get my Schlage BE469 to remove codes using the clear code method. Am I missing anything? Also the one-time feature does not work for me.

When you say latest do you mean you updated the usercode.cpp with the update posted, or do you mean you’re on 1.6? I have not done anything with 1.6 in a long while, it had too many differences and everything did not work correctly.

What is not working with the one time use? So you select enabled, a code it generated, you then turn on the lock(s) you want to use that code. Does the code work, but never clears? Does the code not work at all? Does it clear the input_text (code), turn off the switch, and set the slot back to disabled, but not clear, etc.

Did you set your codes via the lock manager or on the lock itself? I had issues with lock managers until I removed all codes on the lock itself and reset them in the lock manager.

I actually just updated the config. I’ll keep reading through this thread to see if I can find what you’re referencing. I’ll bet the issue with the scheduling has something to do with the clear issue.

I am curious what file you edited to change the node_id, I setup exactly the same lock as you using a more simplified version of the lock package you used but I found I could not send any codes successfully to the lock. Everything appeared to work but the code would not transfer. If I manually set the code in the services area the code got transferred to the lock

Did you manage to get this working?

hey @ptdalen -

Long time no talk. Gave up on the delete door code problem a while ago but recently migrated from a Rpi3 to an IntelNUC and figured I would do a little code cleanup / add some new functionality so here we are again. I’m on a Schlage BE469 Touchscreen Deadbolt and using your door code package.

I just followed this link:

I downloaded the config directory from OpenZwave, renamed it to “openzwave_config” put it inside my hassIO config directory and included it in my config file with:

  config_path: /config/openzwave_config

That’s supposed to let my zwave network use the latest OpenZwave config which supposedly gets delete door code working right? Was I supposed to do anything else besides restart HassiO?

This is (I think) the Zwave log when I try to use the delete door code functionality from the UI. Node19 is my deadbolt.

2019-11-24 09:27:24.743 Detail, Node019, Received: 0x01, 0x08, 0x00, 0x04, 0x00, 0x13, 0x02, 0x98, 0x40, 0x3a
2019-11-24 09:27:24.743 Info, Node019, Received SecurityCmd_NonceGet from node 19
2019-11-24 09:27:24.743 Info, NONCES: 0x36, 0x1f, 0x97, 0x8a, 0xfa, 0x41, 0xf5, 0x51
2019-11-24 09:27:24.743 Info, NONCES: 0x5e, 0xd1, 0x2a, 0x18, 0xda, 0xef, 0x23, 0xed
2019-11-24 09:27:24.744 Info, NONCES: 0x04, 0xde, 0xf4, 0xf4, 0xa0, 0x3d, 0x0c, 0xa2
2019-11-24 09:27:24.744 Info, NONCES: 0x47, 0x3e, 0x66, 0x80, 0x77, 0x05, 0x0d, 0xdf
2019-11-24 09:27:24.744 Info, NONCES: 0x48, 0x97, 0x09, 0xcc, 0x77, 0xb5, 0x14, 0xb7
2019-11-24 09:27:24.744 Info, NONCES: 0x08, 0x2f, 0x00, 0x1e, 0x42, 0xa9, 0xf8, 0xa4
2019-11-24 09:27:24.744 Info, NONCES: 0xa6, 0x39, 0x41, 0x1d, 0xff, 0xc2, 0x87, 0x41
2019-11-24 09:27:24.744 Info, NONCES: 0x33, 0xac, 0xb3, 0xbf, 0x55, 0xa8, 0x1f, 0xce
2019-11-24 09:27:24.744 Info, Node019, Sending (Send) message (Callback ID=0x01, Expected Reply=0x00) - Nonce_Report - 0x01, 0x11, 0x00, 0x13, 0x13, 0x0a, 0x98, 0x80, 0x5e, 0xd1, 0x2a, 0x18, 0xda, 0xef, 0x23, 0xed, 0x05, 0x01, 0xbe:
2019-11-24 09:27:24.753 Detail, Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2019-11-24 09:27:24.753 Detail, ZW_SEND_DATA delivered to Z-Wave stack
2019-11-24 09:27:24.772 Detail, Received: 0x01, 0x07, 0x00, 0x13, 0x01, 0x00, 0x00, 0x02, 0xe8
2019-11-24 09:27:24.772 Detail, ZW_SEND_DATA Request with callback ID 0x01 received (expected 0x01)
2019-11-24 09:27:24.838 Detail, Node019, Received: 0x01, 0x28, 0x00, 0x04, 0x00, 0x13, 0x22, 0x98, 0x81, 0xd8, 0x91, 0x3d, 0xff, 0xd3, 0x92, 0xcd, 0x69, 0xab, 0x87, 0x97, 0xb7, 0x79, 0x39, 0x0c, 0xff, 0x37, 0xf4, 0x35, 0x14, 0x3a, 0x10, 0x16, 0x5e, 0xc9, 0xea, 0x40, 0x2a, 0xb3, 0xe8, 0x91, 0x62, 0x4b
2019-11-24 09:27:24.838 Info, Raw: 0x98, 0x81, 0xd8, 0x91, 0x3d, 0xff, 0xd3, 0x92, 0xcd, 0x69, 0xab, 0x87, 0x97, 0xb7, 0x79, 0x39, 0x0c, 0xff, 0x37, 0xf4, 0x35, 0x14, 0x3a, 0x10, 0x16, 0x5e, 0xc9, 0xea, 0x40, 0x2a, 0xb3, 0xe8, 0x91, 0x62, 0x4b
2019-11-24 09:27:24.839 Detail, Node019, Decrypted Packet: 0x00, 0x63, 0x03, 0x06, 0x01, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a
2019-11-24 09:27:24.839 Detail,
2019-11-24 09:27:24.839 Info, Node019, User Code Packet is 10
2019-11-24 09:27:24.839 Detail, Node019, Refreshed Value: old value=6e82500, new value=a620cf40, type=raw
2019-11-24 09:27:24.839 Detail, Node019, Changes to this value are not verified
2019-11-24 09:27:24.839 Info, Node019, Received User Code Report from node 19 for User Code 6 (Occupied)
2019-11-24 09:27:24.839 Detail, Node019, Notification: ValueChanged