I’m excited to be finally posting this. This is mostly based on the original post by @nalipaz, but then added some sensors for door codes that I found on a post by @hejman08. Then a lot of templating help from @firstof9 @petro, I think I’ve gotten something that will be useful for many people with Schlage Locks. I believe that most if not all of this will work with Yale or other zwave locks as well, but of course cannot confirm.

I have two Schlage BE469 deadbolts and an FE599 lock. The FE599 is a bit different. Setting and clearing of codes works just great though, the door unlock notification is a bit flaky, but generally works as well.

I tried to put as many comments as possible to make it clear on what to change if you wanted to name your locks differently. Additionally, if you only have one deadbolt, it’s fairly obvious what to remove and what to keep.

I don’t have a need for 30 codes, so I broke it down to 18 (18 also happens to be the max codes for the FE599)

I wanted to have an area for Family codes, one for workers, and then I set up 3 codes as one time use. A random code will be set and will automatically clear when used. Not sure how often I’ll actually use it , but it was a fun lesson. Also I wanted to be notified who unlocked a door. I made almost no changes to the scheduled codes. This allows you to set a start and end date for a code, and it will automatically clear when the time is up. That’s all @nalipaz.

The only thing I’d like to come back to maybe in the future would the the scheduled, reoccurring on a specific day, like, maybe a code works M-F only from 8am-5pm, or just on Tuesdays, etc. And maybe the option to disable a code when people are home. These don’t seem too crazy to implement, just more than I wanted to get into at the moment.

https://github.com/ptdalen/home-assistant/blob/master/packages/door_locks.yaml