Ansteuerung einer Hörmann SupraMatic E2 per UAP1 und HM

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von dtp » 04.11.2017, 10:45

Hier dann mal ein paar Bilder der fertig aufgebauten Universaladapterplatine UAP1. Der DC-Buck-Converter bezieht seine Spannung über die Klemmen 5/24V und 20/0V der UAP1. Damit sich die am DC-Buck-Converter eingestellte Sekundärspannung von 3 Volt nicht verändern kann, habe ich die Potiwendel mit einem Tropfen Heißkleber fixiert. Achtung, die 3 Volt Sekundärspannung des DC-Buck-Converters zunächst im nicht angeschlossenen Zustand per Multimeter einstellen, um eine Beschädigung der HM-Komponenten zu vermeiden.
Hörmann_UAP1_HM_03.jpg
Hörmann_UAP1_HM_04.jpg
Das Belegungsschema zwischen UAP1 und den beiden HM-Komponenten lautet wie folgt:
Hörmann_UAP1.jpg
HM-LC-Sw4-Ba-PCB Kanal 1: + -> 17/S4, - -> 20/0V (Tor schließen/stoppen)
HM-LC-Sw4-Ba-PCB Kanal 2: + -> 15/S2, - -> 20/0V (Tor öffnen/stoppen)
HM-LC-Sw4-Ba-PCB Kanal 3: + -> 23/S3, - -> 20/0V (Tor lüften)
HM-LC-Sw4-Ba-PCB Kanal 4: + -> 10/S5, - -> 20/0V (Licht an/aus)

HM-MOD-EM-8 Kanal 1: 2/TA1 -> 01.5, GND -> 01.8 (Tor offen -> geschlossen)
HM-MOD-EM-8 Kanal 2: 3/TA2 -> 02.5, GND -> 02.8 (Tor geschlossen -> offen)
HM-MOD-EM-8 Kanal 3: 4/TA3 -> 03.5, GND -> 03.8 (Tor fährt bzw. Licht an/aus, abhängig von Menü 5 der SupraMatic E2)
HM-MOD-EM-8 Kanäle 4 bis 8: inaktiv gesetzt bzw. für andere Zwecke nutzbar

Da die UAP1 per Impuls gesteuert wird, dürfen die vier Kanäle des HM-LC-Sw4-Ba-PCB jeweils nur für eine Sekunde eingeschaltet sein und müssen danach wieder ausgeschaltet werden. Hier geht's zu den entsprechenden WebUI-Programmen und Einstellungen. Da sich die beiden Relais von Kanal 1 und 2 nur im vollkommen geschlossenen bzw. offenen Zustand des Tors invers zueinander verhalten und ansonsten gleiche Zustände aufweisen, kann man sie mit einem entsprechenden Programm sehr gut zur Detektion des Zustands "Tor lüften" verwenden. Sprich, mit der UAP1 und den drei Kanälen des HM-MOD-EM-8 lassen sich die folgenden Tor-Zustände erfassen: Tor offen, Tor lüften, Tor geschlossen, Tor fährt.

Und hier noch ein paar Bilder der fertigen UAP1 und vom endgültigen Montageort in der Garage.
Hörmann_UAP1_HM_05.jpg
Hörmann_UAP1_HM_06.jpg
Hörmann_UAP1_HM_07.jpg
Hörmann_UAP1_HM_08.jpg


Gruß,

Thorsten
Zuletzt geändert von dtp am 03.07.2019, 14:22, insgesamt 14-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Cash » 04.11.2017, 15:18

Sauber.

Ich habe heute auch schon ein bißchen gebastelt um den Fensterkontakt anzubringen. Muss jetzt aber erstmal ein paar Sachen aus dem Baumarkt kaufen. Bei mir wird es auch nucht so ordentlich sondern mehr quick und dirty :mrgreen:

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von dtp » 04.11.2017, 17:08

Danke. Sieht aber auch nur "so sauber" aus, weil die HM-Komponenten perfekt in das UAP1-Gehäuse passen. ;)

Mittlerweile habe ich soweit alles im WebUI und an der SupraMatic konfiguriert. Vielleicht interessiert's ja noch jemanden.

Zustandserfassung

