Alles über Arduino und Co.

suche
Generic filters

HomeKit Garagentor- und Drehtoröffner EPS8266 Arduino – Hörmann / Sommer Antriebe

HomeKit Garagentor- und Drehtoröffner EPS8266 Arduino – Hörmann / Sommer Antriebe

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

S1 = Tor auf oder zu (Impulseingang)
S2 = Teilöffnung / Gehflügel

Sommer

S1 = Beide Torflügel
S2 = Gehflügel

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.
Garagentor
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMatic21aImpulseingang100mA16, 22HE1
200V
524V
previous arrowprevious arrow
ProMatic_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMatic 221Impulseingang100mA13, 33HE1
200V
524V
previous arrowprevious arrow
ProMatic_2_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMatic 321Impulseingang???25HE3
200V
524V
23Teilöffnung
previous arrowprevious arrow
ProMatic_3_conect
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMatic 421Impulseingang350mA26???
200V
524V
23Teilöffnung
previous arrowprevious arrow
ProMatic_4_conect
HE2_01
HE2_02
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMatic/ProMatic P21aImpulseingang100mA16, 22
200V
524V
previous arrowprevious arrow
ProMatic_P_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RollMatic21Impulseingang???22HE1, HE2, HE3
23Teilöffnung
524V
200V
previous arrowprevious arrow
RollMatic_conect
HE1_3pol
HE1_4pol
HE2_01
HE3_3pol
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RollMatic BiSecur21Impulseingang???21HE3
23Teilöffnung
524V
200V
previous arrowprevious arrow
RollMatic_BiSecur_conect
HE3_4pol
 
next arrownext arrow
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
ProMaticSupra Matic E P21Impulseingang100mA17, 18, 30HE1
200V
524V
previous arrowprevious arrow
SupraMatic_E_P_9_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic E P21Impulseingang???18HE1
200V
524V
previous arrowprevious arrow
SupraMatic_E_P_7_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic E221Impulseingang???13, 33HE2, HE3
23Teilöffnung
524V
200V
previous arrowprevious arrow
SupraMatic_2_mit_externem_Empfaenger_conect
HE1_4pol
HE2_01
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic T21Impulseingang250mA12, 47HE2, HE3
200V
524V
23Teilöffnung
previous arrowprevious arrow
SupraMatic T_conect
HE1_4pol
HE2_01
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic H Serie1 A21Impulseingang???23, 34HE1
200V
524V
previous arrowprevious arrow
SupraMatic_H_a_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic H b21Impulseingang???23, 34HE1
200V
524V
previous arrowprevious arrow
SupraMatic_H_b_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic H Serie1 C21Impulseingang100mA29, 30, 42HE1, HE2
200V
524V
previous arrowprevious arrow
Supramatic_H_c_conect
HE1_3pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic HT21Impulseingang250mA24HE3
200V
524V
23Teilöffnung
previous arrowprevious arrow
SupraMatic_HT_conect
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic 2 (E, P, H)21Impulseingang250mA10, 33HE2, HE3
23Teilöffnung
524V
200V
previous arrowprevious arrow
SupraMatic_2_mit_internem_Empfaenger_conect
HE2_01
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic 3 21Impulseingang250mA24HE3
200V
524V
23Teilöffnung
previous arrowprevious arrow
SupraMatic_3_conect
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
SupraMatic 421Impulseingang350mA27ESE
23Teilöffnung
524V
200V
previous arrowprevious arrow
SupraMatic_4_conect
HE3_4pol
next arrownext arrow
 
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
Turbo 7521Impulseingang250mA14, 33HE2, HE3
200V
524V
23Teilöffnung
previous arrowprevious arrow
Turbo 75_conect
HE2_01
HE3_4pol
next arrownext arrow
 
Drehtor
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
Drehtorantrieb DTA21Impulseingang???26, 51
23Gehtür
524V
200V
Drehtorantrieb_DTA_concet
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
Portronic D 500021Impulseingang???16, 34
23Gehtür
524V
200V
Portronic_D5000_conect
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RotaMatic 12 DIL-Schalter21Impulseingang100mA13, 25
23Gehtür
524V
200V
RotaMatic_12_conect
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RotaMatic II21Impulseingang???21, 44
23Gehtür
524V
200V
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RotaMatic II BiSecur21Impulseingang100mA17, 46HE3
23Gehtür
524V
200V
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RotaMatic 221Impulseingang250mA21HEI3
23Gehtür
524V
200V
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
RotaMatic P-PL21Impulseingang100mA13, 27 
23Gehtür
524V
200V
ModelKlemmeBeschreibungMax StromPDF SeiteExterner Sender
VersaMatic21Impulseingang250mA26HEI3
23Gehtür
524V
200V

Liste Sommer Antriebe

