ich habe am Wochenende mal ein kleines Projekt umgesetzt, dass ich "schon immer mal" realisieren wollte - mit Zeug aus meiner Bastelkiste. Ich habe seit mehr als 10 Jahren einen Hörmann Portronic D-5000 Drehtorantrieb für unser Gartentor. Das System läuft seitdem autark, d. h. ich habe als Zubehör die Lichtschranke von Hörmann verbaut, die 24V LED-Warnleuchte und zur Steuerung zwei Funkfernbedienungen (433 Mhz).
Was mich schon immer genervt hat: Manchmal hab ich keine Fernbedienung dabei, neue kosten exorbitant viel (außer bei AliExpress), zudem hätte ich gerne eine Warnung, wenn das Tor offen steht.
Ich habe das ganze System also smart gemacht mit ESP8266 (ESP32 geht natürlich auch, ich hatte den nur noch rumliegen).
Was kann das Ding?
Der ESP greift die Statusrückmeldung "Tor zu" vom Optionsrelais der Hörmannsteuerung (klemmen .5 und .8) ab. Da über dieses Relais auch die 24V Warn-LED gesteuert wird und man nur entweder Statusrückmeldung oder externe LED konfigurieren kann, steuert der ESP jetzt über ein Relais die 24V LED selbst. Über einen Näherungssensor detektiert der ESP zudem die Stellung "Tor auf". Optional kann man natürlich hier auch einen Reedkontakt oder sonstwas verwenden. Über einen Transistor kann der ESP zudem einen Fahrt-Befehl an die Hörmannsteuerung absetzen (Klemme 21).
Alle Dateien zum Nachbau sowie die Config von ESPEasy findet ihr im Anhang im ZIP-Archiv. Die Config.dat kann direkt in ESPEasy importiert weden.
Hörmann Steuerung vorbereiten
Siehe: https://www.tor7.de/media/pdf/e5/08/...-anleitung.pdf
Die Stellung von DIP Schalter 6 und 7 muss auf "AUS" (Das Relais zieht in der Endlage Tor-Zu an). Die 24V LED (wenn vorhanden) wird vom Relais abgeklemmt. Die Lichtschranke verbleibt ganz normal an der Hörmann-Steuerung. Für den ESP greifen wir an Klemme "24V / 0V" die 24V Versorgungsspannung ab.
Klemme 21 (Betr.-Taster) verbinden wir mit der Klemme auf unserer Platine. Diese Klemme wird bei Signal auf GND gezogen und löst eine Fahrt oder einen Stop aus (so wie mit der Fernbediehnung). Klemme .5 und .8 verbinden wir mit der entsprechenden Klemme unserer Platine. Hierüber erhalten wir die Endlage "Tor zu".
Hardware Steuerung vorbereiten
Das Fritzing-File findet ihr im Anhang. Ich hab das ganze Ding auf eine Streifenraster-Platine gebaut (darauf achten, dass die Streifen an zwei Stellen unterbrochen werden müssen - siehe Fritzing File). Was braucht ihr:
- NodeMCU ESP8266 (ESP32 geht natürlich auch, dann aber andere PIN-Belegung beachten!): z. B.: https://www.amazon.de/AZDelivery-Nod.../dp/B074Q2WM1Y
- MP1584en DC-DC Converter (24V -> 5V), oder ähnlich: https://www.amazon.de/s?k=mp1584en+dc-dc+buck+converter
- Näherungssensor LJ12A3-4-Z 6-36V, funktioniert mit 3.3V: https://www.amazon.de/s?k=LJ12A3-4-Z
- 1 Kanal Relaismodul 5V: z. B. https://www.amazon.de/dp/B0DDCCVVVN
- BC547 Transistor: https://www.amazon.de/s?k=bc547+transistor
- 10 kOhm Widerstand: z. B. https://www.amazon.de/Innfeeltech-To...dp/B0CL6MDSHV/
- Klemmen mit 2.54mm Rastermaß: https://www.amazon.de/s?k=terminalblock+2.54
- Kleinkram
Software vorbereiten
Ich nutze ESPEasy auf dem ESP, weil man hier über "Rules" entsprechende Skripte konfigurieren kann (automatisches Blinken der Leuchte, etc. pp.). Jede andere Firmware für einen ESP geht natürlich sicherlich auch.
Ihr flasht also als erstes ESPEasy auf den ESP und richtet Euch WLAN etc. pp. ein: https://github.com/letscontrolit/ESPEasy
Anschließend findet ihr die gesamte Config von mir im anhängenden ZIP-File - oder halt Screenshots zum Einrichten der Devices. Die Rules findet ihr ebenfalls im Anhang, die ihr Euch passend abspeichert und über die "Advanced Settings" auch aktivieren müsst -> siehe ESPEasy Doku: https://espeasy.readthedocs.io/en/latest/
Achtung! Wenn ihr andere GPIOs verwendet (z. B. mit einem ESP32), müsst ihr auch die Rules entsprechend editieren! Hier sind die GPIOs hardcoded!
Software - Status auslesen
Der ESP kann den Status per HTTP, UDP oder MQTT (über z. B. LoxBerry) an den Miniserver senden. Aktiviert unter "Controllers" einfach das, was ihr gerne nutzen wollt.
Folgende Stati gibt es:
- Fahrt=0|1 - Das Tor fährt - weder Endlage zu noch auf ist aktiv
- TorAuf=0|1 - Endlage TorAuf erkannt
- TorZu=0|1 - Endlage TorZu erkannt
- Fehler=0|1 - Fehler (unklarer Endlagenzustand oder die Fashrt ist in den Timeout gelaufen
Generic UDP:
Die Pakete sehen wie folgt aus (bei mir konfiguriert Port 7005) - siehe Controller Einstellungen:
@@garagentor_1_status_Fahrt=1@@garagentor_1_status_TorAuf=0@@garagentor_1_status_TorZu=0@@garagentor_1_status_Fehler=0
Die Stati werden per WebAPI an entsprechend benannte Virtual Inputs gesendet. Die VIrtual Inputs müssen exakt diesen Namen haben oder eine entsprechende Beschreibung - siehe Controller Einstellungen und WebAPI Loxone
/dev/sps/io/garagentor_1_status_Fahrt /dev/sps/io/garagentor_1_status_TorAuf /dev/sps/io/garagentor_1_status_TorZu /dev/sps/io/garagentor_1_status_Fehler
Gleiche Topic-Struktur wie bei HTTP oder UDP
Software - Tor steuern
Man kann ESPEasy über HTTP, UDP oder MQTT (z. B. LoxBerry, dann im Controller ein entsprechendes Topic subscriben) steuern. Der Befehl lautet dabei immer gleich. Die Steuerung versteht zwei Befehle:
- trigger_pre - Es erfolgt zunächst eine 1sekündige "Vor-Warnung" über die 24V Leuchte durch schnelles Blinken, dann erfolgt die Fahrt
- trigger - die Fahrt startet sofort, ohne Vorwarnung
http://<espeasyipaddress>/control?cmd=event,trigger_pre http://<espeasyipaddress>/control?cmd=event,trigger
/dev/udp/<espeasyipaddress>/8266
event,trigger_pre event,trigger
Analog UDP, jeweils am Topic, welches ihr subscribed habt (siehe Controller).
