My current garage control uses a Shelly 1 which is ideal for my situation. The Shelly is very compact and easily fits into the ceiling box where all the low voltage wires associated with my garage door come together.
My build was based on Make Your Own Smart Garage Door Opener for $15 - HomeTechHacker
and further inspired by Extending automation to the garage · Ramblings of a Unix Geek
The Shelly 1 setup was easy and it natively offers everything I need.
POWER ON DEFAULT MODE: OFF
AUTO OFF: 1 second or less
Button Type: Detached Switch (switch is separated from the relays)
Enable MQTT (I also set custom MQTT prefix: shelly1-garage)
Connect garage opener to O & I terminals (relay)
Connect door sensor to L & SW terminals (input)
Connect 12V DC L=+ N=-
Home Assistant setup files
configuration.yaml
mqtt:
cover:
- name: "Garage Door"
position_topic: "shellies/shelly1-garage/input/0"
command_topic: "shellies/shelly1-garage/relay/0/command"
availability_topic: "shellies/shelly1-garage/online"
retain: false
payload_open: "on"
payload_close: "on"
payload_stop: "on"
position_open: 0
position_closed: 1
payload_available: "true"
payload_not_available: "false"
customize.yaml
cover.garage_door:
device_class: garage
automations.yaml
- id: mqtt_shelly_announce
alias: Shelly Sync at HA Start
trigger:
- platform: homeassistant
event: start
action:
- delay: 00:00:20
- service: mqtt.publish
data:
topic: shellies/command
payload: announce
- id: garage_door_warn
alias: Notify app when garage door left open
trigger:
- entity_id: cover.garage_door
for: 0:30:00
from: closed
platform: state
to: open
action:
service: notify.mobile_app_moto_x4
data:
message: The garage has been left open
data:
actions:
- action: close_garage
title: Close Garage Door
- id: shut_garage_door
alias: Close the garage when notification action is tapped
trigger:
- event_data:
action: close_garage
event_type: mobile_app_notification_action
platform: event
action:
- entity_id: cover.garage_door
service: cover.close_cover