I wanted to automate my garage doors, and ended up learning a lot in the process.
Connecting the garage door opener
My first goal was to be able to integrate my Liftmaster LM75EVK garage door openers with my Home automation system Home Assistant. Initially I wanted to keep it simple and use the existing controls that came with the garage door opener, which ran on the 433,92MHz frequency. This would prove more difficult than I would ever hope for, as emulating the exact signal for opening a garage door isn’t as easy as you would think. Also, even with a proper antenna on a raspberry pi, I was not successful every time in opening the door, because there’s simply no confirmation from the receiver that the signal was received.
So next up would be to try out a commercial solution. Cue Gogogate2. Seems easy enough right? A simple device, connected to the garage door opener and an app that communicates with the device locally. Turns out this device was not as advanced and simple to use as you would want it to be. My main issue was integration with the home automation system. Opening the garage door with the app was fine, but any integration through the web service running on the device was way too difficult. Mostly because it relied on cookies for the logged in session to allow commands, and they had to be renewed fairly often.
Alright, so that plan was discarded, and I went on to Zigbee. At this point I was majorly into zigbee with all the bulbs, switches, door sensors etc. that I was implementing, so I found the Aeotec garage door controller. Turns out, if your garage is more than 20 metres away from your house, and the mesh signal is blocked by two walls, it’s pretty unreliable to reach the controller.
My final idea was inspired by these two home tech hacker and savjee. With the help of these I was able to create what I believe to be the most reliable solution for controlling my garage door openers. Of course, this requires you to have some kind of wifi available in the garage, but I would assume that if you have read this far, you probably do.
Car presence
Now that I had a reliable solution for the garage door openers, I needed to resolve how to detect if a car came home and which car it was. I had a couple of ideas.
- Even if a person comes home, they don’t always want to have the garage door opened.
- Multiple people coming home would cause both doors to open, but they might be in the same car.
- Place an old phone in each car and trigger based on when the car with the specific phone comes home
- This was initially a good idea, until I realised that old phones, even set to save as much power as possible, still can’t stay on for maybe two or three days. You end up having an issue when the phone is not on after the weekend, and by then no longer triggers the door automations.
- This worked semi-reliably for a while, but I say semi-reliably because of a certain limitation with the BLE protocol. It doesn’t have a very long range, so garage door walls, car chassis and people block the signals. You then end up with a very sporadic solution and a garage door that opens and closes randomly as you back into the garage. This is not a great user experience.
- I finally took the step to start tinkering more with ESP based, low-cost, wifi microchips. This integrated well with home assistant and was pretty much an instant success. I ended up on this solution thanks to this entry Community Home Assistant.