Nach Verbindung der UAP1 mit der SupraMatic E2 mittels des mitgelieferten Buskabels habe ich zunächst Menü 5 an der SupraMatic E2 derart eingerichtet, dass das Optionsrelais während der Torfahrt ein- und ansonsten ausgeschaltet ist (Menüpunkt 7). Auf diese Weise kann ich Kanal 3 des HM-MOD-EM-8 zur Detektion der Torfahrt verwenden. Ist nicht unbedingt wichtig, aber trotzdem ein ganz nettes Feature. 8)
SupraMatic_Menü5.png
Entsprechend habe ich eine Systemvariable "EG Garage SV Tor" vom Typ Werteliste mit den Werten "geschlossen;gelüftet;geöffnet;fährt" im WebUI der CCU erzeugt.
EG Garage SV Tor.png
EG Garage SV Tor.png (12.24 KiB) 4801 mal betrachtet
Diese Systemvariable wird mit dem nachfolgenden Programm "EG Garage PRG SV Tor" verändert.
EG Garage PRG SV Tor.png
Dabei ist wichtig, dass der Status von "EG Garage Torfahrt" als erstes abgefragt wird, weil ansonsten keine Umschaltung der Systemvariable "EG Garage SV Tor" auf "geöffnet", "gelüftet" oder "geschlossen" erfolgt. Wie man sieht, werden für die drei letzten Zustände die beiden Kanäle "EG Garage Tor invers" und "EG Garage Tor" des 8-Kanal Funk-Sendemoduls HM-MOD-EM-8 erfasst, wobei einmal auf die Änderung von "EG Garage Tor invers" und die beiden anderen Male auf die Änderung von "EG Garage Tor" mit jeweiliger Prüfung des anderen Kanals reagiert wird.

Der Zustand der Systemvariablen "EG Garage SV Tor" wird dann primär zur Anzeige in ioBroker vis ausgewertet.

Torsteuerung

Die Steuerung des Tors kann wahlweise herkömmlich per Hörmann-Fernbedienung oder über die HomeMatic erfolgen. Für die obige Zustandserfassung ist das egal.

Mit dem nachfolgenden Programm schalte ich jeden Kanal des Funk-Schaltaktors 4-fach, HM-LC-Sw4-Ba-PCB, nach einer Sekunde wieder aus. Dies ist wichtig, da die SupraMatic nur mit Tastersignalen angesteuert werden sollte. Dauerhafte Schaltsignale würde andere Schaltsignale blockieren.
EG Garage PRG Tor Steuerung.png
Man hätte hier natürlich auch direkt die Einschaltdauer setzen und übertragen können, doch dann würden sich die Kanäle bei Ansteuerung per Siri über die Homebridge nicht wieder automatisch nach einer Sekunde ausschalten. Daher bevorzuge ich hier zu geringen Lasten des Duty Cycle klar die Variante über das separate Ausschalten der Kanäle.

Fehlerüberwachung bzw. aktiver Einklemmschutz

Die SupraMatic verfügt über einen integrierten Einklemmschutz, der das Tor automatisch wieder zurückfährt, wenn es einen Widerstand detektiert hat. Leider wird dies aber nicht entsprechend durch die UAP1 erfasst, sondern nur an der SupraMatic selbst angezeigt. Ich habe mir daher ein kleines HM-Skript geschrieben, mit dem ich einen Fehler des Tors trotzdem angezeigt bekomme. Das zugehöre Programm macht nichts anderes, als dass es auf eine Änderung der Systemvariablen "EG Garage SV Tor" reagiert.
EG Garage PRG Tor Fehler.png
Hier das vom WebUI-Programm aufgerufene HM-Skript.

Code: Alles auswählen

! Meldung von Fehlzuständen des Garagentors
! Version 1.2, Autor: dtp
 
! +++++ Namen der Kanäle für die Garagentorsteuerung +++++
string garageDoorClose = "EG Garage Tor schließen";
string garageDoorOpen = "EG Garage Tor öffnen";
string garageDoorAir = "EG Garage Tor lüften";
 
! +++++ Namen der verwendeten Systemvariablen +++++
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPresent = "Haus SV Anwesenheit"; ! Anwesenheit, obligatorisch
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
 
! +++++ Name des zentralen Push-Nachrichten-Programms +++++
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
 
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
 
! +++++ Variablendeklaration +++++
string source; string garageDoorStatus; string message;
integer timeDiffClose; integer timeDiffOpen; integer timeDiffAir;
 
! +++++ Auslesen der auslösenden Systemvariablen für die Torbetätigung +++++
source = dom.GetObject("$src$");
garageDoorStatus = source.ValueList();
garageDoorStatus = garageDoorStatus.StrValueByIndex(";", source.Value());
 
