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.
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!