Home Assistant
Everything to do with Home Assistant
Dual Garage Door Opener
Using ESPHome
This is code for dual garage door opener and will show red when door is opened
Dashboard
This is built using a
ESP32
and some magnet switches
REED
The REED is only one per door
substitutions:
name: sfl-garage-001
friendly_name: SFL-GARAGE-001
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Sfl-Garage-001 Fallback Hotspot"
password: "xxx"
api:
encryption:
key: "xxxxxx"
ota:
- platform: esphome
password: "xxxxx"
logger:
level: ERROR
web_server:
port: 80
bluetooth_proxy:
active: true
captive_portal:
# --- Relays (momentary button press) ---
switch:
- platform: gpio
pin: GPIO25
inverted: true
name: "Door 1 Button"
id: garage_button_1
on_turn_on:
- delay: 500ms
- switch.turn_off: garage_button_1
- platform: gpio
pin: GPIO32
inverted: true
name: "Door 2 Button"
id: garage_button_2
on_turn_on:
- delay: 500ms
- switch.turn_off: garage_button_2
# --- Reed Switches ---
binary_sensor:
- platform: gpio
pin:
number: GPIO05
mode: INPUT_PULLUP
inverted: false
name: "Door 1 Sensor"
id: garage_sensor_1
device_class: garage_door
icon: "mdi:garage"
filters:
- delayed_on: 100ms
- delayed_off: 100ms
- platform: gpio
pin:
number: GPIO04
mode: INPUT_PULLUP
inverted: false
name: "Door 2 Sensor"
id: garage_sensor_2
device_class: garage_door
icon: "mdi:garage"
filters:
- delayed_on: 100ms
- delayed_off: 100ms
# --- Garage Door Covers ---
cover:
- platform: template
name: "Door 1"
device_class: garage
optimistic: false
lambda: |-
if (id(garage_sensor_1).state) {
return COVER_CLOSED;
} else {
return COVER_OPEN;
}
open_action:
- switch.turn_on: garage_button_1
close_action:
- switch.turn_on: garage_button_1
stop_action:
- switch.turn_on: garage_button_1
- platform: template
name: "Door 2"
device_class: garage
optimistic: false
lambda: |-
if (id(garage_sensor_2).state) {
return COVER_CLOSED;
} else {
return COVER_OPEN;
}
open_action:
- switch.turn_on: garage_button_2
close_action:
- switch.turn_on: garage_button_2
stop_action:
- switch.turn_on: garage_button_2