Raspberry Pi Garage Door Status/Control


(Jeff Lamb) #1

I have a Garage door opener and sensor connected via GPIO to a raspberry pi. I’ve written a few ways to open/close the garage door mostly involving making the open/close status available via HTTP and making a URL available to make it open and close (All in my internal network).

I’m looking for a way to have smartthings control the garage door opener.

Currently I have the open/closed status available using this code, I’m willing to switch this part out for a more integrated solution. https://github.com/rllynch/pi_garage_smartthings

I also have the the ability to open/close the garage door with alexa/echo by running this project which emulates a hue hub and calls a webhook when it gets a command. The webhook looks and if the thing calls open and the garage door is already open it won’t do anything… this works really well.

I’d like to have a single “Page” or “Device” which shows if the garage door is open and provides a virtual button or switch to open or close the garage door but I honestly have no clue where to start… can anyone point me in the right direction… I don’t mind doing some coding… just need an overall strategy.


Switch in simulator not switching
#2

See if this may be of use to you. You can make a virtual switch that can be tied to your open/close sensor mimic a garage door. I’m not a programmer but I think I get what you’re trying to accomplish :slight_smile:


(Jeff Lamb) #3

Here’s what I ended up doing.

First I used the below “URI Switch” device type to create a virtual switch in smart things that made the garage door open and close… I just hooked this up to my existing internal URL’s to open/close the garage door.

Next I used this “Virtual Garage Door” smart app to hook up to a simulated garage door opener device… this hooked up to my existing sensor device in smartthings and the newly created URL switch to create a working “Garage Door” device… All seems to be working well. I did have to change one of the .on() commands in the smart app to .off() to get it to work right.