! +++++ Erfassung der Auslösezeitpunkte und -differenzen +++++
timeDiffClose = (source.Timestamp().ToInteger() - ((dom.GetObject(ID_CHANNELS).Get(garageDoorClose)).DPByHssDP("STATE")).Timestamp().ToInteger()).Abs();
timeDiffOpen = (source.Timestamp().ToInteger() - ((dom.GetObject(ID_CHANNELS).Get(garageDoorOpen)).DPByHssDP("STATE")).Timestamp().ToInteger()).Abs();
timeDiffAir = (source.Timestamp().ToInteger() - ((dom.GetObject(ID_CHANNELS).Get(garageDoorAir)).DPByHssDP("STATE")).Timestamp().ToInteger()).Abs();
 
! +++++ Erzeugung der Fehlermeldungen +++++
if((timeDiffAir < 30) && (timeDiffAir < timeDiffClose) && (timeDiffAir < timeDiffOpen)){
  if(garageDoorStatus != "gelüftet"){message = "<font color=orange>Achtung, Fehlfunktion Garagentor ("#garageDoorStatus#" statt gelüftet)!</font>";}

  ! ----- Setzen der Priorität für die Push-Nachricht -----
  (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");

  ! ----- Sound für Pushover-Nachricht -----
  if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("gamelan");}
}
elseif((timeDiffClose < 35) && (timeDiffClose < timeDiffOpen)){
  if(garageDoorStatus != "geschlossen"){message = "<font color=red>Achtung, Einklemmschutz Garagentor ("#garageDoorStatus#" statt geschlossen)!</font>";}

  ! ----- Setzen der Priorität für die Push-Nachricht -----
  (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("1");

  ! ----- Sound für Pushover-Nachricht -----
  if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("siren");}
}
elseif((timeDiffOpen < 25) && (timeDiffOpen < timeDiffClose)){
  if(garageDoorStatus != "geöffnet"){message = "<font color=orange>Achtung, Schwergängigkeit Garagentor ("#garageDoorStatus#" statt geöffnet)!</font>";}

  ! ----- Setzen der Priorität für die Push-Nachricht -----
  (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");

  ! ----- Sound für Pushover-Nachricht -----
  if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("gamelan");}
}
!message = message#" (geschlossen: "#timeDiffClose#", geöffnet: "#timeDiffOpen#" gelüftet: "#timeDiffAir#")";
  
! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
 
Dieses vergleicht den aktuellen Status der Systemvariablen "EG Garage SV Tor" mit dem zuletzt gesetzten Kanal des Funk-Schaltaktors 4-fach, HM-LC-Sw4-Ba-PCB. Gibt es hier eine Abweichung, weil das Tor z.B. trotz Schließbefehl in die Position "gelüftet" gefahren wurde, wird eine entsprechende Push-Nachricht gesendet. Da es bei Ansteuerung des Garagentors über eine Hörmann-Fernbedienund oder direkt an der SupraMatic in der Regel zu einer Abweichung zwischen der Systemvariablen "EG Garage SV Tor" und dem letzten Auslösebefehl über den HM-LC-Sw4-Ba-PCB kommt, habe ich zusätzlich noch Zeitfenster eingeführt (25 Sekunden für das Öffnen, 35 Sekunden für das Schließen, 30 Sekunden für das Lüften), so dass die Fehlermeldungen unterdrückt werden, wenn diese Zeitfenster überschritten wurden.

Die Meldungen für eine schwergängiges Garagentor bzw. nach Aktivierung des Einklemmschutzes sehen dann unter Pushover z.B. so aus:
Pushover_Garagentor_Fehler.PNG
Garagentor Fehler.hsc
(3.79 KiB) 89-mal heruntergeladen
Lichtsteuerung

Was liegt näher, als einen bereits in der Garage eingesetzten HM-Aktor für eine Garagenbeleuchtung auch direkt in Abhängigkeit vom Zustand des Garagentors anzusteuern? Mit dem nachfolgenden, kleinen Programm habe ich dies realisiert.
EG Garage PRG Licht.png
Wird das Tor geöffnet, und der Helligkeitssensor eines auf der Gartenterrasse positionierten Bewegungsmelders detektiert einen Helligkeitswert von unter 100, so wird das Licht in der Garage beim Öffnen des Garagentors automatisch für zwei Minuten eingeschaltet. Wird das Garagentor geschlossen, so wird das Licht ausgeschaltet. Da bei uns die Garage nicht als Werkstatt oder dergleichen dient, kann dieses Programm so einfach gehalten werden.
Zuletzt geändert von dtp am 16.09.2019, 19:34, insgesamt 18-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von dtp » 05.11.2017, 11:18

Hier ein Screenshot der Home App zur Steuerung des Garagentors per SIRI.
HomeApp_Garage.PNG
In der config.json sollten dazu die Kanäle 1 bis 3 des HM-LC-Sw4-Ba-PCB wie folgt eingefügt werden, damit sie in der Home App nicht als Licht erscheinen.
config_json_Garagentor.png
Eine Einbindung des HM-LC-Sw4-Ba-PCB unter "doors" oder "windows" wird derzeit nicht unterstützt und führt zur Anzeige in der Home App als Licht. Ist eher eine kosmetische Sache, aber ich wollte es zumindest kurz erwähnt haben.

So sieht's auf der Watch aus:
Watch Garagentor schließen.PNG
Watch Garagentor schließen.PNG (133.53 KiB) 7126 mal betrachtet
Gruß,

Thorsten
Zuletzt geändert von dtp am 16.09.2019, 19:46, insgesamt 3-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Cash » 05.11.2017, 11:44

Wofür sind den outlets?

Ich bin jetzt zumindest schonmal so weit:
CA206052-EBE3-446F-B032-5A73E6CB8FFB.jpeg

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von dtp » 05.11.2017, 12:13

Cash hat geschrieben:Wofür sind den outlets?
Outlets sind Steckdosen.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Cash » 06.11.2017, 20:02

Heute nochmal weitergebastelt. Habe schonmal zwei Programme angelegt und in Homekit eingebunden. Die Programme senden derzeit aber nur eine Push. Soweit so gut. Muss aber nochmal zum Baumarkt. Die blöde Verteilerdose ist zu klein :evil:
B36BDD8B-A77B-44E2-BCBC-93716290B465.jpeg
B36BDD8B-A77B-44E2-BCBC-93716290B465.jpeg (23.8 KiB) 7074 mal betrachtet

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Cash » 18.11.2017, 20:06

So heute das große Finale :mrgreen:

Habe den HM-LC-Sw4-WM angeschlossen. Den passenden Stromanschluß hat mir freundlicher weise TomT gelötet, so dass ich den Strom für den Aktor vom Tor nehmen konnte.

Das ganze funktioniert nun auch tadellos bis auf eine Kleinigkeit. Ich habe den Aktor angelernt und habe dann bei jedem Kanal die Verweildauer bei Schlatzustand ein auf 1 Sekunde gestellt. Aber genau das funktioniert nicht. Schalte ich nun den ersten Kanal in der Webui auf Ein verbelibt er in dem Zustand (auf dem Aktor leuchtet dann auch das Lämpchen). Ich muss also nachdem ich auf Ein schalte danach erst auf Aus schalten? Das hatte ich mir jetzt irgendwiemanders vorgestellt.

In ein Programm habe ich es noch nicht eingebunden. Das mache ich dann Morgen dort kann ich ja den Zaltzustand auch mit 1 Sekunde begrenzen und das sollte auf jeden Fall funkionieren.

An dieser Stelle auf jeden Fall mein Dank an alle die mir geholfen haben besonders an TomT.

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Sammy » 18.11.2017, 20:23

Wie bei der Konfiguration dabei steht, ist die konfigurierte Einschaltzeit nur für die Bedienung per Gerätetaste.
Nutze bitte virtuelle CCU-Tasten und leg Direktverknüpfungen an!

Gruß Sammy
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Tipps für Garagen-Sektionaltor

Beitrag von Cash » 18.11.2017, 20:51

Das muss ich dann überlesen haben :mrgreen:

Wenn ich nun eine Direktverknüpfung anlege zählt dort die eingestellte 1 Sekunde?

Oder gibt es da dann wieder eine Einstellung wo ich dann 1 Sekunde einstellen muss? Was wäre eigentlich der Vorteil wenn ich das peer Direktverknüpfung über einen virtuellen Kanal löse im Gegensatz zum Programm. Bei beiden muss in diesem Fall ja die ccu funktionieren...

Vorteile Direktverknüpfung mit realen Schaltern sind mir klar...

Antworten

Zurück zu „Projektvorstellungen“