[DefiDIY25] Gestion de porte de garage évolutive avec EspHome

Bonjour,

Je sais que le sujet a été abordé pas mal de fois sur le forum et que des solutions toutes faites existent, mais je voulais partager ma version DIY basé sur EspHome avec le fonctionnement autonome que je veux. Voici dont ma commande de porte de garage.

La solution est plutôt simple et abordable pour débuter dans le DIY et EspHome..

Résumé TLDR

Avec un Esp8266 un relai et des capteurs, je contrôle ma porte de garage et je remonte dans HA l’état actuel, incluant le fait de savoir si elle est en train de s’ouvrir ou de se fermer. EspHome me permet d’ajouter des évolutions et des logiques pour la rentre le plus autonome possible et indépendant de HA, tout en gardant une intégration complète.

Composition de la solution.

Voici les composants avec liens.
Pas mal d’alternatives existent à tous les prix

Suivant le vendeur, la quantité ou le modèle ce montage vous coutera entre 7 et 15€ de matériel.

Fonctionnement

Le fait d’avoir deux capteurs, en début et fin de course de la porte, permet de savoir si elle est complètement ouverte ou complètement fermée et de déduire son sens de mouvement. Le principe est simple, un aimant est placé sur la porte et celui-ci voyage avec elle. Les deux capteurs sont eux à chaque extrémité, l’aimant les rejoint alternativement.

Le tout est relié avec des câbles réseau ou téléphone, placés le long du rail là où ils ne gênent pas le mouvement de la porte.

Les câbles vont vers l’ESP et le relais, près du moteur de la porte, l’ESP est alimenté sur la même prise que la porte de garage.

Le relais est ensuite branché sur le bornier du moteur de la porte de Garage. Mon moteur un Spin de la marque NICE, ne propose pas de bornier “Close”, uniquement un “Open” et un “Pas à pas”. J’ai donc dû utiliser le bornier Pas à Pas “P.P". Ce qui pourrait poser un souci avec une installation à un capteur, car on ne saurait pas toujours quelle commande on lance.. mais avec 2 capteurs, on arrive à savoir plus de choses, ce qui permet une meilleure gestion dans l’interface HA.

Montage ESP

Le montage du système est plutôt simple.
On utilise d’un côté un GPIO et l’alimentation pour le Relais. De l’autre, 2 GPIO et 2 Terres pour les capteurs (peu importe le sens). Le relais est aussi connecté au bornier P.P (peu importe le sens côté bornier, mais entre “NO” (Normalement Ouvert) et “Com” (Commun) du côté du relais.

Schéma

Pour trouver les bons pins de l’ESP et leur GPIO correspondants, il faut trouver les infos de pinout de votre modèle de carte, exemple pour la mienne :

Code EspHome

Voici le code EspHome qui va avec

esphome:
  name: porte-garage

esp8266:
  board: esp01_1m
  early_pin_init: false

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "5t92ZsREDACTEDzV8krfBpPH8="

ota:
  password: "1a42e8REDACTED6a990503f7b"
  platform: esphome

web_server:
  port: 80

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Porte-Garage Fallback Hotspot"
    password: "mUREDACTEDBO6"

captive_portal:

binary_sensor:
  - platform: gpio
    pin: 
      number: 2
      inverted: true
    name: "Garage Completement Ouvert"
    id: fully_open
    filters:
      - delayed_on: 500ms
    on_press:
      then:
        - cover.template.publish:
            id: garage
            state: OPEN
            current_operation: IDLE
    on_release:
      then:
        - cover.template.publish:
            id: garage
            state: OPEN
            current_operation: CLOSING


  - platform: gpio
    pin:
      number: 3
      inverted: true
    name: "Garage Completement Fermé"
    id: fully_closed
    filters:
      - delayed_on: 500ms
    on_press:
      then:
        - cover.template.publish:
            id: garage
            state: CLOSED
            current_operation: IDLE
    on_release:
      then:
        - cover.template.publish:
            id: garage
            state: OPEN
            current_operation: OPENING
    
switch:
  - platform: gpio
    pin: GPIO4
    name: "Door Action"
    id: door_switch
    inverted: true
    internal: true

cover:
  - platform: template
    name: "Garage"
    device_class: garage
    id: garage
    open_action:
      - switch.turn_on: door_switch
      - delay: 0.2s
      - switch.turn_off: door_switch
    close_action:
      - switch.turn_on: door_switch
      - delay: 0.2s
      - switch.turn_off: door_switch
    stop_action:
      - switch.turn_on: door_switch
      - delay: 0.2s
      - switch.turn_off: door_switch

En résumé, on crée 2 binary_sensor, pour chaque capteur, avec les actions quand ils sont “pressés” (on_press) le porte est ouverte ou fermée (suivant le capteur) quand ils sont “relâchés” (on_release) le type de mouvement de la porte est assigné en fonction du bouton, si c’est celui qui dit “complètement ouvert” (open), le mouvement passe à “se ferme” (closing).

Ensuite un “switch” est créé pour gérer le relai et simuler l’appui sur la commande.

Et finalement, on crée un “cover” pour exporter directement dans HA une entité de type porte de garage. La classe et les actions disponibles sont directement gérées ici.

Côté Home Assistant

Une fois le module compilé et lancé, dans HA, on récupère une entité “cover” directement fonctionnelle avec les états qui vont bien.

image

image

image

image

Évolutivité

On pourrait ajouter toute sorte de capteurs additionnels, comme des lumières, des capteurs pour éviter de fermer si quelqu’un est dans le passage.

On pourrait aussi directement dans EspHome gérer une minuterie de fermeture. J’ai opté de faire cela dans HA avec un timer et des automatisations qui permettent d’annuler le timer si on veut garder la porte ouverte…

Automatisations, j’ai aussi un certain nombre d’automatisations qui allument les lumières en cas d’ouverture de porte la nuit, aussi des lumières RGB pour avertir celui qui arrive, du timer, si l’alarme de la maison est allumée… votre imagination est la seule limite.

Conclusion

Je ne participe pas au concours, étant membre de l’équipe, mais je pense que c’est un petit projet concret qui va plus loin que faire clignoter une led, parfait pour commencer. Et qui permet de faire plus de choses que les solutions commerciales existantes.

4 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.