Ditching MyQ for OpenGarage - Open Source Garage Door Control
This posts details how I ditched Liftmaster MyQ and switched to a much better, completely selfhosted and local way of controlling my garage door with OpenGarage, and the problems I ran into with both solutions, and how I overcame them.
MyQ
In my garage I have a Chamberlain Liftmaster Garage door opener with MyQ connectivity. The garage door opener connects to the internet, and then you can control it remotely via their app. The app doesn't work well, and doesn't allow for good notifications. However, for a long time now most people have been using third party integrations in HomeAssistant or HomeBridge to get the garage door into their home automation setup. When this worked, it was okay at best. There is no local control, it all has to go out over the internet which isn't ideal, and their service wasn't very reliable, which meant you could get notifications hours after the door was opened/closed or just never get them. Most of the time it worked okay enough that it wasn't the top priority for me to improve or replace. Most of the time I open and close the door with actual garage door opener buttons anyway, so the function of the door wasn't really impacted when their service was having problems once every few months. Its worth noting that Liftmaster does not support third parties using their API for the App. People reverse engineered it, and that's how we were all using it.
There WAS a product you could connect to the door opener to get full local control, a MyQ HomeKit bridge. Apple HomeKit requires everything work locally, and HomeAssistant can talk to HomeKit devices. So once you setup your door, you could get completely instant control and notifications to your garage door and gate etc. The problem is that the device was over $100, and it still required a MyQ account to setup and configure. I didn't really want to spend $100+ on a half-baked solution even if it would make the experience better. The reviews for the device were not great either.
Then, some time a few weeks ago in October of 2023, I noticed that my garage door and gate wouldn't give me notifications, and control had completely stopped via HomeAssistant. I went on the forums, and found the ever-growing list of people complaining. Liftmaster had completely blocked off their API for third party services. You can read all about it here
Having read the posts, and being frustrated with no fix, I decided to bite the bullet and buy the overpriced $100 HomeKit bridge so I could get it to work locally. One problem though, they also pulled the plug on that product... At the time of writing, the only ones available are used/open box ones on eBay selling for $200+ which is crazy. Since they already ditched the API access, who knows how long these will be supported, and when they pull the plug you will never be able to re-configure the device again. Not worth it.
The Alternatives
The Liftmaster garage door openers don't just use a 2 wire dumb button like older garage door openers, they actually have a serial interface that runs over the wires. This means you can't just plug in any controllable relay and control the door. You need something that can talk to the door opener and bypass the security.
There are essentially 2 options to go forward if you want something that you can just order and install with 100% local access, OpenGarage and Ratgdo (If you know of more, tell me and I'll add them!)
OpenGarage has been around for a while and uses ultrasonic sensors to tell if your door is open or closed, and requires an add-on adapter if you plan to use it with a newer Liftmaster Security 2.0 garage door opener. It requires some configuration and measuring of your door height, but promises complete local control. It looks like quite a mature product at this point, which makes me think that all the bugs should be ironed out, and it should just work forever.
Ratdgo on the other hand requires zero measuring as it manages to get the door status directly from the door opener, and it does not require an adapter for Security 2.0. Its also cheaper. One downside is that it doesn't come with a case, so you'd have to 3D print one, improvise or just mount it without a case.
The main problem is that Ratgdo is on backorder. So I went ahead and ordered both, and figured I would just use the first one that comes, and switch to the other if needed. I also have a Liftmaster gate, so my hopes are that the spare device can be used for that in the future.
OpenGarage
My OpenGarage arrived in a few days, so I got to setting it up right away. Here are some photos of the final install. Its mounted far enough forward that the ultrasonic sensors on the device can detect the door and report the status. This means you don't need to mount a magnetic sensor anywhere. However, you can add a magnetic sensor if you want and its supported to use either, or both types of sensors.
The white device is the OpenGarage itself, which connects to the Security adapter next to it, and from there you run 2 wires to your garage door.
I added the 2 new wires into the connection points for the existing button, leaving it operable
If I'm being honest, my initial impressions were not super high. The Security 2.0 Adapter is actually just a modified Liftmaster button. I was not expecting a button with extra wires coming out of it needing to be mounted next to the device, with the button still being operational too. But, who am I really kidding? My garage isn't the cleanest place in the world, and if this works well, I'll be thrilled. If I was expecting that from the get-go, I wouldn't even count this as a negative, but it sure would be a huge positive if OpenGarage could be a single case with no extras. But anyway, it was never mentioned and there are no pictures, so it left me confused when opening it up. Even more so because the modified button or adapter, still includes the default instructions that come with it. Of course looking back, these need to just be thrown away. But for a moment I couldn't figure out if I should actually be following them or not since it really wasn't clear if these instructions were from Liftmaster or OpenGarage (Notice zero branding on this instruction slip? Weird! Thats why I thought MAYBE it was from OpenGarage)
The actual instructions are printed on the box and are very simple.
I plugged it in on my desk and went through the very easy wireless setup to get it on the network. Something I never took a screenshot of that confused me was that instead of my usual 3 wireless SSID's showing up on the selection screen, I had 12 SSID's being shown, each of my SSID's 4 times. This is probably because I have 4 access points, however never in my life have I seen a device actually show them separately. I was worried that if I chose the "wrong" SSID, it would forever be connected to the wrong AP. In the end, it did not matter and my Ruckus wireless AP's did what they are supposed to do and pushed it over to the closer AP. Just a weird experience though, so be ready for that.
I added the HomeAssistant integration, and with about 3 clicks, the garage door was in HomeAssistant. Now, control of my garage door is 100% local and not reliant on the internet. The setup into HA could not be easier.
To get it setup correctly, in the UI of OpenGarage you must set a threshold for the door. This distance should be slightly GREATER than the distance from OpenGarage to the door when its open. The default was 50, which turned out to work fine for me and where I mounted it. Unsure if this was something they pre-set as it works for most people, or I just got lucky with positioning the device. It also has the ability to report if a car is under it, but for me this feature is useless so I turned it off.
It would be really nice if this page had a diagram or simple instructions for setting these values. If you click the User Manual button, it takes you to GitHub. So, if you have no internet at the time of adjusting it, you can't view the user manual. Some basic hints in the UI would be a plus. I would also love a way to change the measurements to inches, as all my tape measures are in inches.
One of the best features about this whole setup is that while this device does have a speaker and can give an alarm when opening and closing remotely, you can turn it off. The MyQ service would not let you turn it off, which was frustrating. I do not need or want the delay and alarm when closing the door.
There are more advanced settings you can change also
Frustratingly, some of these seem to be completely undocumented. I have no idea the differences between Median or Consensus and the User Guide doesn't mention it at all. I just left it stock which I assume is the correct setting, but who knows?
With it all setup, added to HomeAssistant and Apple Home, it was working great. I tested it a few times and it worked super fast since there was no reliant on going all the way out to the internet and back every time.
The next day, I did run into a problem. A Raccoon was outside and approaching the cat flap to get into the garage, and it didn't want it to go in, but I also had no shoes on to go outside and chase it. So I got my phone out and hit the open button on the garage door to scare it away, which it did. I hit the button again to stop the door, and another time to close it.
This is when I noticed the problem. The garage door was now in the state "Opening" forever in HA (HomeAssistant) and Apple Home, despite being closed.
The sensors on OpenGarage should be telling it the position, so this confused me. I logged into the devices WebUI and it reported that it was in fact, closed. But why did HA not know that?
I will not pretend I know the logic of how this works, but this is what it seems like its doing. When I first hit the button to open, it sent the garage correctly into the "Opening" status, and HA then started to wait for the signal from OpenGarage when the door hits the ultrasonic sensors (Which never came)
When I hit the button a second time to stop the door, HA and OpenGarage then assume its closing, as they have no knowledge of a partial or stopped door. Because the door is not blocking the ultrasonic sensors, they think its already closed.
Now when I hit the button a third time to really close it, they assume its OPENING. And HA sits there and waits for OpenGarage to give the signal when it hits the ultrasonic sensors, but of course that will never come, as the door is closed.
In my opinion, this is an oversight in the firmware or in the HA integration. It should just poll OpenGarage every ~30 seconds to confirm the REAL status of the door, or something similar. After all, I could have opened or closed the door manually with the emergency release. Do that once, and HA/OpenGarage will be out of whack.
I did open an issue on GitHub, but I've not heard back yet. What I did do in the meantime is make an automation in HA to fix it, for when the garage door is "Opening" for more than 25 seconds, reload the config entry. This makes it re-poll OpenGarage, and fixes the status
With that out the way, I figured I was in the home stretch and my garage door would be perfect forever. But I was sitting at my desk, when I got a notification that the garage door had closed, and then opened. What? No it hadn't. Looking at my cameras, the garage door was in the same position the entire time, open.
I logged into the device and looked at the distance readings from the ultrasonic sensor and they were all over the place, sometimes reporting 68cm which is passed the distance I set for the door.
I went out and checked for a problem I thought could happen, a cat on the garage door. but, unlike in the picture below, there was no cat.
And, even if there was, how could the sensor report a higher value? If a cat walks in front, it should be lower, meaning the door would still be open.
I got a shovel out and started playing with putting it in front of the sensor, and I could not repeat the problem. This is where I thought maybe I should be changing it from Median or Consensus? I don't know! If there was documentation for that I would know.
I re-measured the door and set a tighter threshold, figuring something could have thrown off the sensors like a bug, or something. It was steady for a few hours, and then it started to throw bad notifications again! Super frustrating, as too much of this and you lose trust in your notifications.
I again went outside and played with it and looked around, and eventually looked in HA and the distance reports. I could see where I put the shovel, and I could see how the distance was constantly changing for some reason.
That is when I started reading forums and posts online, and saw a few people with issues maybe similar, but not quite the same. Their fix was a new USB power supply. So, I got a known good USB power supply, an old Apple iPad 12w charger. I plugged it in, and the distance measurements are now rock solid, with no false notifications!
The adapter I had initially used was an old, but reliable Samsung USB charger for a digital camera that puts out 500ma. Its a trusted brand for USB chargers and in actual fact, will happily put out 1a with no problem. The forums for OpenGarage state that 500ma should be fine, so this got me confused.
I checked how much power OpenGarage was actually using, and it was well under 500ma, it PEAKED at just 370ma (Ignore the USB PSU here, its different!)
So why did swapping the adapter make a difference? OpenGarage wants 5v and just 370ma, and both can do that. Well, the difference is that the charger I swapped it for, the Apple charger, actually outputs 5.2v.
So, I started looking at the cable. With my 500ma Samsung charger, pulling a 500ma load, the voltage is 5v
If I plug a good quality Micro USB cable in and apply the same load, there is a small amount of loss, which is expected. In this case, just 0.05v. This cable is a 6ft Anker branded cable.
But, now the problem. If I plug in the included MicroUSB cable that comes with the OpenGarage Device in and apply the same load, the voltage drops all the way down to 4.5v!
Clearly, this is causing the instability with the sensors. And bumping the voltage up compensates for the voltage loss on this terrible cable.
I figured in this case even though its "fixed", its not really fixed until that terrible cable is in the trash, but again, a problem. The Micro USB connector on the included cable is long, weirdly long. None of my other cables have a connector this long. Even in the above picture in the multimeter, you can see it sticking out a bunch because of how long it is. Here it is compared to the Anker cable we tester earlier.
I don't know if the OpenGarage case is designed around this non-standard USB connector, or this cable was chosen because of it, or its just double bad luck on the design, but the USB port in OpenGarage is recessed too far into the case to work with any other standard Micro USB cable.
At this point, I have it all configured and working with the bad cable, and my ratgdo has not yet shown up, so I don't think I would remove it all and swap it out. But, I will probably 3D print a new case with the USB port more exposed so I can use a standard cable, and possibly to include the mounting of the "Security Adapter" AKA, Button.
Overall, after getting this all figured out, its a great system. Its just a real shame I seem to have run into 2 very clumsy bugs, in such a mature product! That does make me wonder what other issues could be out there waiting for me, but I hope none, as I really do love OpenGarage and the idea around it. I love the idea now that I could swap in ANY garage door opener, and not even have to re-configure my automations, it would just work.
Hopefully this was a useful article. More will come when I make my gate opener not rely on MyQ.