@ironicbadger
Yeah, here's how I have it set. First is the actual relays, interlocked, then virtual buttons that show up in homeassistant, and finally physical buttons that mirror the virtual ones.
```
# The Relays connected to the GDO
switch:
## Pin19 -> Relay -> GDO IN1
- platform: gpio
pin: GPIO19
id: relayr
name: "Relay R"
internal: true
interlock: [relayl]
interlock_wait_time: 255ms
on_turn_on:
then:
- delay: 250ms
- switch.turn_off: relayr
## Pin18 -> Relay -> GDO IN2
- platform: gpio
pin: GPIO18
id: relayl
internal: true
name: "Relay L"
interlock: [relayr]
interlock_wait_time: 505ms
on_turn_on:
then:
- delay: 250ms
- switch.turn_off: relayl
# Virtual "buttons" for GDO, shown in homeassistant
button:
- platform: template
icon: mdi:garage
id: garage_opener_left
name: "Garage Door Opener Left"
on_press:
switch.turn_on: relayl
- platform: template
icon: mdi:garage
id: garage_opener_right
name: "Garage Door Opener Right"
on_press:
switch.turn_on: relayr
binary_sensor:
# Physical GDO buttons
## Pin5 -> Switch Pin1 + 10k -> GND
- platform: gpio
pin:
number: GPIO5
mode: INPUT_PULLDOWN
name: "Garage Door Left Button"
internal: true
on_press:
switch.turn_on: relayl
## Pin17 -> Switch Pin1 + 10k -> GND
- platform: gpio
pin:
number: GPIO17
mode: INPUT_PULLDOWN
name: "Garage Door Right Button"
internal: true
on_press:
switch.turn_on: relayr
```