Sonoff Garage Door Opener

12,398

41

42

Published

Introduction: Sonoff Garage Door Opener

I have been playing around with the nodemcu devices for some time now but found these Sonoff devices about 6 months ago and have made a number of projects with them now. This project involved a modification so i thought it different than normal and thought i would share it.

My need was for a simple to add device that would integrate with my home automation system and would allow control of my garage door with out having to run additional wires to or from the ceiling unit or wall button.

After tracing the Sonoff circuit board I found this wouldn't be that hard with one of these cheap devices with a simple modification.

The Sonoff units take mains power at one end and delivers switched mains power at the other, internally they have a small transformer to run the ESP8266 device and a 10amp relay to switch the power.

My garage door like most has a low voltage pair of connectors that run to a button on the wall and when connected with a button press opens or closes the door, this is what i needed to make the Sonoff do.

Parts Needed:

SONOFF

Magnetic Contact

Case

Step 1: Starting With the Sonoff Device

These devices can be purchased from Aliexpress for a few dollars, looking at the circuit inside you can see the circuit that carries the mains power down from the input through the relay down to the output.

Step 2: Modification

A small cut using a dremel or hack saw is cut down the side of the relay disconnecting the relay from the mains power for both phase and neutral.

Step 3: Circuit Completion

Then a small run of solder is completed across the two points making the relay just close the end contracts.

At this point you should be sure to test this and confirm there is no connection between the mains and the non mains ends. If you don't test this or check this you could still be passing mains down to device which could cause damage or worse give you a big shock.

Step 4: Flashing the Sonoff With the EasyESP Image

There is plenty of information online to do this image replacement and it can be found in detail here:

https://www.letscontrolit.com/wiki/index.php/ESPEa...

https://rutg3r.com/sonoff-firmware-tutorial-to-esp...

Basically you need to connect a USB header device to the Sonoff header pins and reflash the ESP8266 with the new EasyESP image replacing the factory image. This turns the device into a device that will talk to your home automation system not just the phone app that comes with the Sonoff devices. There is a lot of information on line on doing this and dont worry if you flash it and it doesn't seem to work the first time as its very hard to break the device here as you can always reflash the device again and again to get it working. I have found the process to be very easy and reliable.

EasyESP is a great image to deploy, i use to write code for these nodemcu devices and spent hours doing this where i found using this image needed no coding skills at all and was all just configured in the web interface.

Step 5: Connecting the Contact Sensor

Next I purchase a small case and gland for the power cable plus a magnetic contact to detect when the door is open or closed. A 8mm hole was drilled in the end of the case which was a perfect size for the contacts metal cable end to fit snugly. I then soldered the two wires on the end two connections on the header holes. These are ground and GPIO14 pins which is where the unit was flashed earlier.

At this point i have also drilled a second hole for the relay contact wire to connect to the relay terminals and also installed a gland for the incoming power supply.

Step 6: Configuring the EasyESP Image

This step is where you power up the Sonoff device and it will appear as a ESP_0 access point which you connect to on a phone or tablet etc and configure it to connect to your home network. Once you have completed this you can configure it.

There are only a few places you need to configure the unit to enable this. Setup the devices the same as the images show and setup the rules as below as this is the part that presses the button for 1 second and also sends the MQTT so my home automation knows when the door is open or closed. You can remove the two on sensor#switch do rules if you dont want to publish to an MQTT server for OPENHAB.

RULES:

on System#Boot do
gpio,12,0 // Prevent relay turning on during boot endon

on relay1#switch do

