Liftmaster Gate Controller

I have created a PCB design that allows the automation of a Liftmaster gate operator in Home Assistant. I have this working on my property with two gate and it works great. I’ve made the design available on Github for anyone to use. If you have basic soldering skills you can print the PCB and solder up the board. It’s actually pretty simple. It integrates into HA using ESPHome. Enjoy.

1 Like

This is pretty cool. I also have a liftmaster gate and am getting weary of MyQ walled garden. Have any pics of final board? I may have to go this route.

Here are a few photos of the board installed. I use the strands from a CAT6 cable to connect the board to the gate operator.



And this is what the EspHome device looks like in HA:

OK, you convinced me. Got all the parts except for waiting on the slow boat PCBs and will put this together asap. Thank you for making this available. I’m new to ESPHome, so I still need to figure out how to generate the FW from the yaml file, but excited to be rid of myq. Threw out the myq light switches in the garbage over the weekend! It was a good feeling.

To build & install the firmware follow these instructions to install EspHome:

https://esphome.io/guides/installing_esphome

Then use “esphome compile yaml-file” to build the firmware.

Then use "“esphome upload yaml-file” to flash the board.

It’s very easy.

Got ESPHome fw loaded and made some tweaks to the yaml file you provided. Changed the exposed UI as buttons (underlying switch behavior is unchanged but now internal since name field is missing) and added some info/version with the project section.

Note: I also use dhcp (static defined) and changed the Exit to Stop for my usecase.

Screenshot from 2024-09-24 17-39-11

esp32:
  board: esp32doit-devkit-v1

esphome:
  name: gate-controller
  friendly_name: "Gate Controller"
  project:
    name: "Weswitt.gate-controller"
    version: "0.1.2"

api:

logger:
  baud_rate: 0
#  baud_rate: 115200
#  level: VERBOSE

ota:
  - platform: esphome
  
web_server:
  port: 80

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password  
    
text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP Address"
      id: ip_address
      icon: mdi:ip-network
    ssid:
      name: SSID
      id: ssid
      icon: mdi:wifi

sensor:
  - platform: uptime
    name: Uptime
  - platform: wifi_signal
    name: "WiFi Signal"
    id: wifi_signal_strength
    update_interval: 60s
    icon: mdi:wifi-strength-1

light:
  - platform: status_led
    id: opened_led
    pin: GPIO17
    restore_mode: ALWAYS_OFF
  - platform: status_led
    id: closed_led
    pin: GPIO18
    restore_mode: ALWAYS_OFF

binary_sensor:
  - platform: gpio
    filters:
      - invert:
    pin:
      number: GPIO13
      mode:
        input: true
        pullup: true
    name: "Closed Sensor"
    id: closed_sensor
    icon: mdi:gate
    on_press:
      then:
        - light.turn_on: closed_led
        - light.turn_off: opened_led
  - platform: gpio
    filters:
      - invert:
    pin:
      number: GPIO16
      mode:
        input: true
        pullup: true
    name: "Open Sensor"
    id: open_sensor
    icon: mdi:gate-open
    on_press:
      then:
        - light.turn_on: opened_led
        - light.turn_off: closed_led

switch:
  - platform: gpio
    pin: GPIO25
    id: open_switch
  - platform: gpio
    pin: GPIO26
    id: close_switch
  - platform: gpio
    pin: GPIO27
    id: stop_switch

button:
  - platform: restart
    name: Restart
  - platform: template
    name: "Open" 
    icon: mdi:gate    
    on_press:
      - switch.turn_on: open_switch
      - delay: 200ms
      - switch.turn_off: open_switch
  - platform: template
    name: "Close" 
    icon: mdi:gate    
    on_press:
      - switch.turn_on: close_switch
      - delay: 200ms
      - switch.turn_off: close_switch
  - platform: template
    name: "Stop" 
    icon: mdi:gate    
    on_press:
      - switch.turn_on: stop_switch
      - delay: 200ms
      - switch.turn_off: stop_switch
           

Its been working like a champ. My gate is the LA400 solar/12V 2nd gen (green PCB) system with the K1D8080-1CC expansion board and this solution is great. Thanks again for making everything available. Using the button card, I’m using long press for the open/close action.

Note: The stop relay is normally closed as an open circuit stops all motion.

If you get the expansion board for your gate operator then you can connect the aux relay connections to the “gate opened” and “gate closed” connection on my board. These are actual sensors and you can know immediately when the gate is opened or closed. This is also how the LEDs on board are lit. This is why there are two mosfets on my board.