Local Linkmaster/Chamberlain/Any? control with Esphome and a spare remote

I personally have not been burned by the MyQ fiasco, but this is a small project that could help those who were. I do have a Liftmaster door opener but never invested in MyQ because of the feedback I’ve seen about the service.

Disclaimer: I am not an electrical engineer. I know enough to get this working but do not know enough to know if I’m doing this 100% correct. If there is any anyone who sees something that I can do better please reach out and we can work together to help everyone who wishes to use this.

I had a spare Liftmaster remote and wanted to see if I could use an ESP device to “press” a button on the remote. Remotes are cheap and so are ESP devices so anyone should be able to get this up fairly quickly.

I’m using an ESP8266 for this, you could use a D1Mini or ESP32, you’d just have to update the pins being used. Basically, what I’ve done is connected 5 wires to the solder points of the remote and connected them to the pins on the ESP. I’ve removed the battery from the remote and am powering it from the ESP so that there is a common ground and reference for “pushing” buttons. The ESP itself is powered via USB.

Using the remote like this does not break it in the event I want to dismantle this project. It also means that I don’t need to worry about protocols, rolling codes or encryption because that is handled by the remote. Obstruction sensors are handled the opener itself, in fact there is no modification to the opener wiring required whatsoever. You can also control many openers from one device, it is only limited by the remote you are using.

Unfortunately the remote I have does not control the openers lights so I was unable to integrate that into this project.

I am also using Aqara contact sensors to detect if the doors are open or closed.

This could be used for any remote, as long as you can work out powering it via the ESP. I’m thinking of doing this to my Nice remote which uses rolling codes to control my awning.

  1. Remote + to ESP 3.3V
  2. Remote - to ESP Ground
  3. Remote SW4 to D5 (big button)
  4. Remote SW2 to D6
  5. Remote SW1 to D7

On the bottom you can see the large plane where the - (white wire) is soldered. This is the negative from the battery and connected to each button. The wire is soldered where the - battery contact comes through the board. I’ve soldered the blue wire to the contact where the + comes through the board.
The other, non negative side of the buttons are also soldered to where the buttons contacts come through the board.


After the soldering is done we need to configure ESPHome. This configuration works for me. It would be awesome if someone could verify that this is configured correctly. I had to invert the pins so that it would default to off. I also used the on_turn_on to turn it off after 500ms so it would mimic the contact button it is bypassing.

esphome:
  name: garage-doors
  friendly_name: Garage Doors

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "redacted"

ota:
  password: "redacted"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage-Doors Fallback Hotspot"
    password: "redacted"

captive_portal:

switch:
  - platform: gpio
    pin: 
      number: GPIO14 # D5
      mode: output
      inverted: true
    id: north
    name: "Garage Door North Button"
    icon: "mdi:garage"
    on_turn_on:
    - delay: 500ms
    - switch.turn_off: north
  - platform: gpio
    pin: 
      number: GPIO12 # D6
      mode: output
      inverted: true
    id: south
    name: "Garage Door South Button"
    icon: "mdi:garage"
    on_turn_on:
    - delay: 500ms
    - switch.turn_off: south
  - platform: gpio
    pin: 
      number: GPIO13 # D7
      mode: output
      inverted: true
    id: spare
    name: "Garage Door Spare Button"
    icon: "mdi:garage"
    on_turn_on:
    - delay: 500ms
    - switch.turn_off: spare

I hope this helps someone and please let me know if you have any feedback that can make this better, besides my quick and dirty soldering job in the photos.

1 Like

This looks like an interesting project. I’m going to give this a go for my two door openers in my spare time. The position sensors were already installed a couple years ago when MyQ was unreliable.
Thank you!

Thanks for sharing. Yesterday I was looking at options for integrating my “dumb” garage doors into HA, and came across this and found it was the easiest/cheapest option as I had everything I needed and it accomplished what I wanted. Got it up and running today.

1 Like