Wie ein einfacher Garagentorantrieb smart wird

Einleitung

In unserer Garage ist ein Garagentorantrieb der Fa. Sommer verbaut. Zu diesem Antrieb haben wir lediglich eine Funkfernbedienung bekommen. Daher kam bei mir der Wunsch auf diesen Antrieb smart zu machen und ihn in Home-Assistant verfügbar und steuerbar zu machen. Um dieses Projekt realisieren zu können, braucht man neben Home-Assistant noch ESPHome. ESPHome kann entweder über den Addon Store von hassos, oder als eingenständiger Docker Container ausgeführt werden. Des weiteren benötigt man ein wenig handwerkliches Geschick und sollte mit einem Lötkolben umgehen können.

Benötigte Hardware

  • NodeMCU V3 (oder einen anderen Mikrocontroller, der von esphome unterstützt wird)
  • 5V Schaltnetzteil mit Micro-USB Stecker
  • 2 Kanal Relais
  • 4 Kabel zur Verbindung des Relais mit dem Mikrocontroller
  • 3 Kabel zur Verbindung der Connex Platine mit dem Relais
  • Garagentorantrieb pro+
  • Conex Platine
  • 8 Schraube M3x10
  • 8 Muttern M3
  • Micro-USB Breakout Board

Installation

Hardware

Im Gehäuse des Steuergerätes ist ein Platz für einen Akku vorgesehen. Da ich diesen Akku nicht nutze, habe ich die zusätzliche Hardware dort unter gebraucht. Bevor man jedoch mit der Installation beginnt, sollte man den Mikrocontroller mit Hilfe von ESPHome flashen (die Firmware aufspielen).
Als erstes habe mich um die Stromversorgung gekümmert. Dazu habe ich zwei Dubont Kabel (female) in der Mitte durchgeschnitten und jeweils zwei Stück an den Plus und Minus Anschluss des Micro-USB Breakout Boards angelötet.
Dann habe ich eine 3mm dicke Sperrholzplatte so zurecht gesägt, dass sie an den vorgesehenen Platz im Gehäuse passte. Danach habe ich Löcher zum Befestigen des Relais und des Mikrocontroller gebohrt. Nun konnten beide Teile auf die Platte montiert werden und miteinander verbunden werden. Ebenfalls habe ich zu diesem Zeitpunkt bereits die Conex Platine mit dem Relais verbunden. Die Holzplatte wurde nun mit doppelseitigem Klebeband im Gehäuse fixiert und das Gehäuse konnte wieder geschlossen werden. Vorher wurde natürlich noch die Conex Platine auf die Steuerungsplatine gesteckt.

Software

Ich habe die Ausgänge D1 und D2 auf dem Mikrocontroller verwendet, da diese bei einem Neustart keine ungewollten Zustände annehmen. Je nach verwendetem Mikrocontroller kann sich die Bezeichnung allerdings ändern und muss entsprechend angepasst werden. Außerdem sollte dann das Verhalten der Anschlüsse bei einem Neustart des Mikrocontrollers überprüft werden. Es könnte sonst dazu führen, dass das Garagentor ungewollt geöffnet wird! Ebenso müssen die SSID und das Passwort für das Wlan angepasst werden.
Ich verwende für alle Mikrocontroller eine feste IP Adresse. Sollte das nicht gewünscht sein, muss der entsprechende Teil aus dem Code entfernt werden.
Es gibt zwei Möglichkeiten den Code in esphome einzufügen: entweder legt man sich ein neues Gerät an und kopiert dann den Code ab switch: in den Editor, oder man erstellt eine Datei mit dem Namen garagentor.yaml im /config Ordner von esphome. Bei letzterem Vorgehen muss das Board und die Platform auf jeden Fall kontrolliert werden.

esphome:
  name: garagentor
  platform: ESP8266         # Muss evtl angepasst werden
  board: nodemcuv2

wifi:
  ssid: !secret ssid          # muss angepasst werden
  password: !secret wlan_pwd  # muss angepasst werden
  manual_ip:                  # kann gelöscht werden falls DHCP gewünscht ist, muss angepasst werden wenn statische IP gewünscht ist
    static_ip: 192.168.0.144
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: Garagentor Fallback Hotspot
    password: 7WHmKojbIpUk

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

# Enable over the air updates
ota:

switch:
  - platform: gpio
    pin: 
      number: D1                      # muss evtl angepasst werden
      inverted: True
    name: Garage door Open Switch
    id: open_switch
    on_turn_on:
      - delay: 250ms
      - switch.turn_off: open_switch
    restore_mode: ALWAYS_OFF
  - platform: gpio
    pin: 
      number: D2
      inverted: True
    name: Garage door close Switch
    id: close_switch
    on_turn_on:
      - delay: 250ms
      - switch.turn_off: close_switch
    restore_mode: ALWAYS_OFF
  - platform: restart
    name: Garagentor Restart
  - platform: shutdown
    name: Garagentor Shutdown

cover:
  - platform: template
    name: Garagentor
    open_action:
      # Cancel any previous action
      - switch.turn_off: close_switch
      # Turn the OPEN switch on briefly
      - switch.turn_on: open_switch
      - delay: 0.1s
      - switch.turn_off: open_switch
    close_action:
      - switch.turn_off: open_switch
      - switch.turn_on: close_switch
      - delay: 0.1s
      - switch.turn_off: close_switch
    stop_action:
      - switch.turn_off: close_switch
      - switch.turn_off: open_switch
    optimistic: true
    assumed_state: true

text_sensor:
  - platform: wifi_info
    ip_address:
      name: Garagentor IP
    ssid:
      name: Garagentor SSID

Sind alle Anpassungen vorgenommen worden, kann der Mikrocontroller mit der Firmware bespielt werden. Wenn der Vorgang abgeschlossen ist und der Mikrocontroller mit dem Wlan verbunden ist, kann er in Home-Assistant hinzugefügt werden.
Dazu wechselt man zu den Integrationen und fügt eine weitere ESPHome Integration hinzu. Nun wird man nach dem Hostnamen oder der IP Adresse des Mikrocontroller gefragt. Ich gebe hier immer die IP Adresse ein. Nach dem klicken auf hinzufügen ist das Garagentor in HA verfügbar und kann der UI hinzugefügt werden.

Ein Kommentar zu „Wie ein einfacher Garagentorantrieb smart wird

  1. Toller Beitrag! Ich finde es ist eine clevere Idee, dass du den Antrieb smart gemacht und in den Home-Assistant steuerbar gemacht hast. Wir möchten uns auch neue Garagentorantriebe kaufen. Vielleicht könnte wir diesen ebenfalls smart machen? Danke für die Anleitung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert