HomeKit Garagentor- und Drehtoröffner EPS8266 Arduino - Hörmann / Sommer Antriebe
37 Kommentare
In diesem Blogbeitrag geht es um ein HomeKit Garagentoröffner, gebaut mit einem Wemos D1 mini, Wemos D1 mini pro oder auch jedem anderen ESP8266. Sicher kann man sich solche Sachen einfach kaufen, aber das macht ja kein Spaß. Deswegen möchte ich euch an diesem Projekt teilhaben lassen.
Ziel ist es den ESP8266 mit dem HomeKit zu verbinden und steuern zu können. Das hört sich erst mal sehr kompliziert an, ist es aber nicht. Den es haben sich schon andere über das HomeKit Thema Gedanken gemacht. Aus diesem Grund gibt es hier schon fertige Librarys die wir hier nutzen können.
Der Aufbau
Wie können wir den ESP8266 dazu bringen das Garagentor zu öffnen und zu schließen? Hier haben die Hersteller der Antriebe, in dem Fall Hörmann und Sommer, ein Anschluss auf Ihren Platinen für externe Funksender (Hörmann) oder Schlüsseltaster (Sommer). Diesen können wir für unseren ESP8266 benutzen. (Sicher gibt es das auch für andere Antriebshersteller, habe ich aber nur für die beiden rausgesucht.)
Bei Welchem Antrieb welche Klemme benutzt werden kann, könnt Ihr in der List nachsehen.
Die Klemmenbezeichnung auf dern Platinen stimmen mit dem aktuellen Modellen überein, bei älteren Modellen kann es zu Abweichungen kommen. Daher bitte in die Liste gucken oder selber recherchieren. Ich habe die Angaben aus den Handbücher rausgesucht, übernehme aber keine Haftung dafür.
Hörmann
Sommer
Liste Hörmann Antriebe
Prinzipiell kann man sagen überall wo die Externen Funksender HE1, HE2, HE3, HEI1, HEI2 und HEI3 angeschlossen werden können, kann auch meine Platine angeschlossen werden.
Es gibt hier einmal die Version 1 mit den Bauteilen neben dem ESP8266 und die Version 2 mit den Bauteilen unter dem ESP8266.
Mit der Platine werden die entsprechenden Schalter via Optokoppler geschalten. Das hat den Vorteil das hier ein galvanische Trennung vorliegt. Sprich die beiden Stromkreise ESP8266 und der Schaltkontakt haben keine Verbindung. Sicher könnte man das auch über eine Transistorschaltung realisieren.
Version 1: 70,3mm x 50,3mm x 1,5mm Version 2: 48,2mm x 50,3mm x 1,5mm Stromverbrauch: ca. 40mA
Die 24 Volt von der Antriebssteuerung müss auf 5 Volt runtergeregelt werden. Dafür habe ich paar Bauteile rausgesucht, die dafür verwendet werdenkönnen.
Hier wird die Webansicht definiert und in der Datei handleHttp.ino ausgeführt.
server.on("/", handleRoot);
server.on("/reset", handleReset);
server.on("/reset_do", handleResetDo);
server.on("/wifi", handleWifi);
server.on("/wifisave", handleWifiSave);
server.on("/generate_204", handleRoot); //Android captive portal. Maybe not needed. Might be handled by notFound handler.
server.on("/fwlink", handleRoot); //Microsoft captive portal. Maybe not needed. Might be handled by notFound handler.
server.onNotFound(handleNotFound);
server.begin(); // Web server start
Definition der Schaltanweisung für das HomeKit.
// Diese Funktion wird aufgerufen, wenn der Schalter in HomeKit betätigt wird
void switch_S1_setter(const homekit_value_t value) {
digitalWrite(PIN_SWITCH_S1, HIGH);
delay(1000);
digitalWrite(PIN_SWITCH_S1, LOW);
}
void switch_S2_setter(const homekit_value_t value) {
digitalWrite(PIN_SWITCH_S2, HIGH);
delay(1000);
digitalWrite(PIN_SWITCH_S2, LOW);
}
void my_homekit_setup() {
pinMode(PIN_SWITCH_S1, OUTPUT);
digitalWrite(PIN_SWITCH_S1, LOW);
switch_S1.setter = switch_S1_setter;
pinMode(PIN_SWITCH_S2, OUTPUT);
digitalWrite(PIN_SWITCH_S2, LOW);
switch_S2.setter = switch_S2_setter;
arduino_homekit_setup(&config);
}
Datei my_accessory.c
Definition was im Homekit als Name für das Gerät angezeigt werden soll und was es ist. Zum Beispiel ein Schalter oder ein Sensor usw. Was es da für Möglichkeiten gibt findet Ihr in der Library.
Je nach Modell kann es sein das der Access Point nicht gleich startet, hier einfach das Modul nochmal aus und einstecken.
Update: vom 17.08.2021
Mit dem letzten IOS Update funktioniert das Garagenprogramm nicht mehr. Der Grund ist hier der lange Name in der my_accessory.c Datei "Garagentorteilöffnung" dieser muss gekürzt werden, dann geht es auch wieder. Scheinbar gibt es eine Begrenzung der Zeichen für die HomeKit Namen.
Hallo Josef, ja das ist Richtig, das habe ich nicht rein genommen. Kann man natürlich machen. Ich habe es nicht reingemacht aus folgenden Grund. Wenn mal was mit den WLAN nicht passen sollte, muss man immer erst das Board reseten damit der AP wieder aktiv ist.
Gruß Tobias
Hallo Moritz, wenn du den Schiebeschalter im Homekit meinst, dieser setzt sich doch zurück. Eine Darstellung ob das Tor geöffnet oder geschlossen ist, würde gehen aber dann müsste man sicherstellen das, dass Tor nicht über einen anderen Teilnehmer(Fernbedienung) betätig wird. Gruß Tobias
Hallo, cooles Projekt! genau nach sowas habe ich gesucht. Allerdings hat mein Tor einen Anschluss für Taster “Auf” und einen Taster"Zu". Kann ich dein Projekt dafür auch verwenden? Also S1 als auf und S2 als zu, sozusagen?? Geht das ? Oder muss ich da zu viel abändern. Habe zwar Erfahrung mit ARDUINO, bin aber nicht soooo der Programmierer…
Danke. Gruß, Andy
Hi, super Projekt. Danke! Was ich mich wundere ist, ob man den AP nicht abschalten kann sobald eine Wifi Verbindung besteht. Im code finde ich auch einen Kommentar dazu, aber scheint mir nicht implementiert zu sein…
void connectWifi() { …
// if WIFI connected und dann AP aus }
Gruß Josef
Hallo sehr gute Projekt. Besteht auch die Möglichkeit, dass sich der Status in Homekit wieder zurück setzt? Der Ausgang wird ja auch wieder zurück gesetzt. Habe jetzt auf die schnelle keine Möglichkeit gefunden wie man das implementieren kann.
37 Kommentare
Hallo Josef,
ja das ist Richtig, das habe ich nicht rein genommen. Kann man natürlich machen.
Ich habe es nicht reingemacht aus folgenden Grund.
Wenn mal was mit den WLAN nicht passen sollte, muss man immer erst das Board reseten damit der AP wieder aktiv ist.
Gruß
Tobias
Hallo Moritz, wenn du den Schiebeschalter im Homekit meinst, dieser setzt sich doch zurück. Eine Darstellung ob das Tor geöffnet oder geschlossen ist, würde gehen aber dann müsste man sicherstellen das, dass Tor nicht über einen anderen Teilnehmer(Fernbedienung) betätig wird.
Gruß
Tobias
Hallo,
cooles Projekt! genau nach sowas habe ich gesucht. Allerdings hat mein Tor einen Anschluss für Taster “Auf” und einen Taster"Zu". Kann ich dein Projekt dafür auch verwenden? Also S1 als auf und S2 als zu, sozusagen??
Geht das ? Oder muss ich da zu viel abändern. Habe zwar Erfahrung mit ARDUINO, bin aber nicht soooo der Programmierer…
Danke.
Gruß, Andy
Hi, super Projekt. Danke! Was ich mich wundere ist, ob man den AP nicht abschalten kann sobald eine Wifi Verbindung besteht. Im code finde ich auch einen Kommentar dazu, aber scheint mir nicht implementiert zu sein…
void connectWifi() {
…
// if WIFI connected und dann AP aus
}
Gruß
Josef
Hallo sehr gute Projekt. Besteht auch die Möglichkeit, dass sich der Status in Homekit wieder zurück setzt? Der Ausgang wird ja auch wieder zurück gesetzt. Habe jetzt auf die schnelle keine Möglichkeit gefunden wie man das implementieren kann.
Grüße