Skip to main content
2022-02-18

Complex solutions to simple problems

2022-02-18

I wanted to automate my garage doors, and ended up learning a lot in the process.

So at home we have a simple garage, two garage doors and two cars. Most people are content with having a keyfob on their keys that can open and close the garage doors, and use that when either arriving home or leaving, but not me. I wanted to automate it, so that every time one of the cars came home, the designated door for that car opened automatically, and every time the car left it closed. Sounds simple enough right? Well it wasn’t. I’m sure there are commercial solutions out there that would solve this fairly easily, but where’s the fun in that?

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.

- Use my existing presence tracking where once a phone is on the wifi network, the garage door opens. This however creates a couple of challenges:
  • 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.
- Use bluetooth to detect when either the cars internal bluetooth, the old phones in the car or a combination of both arrived and left
  • 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.
- Use an ESP based microchip with esphome
  • 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.
So there you have it. My journey was long getting to where it is today, but in the process I not only ended up with a solution I’m happy with, I also learned a lot about this type of technology along the way. And I think that is the most important part of tinkering.
Written by Johnny Dalen