Garage Door Opener

This is what I use for the single-relay ESP32 board I have in my garage as the garage door controller.

relay case wireframe image

This is the board:

esp32-relay-x1

Files

The Fusion360 model file based on this case model but I added the button.

ObjectSTL3MF
CaseCase STLCase 3MF
ButtonButton STLButton 3MF
LidLid STLLid 3MF

ESPHome Garage Door Button Config

Basically you can tap the physical button or the “Garage Door Trigger” entity in Home Assistant and it’ll trigger the relay for 300ms which is enough for my garage door to think I pressed the button.

esphome:
  name: esphome-web-snip
  friendly_name: "Garage Door Control"
  min_version: 2025.11.0
  name_add_mac_suffix: false

esp32:
  variant: esp32
  framework:
    type: esp-idf

logger:
api:
ota:
- platform: esphome

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

script:
  - id: pulse_garage_door
    mode: single
    then:
      - switch.turn_on: garage_door_relay
      - delay: 300ms
      - switch.turn_off: garage_door_relay

light:
  - platform: status_led
    name: "Status Led"
    restore_mode: ALWAYS_OFF
    pin:
      number: GPIO023
      inverted: False

switch:
  - platform: gpio
    pin: GPIO16
    name: "Garage Door Relay"
    id: garage_door_relay
    restore_mode: ALWAYS_OFF

button:
  - platform: template
    name: "Garage Door Trigger"
    icon: "mdi:garage-open"
    on_press:
      - script.execute: pulse_garage_door
        
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO00
      mode: INPUT_PULLUP
    name: "Garage Door Button"
    filters:
      - invert
      - delayed_on_off: 50ms
    on_press:
      - script.execute: pulse_garage_door


#3d-printing #3d-design #esphome #esp32