if [relay1#switch]=1

timerSet,1,1 // 1 second timer

endon

on Rules#Timer=1 do

gpio,12,0 // Turn off relay

endon

on sensor#switch do

if [sensor#switch]=1

publish /house/garage/garagecontact,CLOSED

endon

on sensor#switch do

if [sensor#switch]=0

publish /house/garage/garagecontact,OPEN

endon

Step 7: OPENHAB Integration

I have integrated mine into my openhab setup but you can simply send the command:

HTTP://YOUR_SONOFF_IP/control?cmd=GPIO,12,1

My OPENHAB settings are as follows which work well, you will need to change this for your MQTT server etc.

Default Items:

Switch Garage_Button "Garage Door Button" (All) { autoupdate="false",http=">[ON:GET:http://YOUR_SONOFF_IP/control?cmd=GPIO,12,1:GO]" }

Contact GarageDoor2 "Garage Door Status3 [MAP(en.map):%s]" { mqtt="<[openpowermqtt:/house/garage/garagecontact:state:default]"}

Default SiteMAP:

Text item=GarageDoor2
Switch item=Garage_Button mappings=[ON="Go"]}

en.map file

CLOSED=Closed

OPEN=Open

Step 8: Mounting the Unit

My unit attaches to the top of my door opener, there is a power socket there already and i connect the terminals for the button and fit the sensor to the ceiling. The Magnet was hotglued to the top of the door opening unit. The magnetic switch has a large range (about 5cms) so it does not need to be real close to the sensor to active it.

If your door is different you can modify yours to suite and lengthening the cable etc to get a point that changes with the door opening or closing.

Share

    Recommendations

    • Clocks Contest

      Clocks Contest
    • Woodworking Contest

      Woodworking Contest
    • Oil Contest

      Oil Contest
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    2 Questions

    Hi

    Thank you for this instructable. Very interesting an I am in the process of planning to do this as well.
    I however can't figure out how you connect the device to the garage motor. I assume the red and black wires from the very first pic above must be connected to the garage motor somehow. Could you perhaps elaborate on this and provide additional pics? Thanks

    0

    it connects to the button terminals, it does not drive the motor just relays the button tomopen

    Hi. sorry if i missed something but these sonoff units do not have an 'input' so to speak.

    How do you connect the magnetic switch in order to give status feedback to the app / system....and presuming there is a way, can this hidden input be used with the original eWelink app.

    thanks

    0

    they have a spare pin that can be used please see pics

    42 Comments

    What app do you use on your iPhone to operate the garage door on/off button and the status of the door (open/close) ?

    1 reply

    I use openhab

    hey i think i have a better idea instead of cutting the traces on the board

    i do not have any sonoff basics myself but i have a similar relay device

    one of those quichip 433mhz RF controlled 120/220v relays

    they are set up the same way as the sonoff in terms of the relay

    in that there is no COM terminal available and that only one wire is switched and it is the N (neutral) wire that is not switched it just passes through

    only the L (hot) wire is switched ,the N is just used to power the transformer that powers the esp8266

    so what you do is this ,first use a polarized plug to wire to the mains side of the sonoff

    (small prong is the hot) ,now reverse the L and N ,so that the N wire is the switched wire instead of the L wire ,(check with a continuity checker to make sure that you have the L wire(small prong) connected to N terminal on the sonoff and vice versa

    now instead of the sonoff switching the L wire it will switch the N wire instead

    now on the garage door opener use a meter to test the 2 wires that go to the door bell opener button or test the 2 terminals they connect to , reverse the probes on your meter in DC mode so it read negative voltage to know which is + and which is - ,find which is+ and which is - ,now connect the another wire from the - terminal for the button to the N wire from your mains then you can connect the switched N wire from the sonoff to the +terminal for the button

    when the sonoff is activated in momentary mode it will connect the + wire from the button to N ,and since you already connected the - wire from the button to N it will complete the circuit

    this worked for me with the quiachip 433mhz 120/220v relay in momentary mode to open and close the door with a remote

    N is basically ground it connects to ground in the panel

    so you just connect the - wire from the openers door bell button to N you can still keep the button connected in parallel so it still works

    on the switched side of the sonoff you just connect the + of the door bell button to the L which is now a switched N wire

    6 replies

    @arossetti1976 Is this diagram correct, following your description?

    IMG_20180605_221531.jpg

    close but that would be disastrous no live wires go to the button circuit

    i edited it for you , wire it like this instead , also remember that the N terminal on the output side of the sonoff will always be hot so be careful

    sonoff edited circuit.png

    This could be potentially dangerous or at least buggy if something is back feeding the panel at all?

    thank you for the explanation and the diagram, I'll try to connect it tonight.
    One more question: would this modification to the wire connections work without the custom firmware?

    Yeah as long time as you can operate the switch it will work

    I’m sure that will also work yes, I like the sonoff devices as the sensor can also connect

    Well done. Just a question though. It is not clear to me why you cut the relay from the mains power. Is that because your garage door opener trigger contact is Low Voltage?

    9 replies

    yes most door openers use a low voltage loop to the wall button so I needed just a relay not mains supply

    there is no reason to cut the board or to solder the relay contacts

    you can do what you want without modding/ruining the board

    you just need to use a polarized plug and reverse the L and N on the mains input side of the sonoff and then connect a wire from the + door bell button terminal on the back of the opener to the terminal marked L on the load side of the sonoff , then connect a wire from the - door bell button terminal on the back of the opener to your main N

    make sure you test everything first and be sure to get all of the polarity right

    crude diagram below

    https://postimg.cc/image/6ze75hbi3/

    can you post the diagram again? I'm having trouble understanding your explanation.

    here is the original diagram once again and here is yours which i edited you should be able to see how it works now

    https://postimg.cc/image/6ze75hbi3/

    https://postimg.cc/image/gow8jic93/b55dbca4/

    be sure to use a meter and to test the polarity of the button wires and especially the 2 main wires just in case your house/outlet has the polarity mixed up , best way to do this is to put the black - probe in the GND prong female on the outlet then put the red + probe into both the other 2 female prong holes

    make sure you do not get it wrong ,you do not want to connect L to the opener button under any circumstance

    the button circuit is not a mains voltage loop where this will put mains to it which will not work.

    no no live goes to the button circuit

    N is essentially ground all N wires connect to ground in the main fuse/breaker panel , it is also sometimes called a return wire as in return to ground

    https://postimg.cc/image/gow8jic93/

    No it does not put mains voltage to the button circuit at all
    It just connects the - button wire to mains neutral which is essentially ground
    Then the + button wire is switched to or from neutral no L wire ever connects to the button circuit at all ,that would destroy the opener if it did
    This isn why you reverse the L and N on the input side of the sonoff the sonoff will still get power because polarity does not matter for powering the sonoff ,you reverse the L and N so you now only have a switched N wire
    Then you connect the + DC from the button circuit To the the switched N on the sonoff output so that switching with the sonoff is just connecting both the + and - wires from the button circuit to N which is just essentially ground

    thanx, I thought so but just wanted to make sure

    So in this example, GPIO 14 is 1 when the door is closed and 0 to indicate it's open, ie the sensor contacts are not in range? Also, GPIO 12 is controlling the output power signal to the low voltage garage door opener? I'm looking to do this project but wanted to make sure I understood what is happening first.