/esphome-gdo

Garage Door Opener/Cover with position control using ESP32 or ESP8266, relay, and one or two reed sensors

Primary LanguageC++OtherNOASSERTION

esphome-gdo Made for ESPHome

This ESPHome package allows control of a Garage Door Opener with a relay and one or two reed sensors. Supports:

  • open/close/stop control
  • most importantly position reporting and control, distinguishing it from other similar projects
  • obstruction sensor

See the included example-gdo.yaml for my personal setup with just one reed sensor at the fully-open position.

Hardware requirements

  • A Garage Door Opener that you open/close with a single button. The behavior of the button is expected to be:
    • If door is closed a single press opens it.
    • If door is (fully or partially) open a single press closes it.
    • If door is opening a single press stops it.
    • If door is closing a single press opens it.
  • ESP board compatible with ESPHome.
  • Relay to either press the physical button of the wall control panel (for Chamberlain Security + 2.0) or short the controls on the garage door opener itself (for Chamberlain Security + 1.0 or Genie etc.).
  • One or two reed sensors to detect the fully-open and/or fully-closed states. If using a single reed sensor, it can be placed in either fully-open or fully-closed positions.
  • Optional two 10kΩ resistors to detect the obstruction sensor.

Credits

Dev notes

python3 -m venv .venv
source .venv/bin/activate
# for Windows CMD:
# .venv\Scripts\activate.bat
# for Windows PowerShell:
# .venv\Scripts\Activate.ps1

pip install esphome pre-commit

pre-commit install

pre-commit run --all-files

# Compile with local code instead of pulling from Github
esphome -s external_components_source components compile example-gdo.yaml

# Deploy local code
esphome -s external_components_source components run example-gdo.yaml