[RELEASE] Virtual Garage Door Opener/Controller with Relays and Contact/Tilt/Door Sensors

Virtual Garage Door Manager and Controller

On overwhelming requests from users: This solution allows you to build your own custom/bespoke Garage Door Opener using a Relay and a Door Open/Close sensor or a Tilt sensor and optionally integrate other sensors/controls in to your Virtual Garage Door Controller. It can also work with Gates, Sliding doors / Patio doors to detect if it’s partially open or closed.

Key features of this solution:

  1. Configure and automatically install up to 5 Virtual Garage Doors Controllers
    • (Required) Use a relay/momentary and door/window/contact/tilt sensor to create a virtual garage door controller
    • (Optional) Use dual contact sensors to detect if Gate / Sliding door is partially open/closed
    • (Optional) Separate Open/Close relays for controllers with Open/Close/Stop buttons
    • (Optional) Use multiple switch toggles to open/close the garage doors remotely
    • (Optional) Use multiple button toggles to open/close the garage doors remotely
    • (Optional) Ring a chime/alert device when the door is being opened/closed
    • (Optional) Movement/acceleration sensor to detect when the door is operated physically
  2. Open/Close the garage door remotely using your SmartThings mobile app
  3. Report the garage door status (open, opening, closed, closing or unknown)
  4. Vacation mode (all controls are disabled)
  5. Allows SmartApps to create use cases and automations for your garage door (e.g. Garage Door Open/Close Automatically on Arrival/Departure
  6. Custom commands to use with CoRE/WebCoRE
    • enableVacation (enable vacation mode)
    • disableVacation (disable vacation mode)

You can find detailed step by step installation instructions here

Screenshot 2020-09-28 at 8.27.16 PM IMG_7001

Classic App:

If you want to your garage doors to be open/close automatically when people arrive/leave check out the Garage Door Open/Close Automatically SmartApp. It allows you to select individual doors to open/close when people arrive or leave. It also has the ability to check if a Garage Door was left open (e.g. after arriving or opening manually) for a predetermined period of time and then close it automatically.

A big thank you to all our users and testers for your feedback and suggestions. If you have any feature requests please feel free to send them in to us


  • The relay on/off interval is about 1 second, if it’s taking longer than that it indicates trouble with your mesh (zigbee/zwave) or communication with your relay. Typical things to look at, the device should be no further than about 20-30ft from the nearest repeater. Reboot the hub and do a Z-Wave repair. If you’re using a WiFi relay check for network delays. Check you internet connection as the solution runs in the ST cloud.
  • This is does not create a UL compliant integrated garage door controller like the Linear or GoControl devices which are safer and more reliable
  • The acceleration sensor is used to detect when the garage door is being operated physically (by force using an external button not connected to SmartThings)

Check out these other SmartApps

[RELEASE] Door Chimes and Notifications for Doorbells and Sensors

[RELEASE] Security System: Intruder Alert with Actions

This SmartApp and device type handler is available on the RBoy Apps Server. Refer to our website or facebook page below to get access to the server.

Visit our Facebook page for updates on new apps and to get Access to ALL our Premium Apps and Server. http://www.facebook.com/RBoySTApps

© RBoy Apps


Folks have asked for examples of devices that can be used to build this custom garage door controller.

Dry Contact Relays

Qubino Flush Relay


ZooZ Zen16 Multi Relay

Vision Micro Switch

Garage Door Tilt Sensors

EcoLink Tilt Sensor

Monoprice Garage Door Sensor

Samsung SmartThings Multipurpose Sensor

Door/Window Sensors (Mounted or Recessed)

Monoprice 15268

Monoprice 15270

Monoprice 24859



Optional Accessories


Toggle Switches

Toggle Buttons

These are just examples, most of these components are fairly cheap. Maybe you just have some older components lying around or can be sourced for multiple places

  • Monoprice has fewer options but you can find deals running on these products from time to time
  • @TheSmartestHouse has an excellent source of a wide range of quality products
1 Like

Would I be able to use your setup with the following. I do have two Ecolink tilt sensors one on each garage.
Here is the basic setup.
I have two Garage doors
Parts needed:

1 Dual Channel Smart Plug Inovelli works great as it has a seconds timer
2 xcell AC 110V H3Y-2 Time Delay Relay Solid State Timer 0-60S DPDT w Socket. Link to relays
Two 120 volt plugs with wire to feed the relays
Two or 4 conductor wire depending on how many doors since I have two doors four conductor.
Rember if one door use one of each item.

Now the crust of it. The object of my project was to open each door by activating the Smart plug. The Smart plug feeds the relay and the relay goes to the two switch terminals on the garage door opener. Now the Smart plug when activated stays on only 1 second enough to activate the relay. The relay goes on and has a built in timer that once makes contact turns off after 1 second.

AS other people have mentioned the timer in the relay isn’t necessary as the garage door opener only takes a momentary switch. But being very cautious I added the timer. To be honest these relays were cheap, and you can get them even cheaper. So even if I turned off the timer it would still be a worth while project. If you need more detail, let me know.

1 Like

You could use a momentary switch instead of a relay but I haven’t come across any.

The Inovelli Smart Plug Dual has a built in timer, so I have mine set for 1 second, so essentially it is a momentary switch.

1 Like

Great, you should be able to use that as well instead of the Relay

NO Joy, I tried to save when I entered everything. I entered the garage name, the Open / Close sensor, and the switch which is the Inovelli Dual channel outlet. I get an error. Below are the screenshots. Help would be appreciated. My setup flowchart is also below.

Thanks for this!
It’d be awesome to support the acceleration sensing of the Samsung multi-sensor to more accurately/quickly report the closing/opening state.

The switch doesn’t expose itself as a relay in SmartThing, if you have a custom device handler for your switch, just add the line

capability “Relay Switch”

to the your device handler and it should show up as a Relay in SmartThings.

I tried, take a look at this screenshot. As you see I added it but get errors on saving.

It appears to be a typo, you’ve got some stray/unprintable character in that line somewhere is what the error message is saying. Also notice how the line is black and the rest of the capabilities are in red. Try typing it manually

OK it now shows, but still not going to work. The problem is the Inovelli dual smart plug has a Parent switch and two child switches. So the only thing shows is the Parent. I need the children to show, other wise both doors open together.

Not sure about how that handler works, does it create separate devices for the child switches or just the parent? If this is a parent child type device handler you should add the capability to the child handler so the children show up as the relay switches.

It creates a Parent Master then two child channels. Below is a screenshot.

Maybe you need to exclude and repair your device, when it creates the children it would have used the capabilities of the then parent device.

I’m putting out this poll to understand the different types of relay devices folks are using and how they show up in SmartThings so we can improve the solution.

Do you relay devices show up as “switches” or “relay switches” in SmartThings

  • Switch
  • Relay Switch

0 voters

No this is a modified version of the DTH provided by SmartThings. The original version did not allow naming of each channel. That was tried. Any ideas would be helpful. Here is the DTH I am using.

On mine the only way I see the child is as a Toggle Switch.

That’s just a switch.

Did you try excluding and repairing it after making the DTH modifications.

Yes, all that shows is the Parent in your App.