I was inspired by cozdabuch’s sliding door lock solution here. I liked what he did but I wanted something a bit different that integrated into smart things as an actual lock.
This post is just to demonstrate my prototype stage and gather suggestions if the community has any. I will post circuit schematics, wiring diagrams, and code later. Right now I just have it bread boarded on my bench.
I will also need to post my bill of materials later as I am a new user and can only put 2 links in the post.
For the SmartThings side, I created a custom device handler that implements the Lock, Lock Codes, Refresh, and Actuator capabilities. I am using HubActions to send HTTP requests to the Raspberry Pi which controls the lock. The only downside of this is that using the keypad or the buttons to change the lock state can take a minute to show up in the SmartThings app since it needs to poll at 1 minute. Locking/Unlocking shows up in the app immediately because I can put the required data into the HTTP responses. At any rate, this gives the familiar lock page in the SmartThings app as follows.
Since it implements the Lock Codes capability, it works with the RboyApps lock user manager smart app. When codes are sent to the Pi, it stores the codes on the file system for later use. The pi sends status to the device handler when the keypad is used so the Rboy smartapp can send notifications of who unlocked a door via the keypad.
Here are the high level general functions that are on the PI:
- HTTP server to interact with hub (lock/unlock command, lock state, etc.)
- GPIO functionality to interface with lock, inside buttons, and keypad
- Storage of user codes from the Rboy smart app
- Lock state management
Finally, here is a video of my bread boarded prototype. Once again, suggestions are welcome.