Ilustración: Abrir la puerta del garaje desde el móvil con ESP32, ESPHome y Home Assistant

Ilustración generada con IA

Actualizado el 24 de octubre de 2026 Por Emmanuel SAUVAGE

Abrir la puerta del garaje desde el móvil con ESP32, ESPHome y Home Assistant

Tutorial seguro: relé en contacto seco en paralelo al pulsador, sensor reed, entidad cover en la app, YAML ESPHome completo.

Abrir el garaje desde el móvil y saber si quedó abierto es uno de los proyectos más útiles. Un relé en paralelo al pulsador mural imita un pulso corto. Un sensor reed indica cerrado/abierto y Home Assistant muestra una puerta de garaje en la app.

Seguridad: leer antes

  • Confirma en la notice de la motorización entrada «pulsador» / «contacto seco» / «paso a paso» (bornes baja tensión). Si no aparece, no continúes.
  • No toques 230 V sin cualificación: corta alimentación antes de abrir la tapa. Solo bornes de baja tensión.
  • Mantén detección de obstáculos y fotocélulas.
  • Acceso remoto: Home Assistant Cloud o VPN; 2FA. No expongas HA a Internet sin protección.
  • Confirmación en la app antes de accionar.
  • Solo a distancia si nadie puede quedar bajo la puerta.

Objetivo, tiempo y nivel

DuraciónNivelPresupuesto
2–3 hintermedioESP32, relé y reed habituales en Amazon.es (tag roboteducat07-21)

Material

Cableado

ElementoPinHacia
Relé VCC3V3 (o 5 V según módulo)
Relé GNDGND
Relé INGPIO26
Relé COM/NOcontacto secobornes pulsador motor
ReedGPIO27 y GND

Relé en paralelo al pulsador. Reed cerrado con puerta completamente cerrada.

Código ESPHome

Descarga: porte-garage.yaml

substitutions:
  nom: porte-garage
  gpio_relais: GPIO26
  gpio_reed: GPIO27
  duree_impulsion: 700ms

esphome:
  name: ${nom}
  friendly_name: Puerta garaje

esp32:
  board: esp32dev
  framework:
    type: esp-idf

api:
  encryption:
    key: !secret api_key

ota:
  - platform: esphome
    password: !secret ota_password

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

binary_sensor:
  - platform: gpio
    id: reed_fermee
    name: "Puerta cerrada (sensor)"
    pin:
      number: ${gpio_reed}
      mode:
        input: true
        pullup: true
      inverted: true
    filters:
      - delayed_on_off: 200ms

switch:
  - platform: gpio
    id: relais
    pin: ${gpio_relais}
    restore_mode: ALWAYS_OFF
    internal: true
    on_turn_on:
      - delay: ${duree_impulsion}
      - switch.turn_off: relais

script:
  - id: impulsion
    mode: single
    then:
      - switch.turn_on: relais
      - delay: 2s

cover:
  - platform: template
    id: garage
    name: "Puerta garaje"
    device_class: garage
    lambda: |-
      return id(reed_fermee).state ? COVER_CLOSED : COVER_OPEN;
    open_action:
      - if:
          condition:
            binary_sensor.is_on: reed_fermee
          then:
            - script.execute: impulsion
    close_action:
      - if:
          condition:
            binary_sensor.is_off: reed_fermee
          then:
            - script.execute: impulsion
    stop_action:
      - script.execute: impulsion

Primer flash por USB; luego OTA. Ajusta 700ms según manual (0,5–1 s).

Home Assistant

Tarjeta con confirmación y alerta si lleva 15 min abierta (adapta entity_id).

Tras corte de luz el ESP32 reinicia solo; relé en reposo (ALWAYS_OFF).

Truco del tutorial

open_action solo impulsa si el reed dice «cerrado» y close_action si «abierto», evitando cerrar por error con un solo botón.

Más: sensor ESP32 ESPHome, proyectos ESP32, sensor de puerta en Raspberry Pi.

Todas las guías

¿Tienes alguna pregunta sobre este artículo o necesitas consejo? Escríbenos aquí

¿Dudas entre dos modelos o necesitas ayuda con un montaje? Escríbenos y te responderemos rápido por correo.