Okay here is how I automated my garage door and made my own ‘MyQ’ system in the wake of MyQ blocking all 3rd party apps. FWIW I have a Liftmaster 8500W but this should work on any model.
Background - What I tried first: The garage door can be activated by wireless remote or via Smart Control Panel. The wireless remotes use rolling codes and I could not find a way to duplicate these with a Broadlink RM3 (or similar). The connection between the Opener and the control panel is digital so you can’t just short the 2 wires that run between them to activate the door. I’ll describe how I got around this below.
Parts: I am linking what I bought below but please check your system for compatibility.
- Smart Control Panel - I a bought second one for this but you can use your existing one.
- Shelly Plus 1 - or similar. It needs to have the ability to de-couple the switch wire from the output (see below).
- Small gauge wire - I used 22GA. Better if you have multiple colors.
- 12V Power supply - I cut the end off of one that I had from an old modem I wasn’t using
- Contact Sensor - We will use this to detect if the garage door is open or closed.
- Soldering iron and Solder. Just a basic one will do.
The Design Concept:
To get around the Smart Control Panel signals being digital, I soldered 2 wires on either side of the button that you press to activate the garage door on the Control Panel. Note that there are 2 buttons on the circuit board that correspond with the large grey button you see from the outside. You can solder to either of these buttons. Also note that each button has 4 terminals. Use a multimeter to determine which ones to use. I found that either diagonal set would work. These wires go to the Shelly Plus 1 “I” “O” terminals (the relay output terminals). When the Shelly output is activated, it will short the Control Panel button, simulating a press, and will activate the garage door. We will deal with rules and further config on this below.
After your soldering is done, I would go ahead and wire the Control Panel into your opener. This is a second opener for me and I wired it in just like I did the first one. Please check your manual to confirm yours is the same as mine. I connected mine to the red and white terminals on the left side of the terminal block of the opener as shown below. The green/green-white wires go to Control Panel 1 and the blue/blue-white wires go to Control Panel 2.
Now we can control the garage door but we still need to be able to detect whether it’s open or closed. I attached the contact sensor to the door as shown below. This particular model has NO (normally open) and NC (normally closed) wires. We want to use the NO wires which means it ONLY outputs a signal when the sensor is closed. This will be more reliable than using NC. On my model the NO wires were black and green. I connected one to the SW terminal of the Shelly and the other to the L terminal.
Contact Sensor Installed
Overall Wiring Diagram
By default, the shelly will power the output terminal based on the switch wire. We don’t want this because we are using the switch terminal (the contact sensor) to detect if the garage is open or closed. When you power the Shelly up and add it to wifi, there is a setting in the Shelly app that allows you to decouple these 2.
Go ahead and install the Shelly binding and add Shelly to openHAB. Add the Thing and the Items. The relevant items that I used are the:
- relay output switch - We need to send a short pulse to this to simulate someone pressing the button to open/close the garage
- relay input switch - This goes to the contact sensor and detects whether the garage door is open or closed.
My rule for activating the garage door is below:
rule "Shelly Open/Close Garage" when Item MasterGarageDoorActivator received command then ShellyPlus1GarageDoor_RelayOutput.sendCommand(ON) Thread::sleep(1000) ShellyPlus1GarageDoor_RelayOutput.sendCommand(OFF) end
You can then use the input switch Item to send notifications when the garage door opens and closes and even display the garage door status on Main UI if desired.
Hope this helps!
PS: Wanted to give credit to this video. Really helped me in getting this done.