OpenGarage - open-source Wifi garage opener

I mentioned a couple months ago in the other thread that I purchased one of these OpenGarage devices from their online store . I haven’t seen anyone using one of these but wanted to say they work great! I spent the past few months experimenting with it as well as writing a Home Assistant component to support it.

Some features I like:

  • Cost. I bought my first one for $50, and ended up building another for my second garage for around $10… These are ESP8266 based, so it’s pretty easy to do for a DIY enthusiast.
  • Local. This operates on your local Wifi network, and doesn’t require a cloud server. Thus - you won’t have to worry about a vendor like Garadget shutting you off :slight_smile:
  • Distance Sensor. Open/Close status is determined by a distance sensor. In addition to door status, this also allows you to create a sensor in HA that can tell if your vehicle is in the garage or not.

Here is a pic of one I build (Nodemcu, 5v relay, HC-SR04 distance sensor).

Mounted in garage:

Here is the one you buy for $50 (much cleaner and prettier looking):

Finally, I wrote a new cover platform for OpenGarage, and this will be supported starting with 0.44 release of Home Assistant. It’s easy to setup, and you can create templates that will determine if your car is present when the door is closed.



Would you be willing to write/post a build tutorial?


Possibly - if there is interest. Someone wrote a writeup on building one with a Wemos D1 on the OG forum. The one I built is a lot easier because I didn’t make any firmware changes.

1 Like


I think I read that one. I am all about DIY but don’t always have the time for extremely complex projects​ especially when a cheap alternative is available. There has been a lot of forum discussion about good GD controllers so if you did put this together I am sure it would be greatly appreciated and valued. My brother in-law currently has one of the Go Control devices which doesn’t easily adopt into OZW. At least last time I checked. He currently uses a vera for zwave integration. I currently have a pi 2 running an instance of HA in my garage and use API calls to control a relay. It also has a pi cam. I then use a zwave tilt sensor for status which connects to OZW in another HA instance on my home server. It is very reliable but a bit much. Thanks for your contributions!!

Yeah, I hear you. I originally looked at the zwave option you described but saw it wasn’t very straightforward with HA and OZW. After going down the zwave thermostat route, and seeing how quirky that was, I decided to try something else.
I’ll see if I can write up a guide. Once you have the parts, these things just plug into a mini breadboard without any soldering. It takes me about 10 min to assemble one.


Nice that sounds great!! Here is my current garage layout…

Thanks again!!

Does your relay module trigger with either voltage or ground? I just got some and they trigger either way so I’m having trouble getting it to work.

I’m using these Keyes 5V relays. According to the stock OpenGarage firmware, this is connected to GPIO 15 (NodeMCU pin D8), and is setup to trigger on ground (LOW)

I had to add a transistor. I got it working.

@PtP Although not exactly a guide, here is the wiring diagram that I just created for how I made mine.

This picture below is for the NodeMCU v2 board. If you have the newer v3 board, see @rufusmccoot’s diagram here.

There is no soldering involved to put this together. I used some needle-nose pliers to bend the Relay signal pin outwards, and also bend the the VCC pin upwards on the motion sensor. Other than that, you just plug the items into the breadboard on the correct holes, and you are done. Assembles in about 5 minutes. I mounted my breadboard on a piece of wood that I drilled into a joist on my garage ceiling.

Note: The buzzer is not required (it isn’t shown in my first picture, but I have since added it.) The buzzer gives feedback when the unit is turned on and it will also beep 5 times when the garage is about to open. This can be configured in the Settings, but I found that the beeping is very helpful to give someone warning if they are in the garage.

The build above was built using the following materials:
NodeMcu 1.0 / v2 revision (Amazon, AliExpress)
HC-SR04 distance sensor (Amazon, AliExpress)
5v Relay (Gearbest)
9012 buzzer (ebay)
Mini Breadboard (Amazon)
M-F wires/Jumper wires (Already had them, you get some in the breadboard kit above if you don’t have any).

If you don’t mind waiting 2-3 weeks, you can order the items from China and get most for $1/each.

See post 2 items below for software instructions for NodeMcu.



This is great! Was there any programming/firmware involved besides network creds?

On the software side, you’ll flash the OpenGarage firmware 1.05 to your NodeMcu. I used the nodemcu-flasher to do mine. After you do that, you can follow their YouTube video for instruction on how to setup your device.

1 Like

Thank you very much for your time and commitment to HA!

When I attempt to flash the OG firmware 1.0.5 I get stuck in a bootloop. Same with 1.0.4. So I try 1.0.1, can connect to and tell it to hop onto my WiFi, aaaaaand…bootloop when it attempts to reboot to join my WiFi.

Any ideas? I even bought another Nodemcu module in case the first one was bad, but no dice. I’m obtaining the firmware from their Github, as you linked.

Do you have everything plugged in? (Distance sensor) I feel like this happened to me when I flashed it with nothing connected.

Thanks for the reply. I have the distance sensor and relay plugged in. Buzzer’s still on its way from China but I don’t think that’s gonna make or break it. Maybe I should throw a small resistor in its place to be sure.

I have also tried it with the NodeMCU all by itself just in case any other component was screwing me up and I get the exact same behavior.

You were able to get it working without the buzzer, right? I thought I read that in the thread.

Yes, the buzzer isn’t required. Are you able to see any error message in the serial output?

Should I use ESPlorer IDE to try to read the from the serial bus? If so I’m just getting stuff like this:

̉×F 8¸�·‰:))DM!èä…

I might be doing this wrong lol.

I’m not familiar with ESPlorer, but make sure you have the baud rate set to 115200. The data you posted would happen if the baud is not correct. That said, I’m not even sure if the firmware from OpenGarage has debug turned on, but I think it does.

Thanks for your help. I’m able to see now “rst cause:2, boot mode:(3,6)”. Some Googling is telling me my power source might be the problem, though I’ve tried various USB cables and USB ports and laptops.

I was planning on powering this thing from an old cell phone charger. What do you use?

Edit: I’ll add that I’ve also tried with a wall adapter (again, old phone charger) and I seem to be getting the same reboot cycle but of course I can’t get diagnostic information since I’m not plugged into my PC and can’t read the bus.

Edit 2: Wait, should i not be powering this thing via USB and applying power via pins instead?