Garagentor
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
twist 200 E  100mA41, 42 
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
duo rapido 650+7 + 8Taster100mA23DIP-Schalter 2 ON
100V
924V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
duo vision / duo rapido7 + 8Taster100mA23DIP-Schalter 2 ON
100V
924V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
marathon SL2 + 3Taster Innen100mA22, 23 
4 + 5Taster Außen
1024V
110V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
marathon tiga SL2 + 3Taster Innen100mA20, 21 
4 + 5Taster Außen
1024V
110V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
marathon tiga SLX2 + 3Taster Innen100mA25, 26 
4 + 5Taster Außen
1024V
110V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
pro / pro+  100mA46, 47 
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
sprint evolution7 + 8Taster100mA19DIP-Schalter 2 ON
100V
924V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
tiga  100mA46, 49 
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
tiga+  300mA46, 48, 50 
Drehtor
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
twist 200 E13 + 14Impulseingang1,25A26, 27, 28 
15 + 16Gehtür
1024V
90V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
twist 200 E L13 + 14Impulseingang1,25A30, 31
15 + 16Gehtür
1024V
90V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
twist 350 / twist 350 rapido21 + 22Impulseingang100mA31, 34 
23 + 24Gehtür
3524V
360V
ModelKlemmeBeschreibungMax StromPDF SeiteInfo
twist UG / twist UG+21 + 22Impulseingang100mA31, 33
23 + 24Gehtür
3524V
360V

Die Platinen

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
Stromverbrauch_hoermann_blau
Stromverbrauch_hoermann_gruen
Stromverbrauch_sommer_blau
Stromverbrauch_sommer_gruen
previous arrowprevious arrow
next arrownext arrow

Hörman Platine

platine_hoermann_front_v1
platine_hoermann_front_v1
platine_hoermann_front_v2_2
platine_hoermann_front_v2_1
platine_hoermann_front_v2
platine_hoermann_front_v2
platine_hoermann_front_v2_2
platine_hoermann_front_v2_1
previous arrowprevious arrow
next arrownext arrow

Sommer Platine

platine_sommer_front_v1_
platine_sommer_front_v1
platine_sommer_front_v1_2
platine_sommer_front_v1_1
platine_sommer_front_v2_
platine_sommer_front_v2
platine_sommer_front_v2_3
platine_sommer_front_v2_2
previous arrowprevious arrow
next arrownext arrow

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.

Der Programmcode

Der Code kann hier runtergeladen werden.

Datei xx_homekit_AP.ino

An dieser Stelle wird der Access Point Name und Passwort festgelegt.

				
					#ifndef APSSID
#define APSSID "AP_HomeKit_GSwitch"
#define APPSK  "ESP-HomeKit24"
#endif
				
			

Access Point Zugangsadresse.

				
					/* hostname  http://homekit.local */
const char *myHostname = "homekit";

IPAddress apIP(192, 168, 100, 1);
IPAddress netMsk(255, 255, 255, 0);
				
			

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.

C:\Users\EuerName\Documents\Arduino\libraries\HomeKit-ESP8266\src\homekit

In der Datei types.h und characteristics.h siehe auch das Video.

				
					homekit_characteristic_t nameS1 = HOMEKIT_CHARACTERISTIC_(NAME, "Garagentor");
homekit_characteristic_t nameS2 = HOMEKIT_CHARACTERISTIC_(NAME, "Garagenteilöffnung");

homekit_accessory_t *accessories[] = {
  HOMEKIT_ACCESSORY(.id = 1, .category = homekit_accessory_category_garage, .services = (homekit_service_t*[]) {
    HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics = (homekit_characteristic_t*[]) {
      HOMEKIT_CHARACTERISTIC(NAME, "Garagentor"),
      HOMEKIT_CHARACTERISTIC(MANUFACTURER, "arduino-projekte.info"),
      HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "SN081523"),
      HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266 D1 Mini"),
      HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"),
      HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify),
      NULL
    }),
				
			

Hier wird der Pin vergeben der beim Verbinden (Pairing) mit dem Homekit abgefragt wird.

				
					homekit_server_config_t config = {
  .accessories = accessories,
  .password = "111-11-111"
};
				
			

Hinweis:

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.

				
					homekit_characteristic_t nameS1 = HOMEKIT_CHARACTERISTIC_(NAME, "Garagentor");
homekit_characteristic_t nameS2 = HOMEKIT_CHARACTERISTIC_(NAME, "Garagenteilöffnung");

  HOMEKIT_ACCESSORY(.id = 2, .category = homekit_accessory_category_garage, .services = (homekit_service_t*[]) {
    HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics = (homekit_characteristic_t*[]) {
      HOMEKIT_CHARACTERISTIC(NAME, "Garagenteilöffnung"),
                             HOMEKIT_CHARACTERISTIC(MANUFACTURER, "arduino-projekte.info"),
                             HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "SN081523"),
                             HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266 D1 Mini"),
                             HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"),
                             HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify),
                             NULL
    }),
				
			

Folgende Bauteile wurde verwendet:

Affiliate Link​​

Letzte Aktualisierung am 24.10.2021 / Affiliate Links / Bilder von der Amazon Product Advertising API