[Release] Virtual Garage Door App/Driver (ST Port)

There was a thread about this over in the Broken Code section, but I wanted to post this here along with instructions for any newcomers.

This is a port of pmckinnon's ST app and driver. It is for building your own smart garage door from contact sensors and a dry contact switch. A common setup is a Fortrezz MIMO connected to your existing garage door opener, and a SmartThings multipurpose sensor. It's important for this app that your sensor has both acceleration and contact functions (typically you would configure it to detect tilt and discard the magnetic trigger).

I've made the app into a parent/child app just to keep things cleaner if you have more than one garage door. @stephack did the heavy lifting on making the device driver work with the Hubitat dashboard (though I think we're all hoping a future dashboard update allows us to remove those changes). For the record, I'm only slapping my name on this code so that others don't get bothered about code I ported.

To get started, first install the Virtual Garage Door DTH:

Then create a virtual garage door for each of your doors using the Virtual Garage Door devicetype.

Next, install the Garage Door Manager parent and child apps:

Create a child for each of your doors.
For the actuator, select the electronic switch that triggers your opener (the MIMO in my example).
For the Contact and Acceleration Sensor, choose the multipurpose sensor attached to your door. You should select the same device for both entries.
For the Virtual Garage Door Device, select the virtual door that you created above.

You'll have to open and close the door a time or two to get everything synced up.

One tip, I usually name my physical devices (the sensor and the actuator) with a leading ~ to make those devices appear at the bottom of the device list and to remind me not to use them in other automations/dashboards.


Questions about the needed devices to integrate this into to my hubitat.

  1. contact sensor, does this use the contact open closed or is the contact sensor set to garage mode. if it uses the contact any suggestions on device and mounting to get magnet to work. I assume the current samsung window/door sensor is the correct choice if using garage door mode.

  2. I have two garage doors. can i use 1 mimo2+ and support the two doors?

  1. The app is written assuming you're using a samsung multipurpose sensor (or one that works similarly). Set the sensor to garage mode, and then the built-in tilt sensor will report the contact/door open/closed. You don't need the magnet in that case. I place the sensor as high as possible on the door because the top panel on the door is the first one to tilt, so the door should report open even if it's only open a little bit.

  2. I have the same 2-door setup, and using the MIMO2+ is exactly why I ported/fixed that driver and split this app into parent/child. I have everything wired up and working as a proof-of-concept at home, but it's fair to warn you that I won't have it wired up to the actual opener until this weekend (didn't want my doors opening and closing while developing/testing). I'm fairly confident everything works as expected at this point, though.

cool. I already have said devices in my cart at amazon. just have to press the button and wait until. ummm monday.. unless I pay for one day :>

I struggled at first to make this work using my MimoLite and Ecolink Tilt sensor as it did not have the "acceleration" attribute. This combination worked well for years in my previous SmartThings setup using the Rboy Garage Door Manager app.

I fortunately had a SmartThings Multisensor V4 that, once I put a fresh battery in it, provided all the needed attributes that your app needed to function. Even the Dashboard tile works great!

Thank you very much peng1can!

Glad it's working. I got everything built and assembled and tested when I moved into my new house, but the garage has been too full for me to get to actually use the app myself!

Anyone have status sync issues when using both actual garage door openers and button controllers to open and close the garage door? The Dashboard tile and the virtual garage door attributes get out of sync sometimes and show the door status as opposite of what the actual garage door state is.

Are there any logs I can look at or upload here to help in the troubleshooting?

Thank you!

I just switched over from st yesterday. I spent all last night moving over my devices. I ran a similar smart app thru st that gave the option to turn off the switch after a second or two. I am using a st multi purpose sensor for the tilt sensor, and a st smart switch for the switch. I built my own relay using 12vdc to close the contacts on the garage opener. The switch is turned on sending 12vdc to the NO relay and closing it simulating a wall switch push. Using that app it would also turn off the switch to open back up that relay after two seconds. Is there a way to do the same thing using this app? Thanks for the help in advance.

When you create a Virtual Switch, you have the option of turning it off after some time.

ST "simulated..." = Hubitat's "virtual..."

So I would create a virtual switch using the st switch then use the virtual switch instead of the actual switch in the garage door app?

There has been discussion about a DIY Garage Door App.. one that 'combines' two physical devices.

I found this discussion:

there could easily be more...

I have this code installed and am using a smartthings outlet to turn on a 12 volt relay to close the contacts on the garage door opener simulating a push of the opener button. I have the app up and running, and it all seems to work ok except for one part. I can not figure out how to turn the outlet off after a few seconds automatically after turning it on. Since the outlet is staying on I have to manually go in and turn the outlet off before I can cycle the door again. Any idea how to fix this?

Please see this thread: