Pimp my Türschloss
Mit dem Türschloßantrieb ABUS CFA 1000 kann man Türen nachträglich mit einem motorbetriebenen Schloss nachrüsten. Die Ansteuerungen erfolgt über eingebaute Tasten oder über eine Funkfernbedienung.
Der Türschloßantrieb ABUS CFA 1000 ist inzwischen durch das Nachfolgemodell CFA 3000 ersetzt. Die ältere Version ist aber hackerfreundlicher und auf dem Gebrauchtmarkt relativ günstig zu bekommen.
Vor Jahren hatte ich meine alte Haustüre mit einem CFA 1000 nachgerüstet. Die neue Haustüre hat ein eingebautes motorbetriebenes Schloss. Ich habe nun den dafür nicht mehr benötigten CFA 1000 für eine Zwischentür modifiziert.
Die Funkübertragung erfolgt bei diesem alten Modell auf 868,35 MHz noch unidirektional. Aus Sicherheitsgründen habe ich mich entschieden die Ansteuerung per Funk auf 868,35 MHz zu deaktivieren und den Türschlossantrieb über mein Heimnetz drahtgebunden anzusteuern.
Es gibt mehrere Möglichkeiten die dafür notwendige Schnittstelle nachzurüsten:
Modifizierung eines Funksenders
Das ist die einfachste Variante. Dabei werden die zwei Tasten ( "auf" und "zu" ) einer Funkfernbedienung z.B. mit Transistoren parallel angesteuert. Die Übertragung erfolgt dann von dieser modifizierten Fernbedienung über 868,35 MHz zum Türschloßantrieb.
Vorteile: Keine Modifikation des eigentlichen Türschloßantriebes. Der Anschluss der Tasten in der Fernbedienung ist einfacher möglich. Bei Batteriebetrieb muss man den Türschlossantrieb an der Tür nicht verkabeln.
Interface Keymatic KM 300 RI
Das Interface Keymatic KM 300 RI ermöglicht den Anschluss über Schraubklemmen. Zusätzlich fungiert es als Ladegerät für die Akkus im Türschlossantrieb. Vermutlich wäre es auch schwierig das Interface Keymatic KM 300 RI jetzt noch zu kaufen.
Direktanschluss an die Bedientasten im Türschloßantrieb
Da ich aber den Türschloßantrieb sowieso für die Deaktivierung des Funkmodus öffnen muss habe ich eine Lösung bei der ich meine Steuerung direkt an den Antrieb anschliesse gewählt.
Die zwei eingebaute Tasten ( "auf" und "zu" ) werden per Draht herausgeführt. Dabei kann auch die Stromversorgung von Batteriebetrieb auf Netzbetrieb gleich mit umgestellt werden.
Türschlossantrieb ABUS CFA 1000 mit geöffnetem Gehäuse:
Elektronik-Baugruppen:
Basisplatine
Empfängerplatine
Buchsenplatine
Modifikationen
Deaktivierung des Funkempfängers:
Die Verbindung ST6 von der Basis- zur Empfängerplatine wird unterbrochen. Deshalb wird die Empfängerplatine nicht mehr mit Spannung versorgt und der Empfänger ist deaktiviert.
Anschlüsse für externe Ansteuerungen und Stromversorgung:
Die zwei Anschlüsse für die Tasten TA1 und TA2 kann man leider nur direkt "in" der Taste erreichen. Dazu muss man die Federn der Tasten ( "Knackfrösche") entfernen. Sobald man da jeweils ein Draht angelötet hat können diese Tasten später nicht mehr verwendet werden.
GND | Masse |
+UB | Spannungsversorgung 4,5V (5V ev. auch möglich) |
TA1 | Taste 1 ("geschlossen") |
TA2 | Taste 2 ("offen") |
LED | für Signalisierung (optional) |
Sum | für akustische Signalisierung |
Bei der Betätigung des Türschlosses über die eingebauten Tasten bzw. durch den daran angeschlossenen Arduino wird der Schliessvorgang anscheinend nicht über den LED-Ausgang signalisiert.
Stattdessen werte ich das aktustische Signal am eingebauten Lautsprecher aus. Diese Rückmeldung wird vom Arduino ausgewertet.
(ist noch nicht 100% getestet - Schaltung ist noch in Entwicklung)
Testschaltung für die Ansteuerung von einem Arduino UNO:
Die Digital-Pins 8 und 9 des Arduino UNO sind hier direkt mit den zwei Tasteneingängen des Türschlossantriebs verbunden. Ein Testprogramm steuert diese zwei Eingänge abwechselnd an. Der Motor des CFA 1000 dreht entsprechend dem jeweiligen "Tastendruck" nach rechts bzw. links und öffnet bzw. schliesst das Schloss.
Die direkte Verbindung der Digitalausgänge des Arduino ist nicht empfehlenswert. Nach dem Abschalten des Arduinos traten an den Tasteneingänge undefinierbare Zustände auf und Türschlossantrieb reagierte unvorhergesehen.
Zwischen dem Arduino und dem CFA 1000 muss eine Entkoppelungsstufe z.B. mit Transistoren eingefügt werden.
einfaches Testprogramm ohne Rückmeldung:
void setup() {
Serial.begin(9600);
pinMode( 8 , OUTPUT);
pinMode( 9 , OUTPUT);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
Serial.println("start");
}
void schlossAuf( ) {
Serial.println("auf");
digitalWrite(8, LOW);
delay(500);
digitalWrite(8, HIGH);
}
void schlossZu( ) {
Serial.println("zu");
digitalWrite(9, LOW);
delay(500);
digitalWrite(9, HIGH);
}
void loop() {
schlossAuf();
delay( 10000 );
schlossZu();
delay( 10000 );
}
Als Zwischenschritt bei der Entwicklung läuft nun ein Arduino-Sketch mit dem man das Schloss über die serielle Schnittstelle ansteuern kann. Zusätzlich wird über eine kleine Schaltung die akustische Rückmeldung des Motorschlosses ausgewertet.
/*************************************************************
*
* Türschlossantrieb ABUS CFA 1000 / Keymatic / Hometec
*
* Testprogramm mit serieller Schnittstelle
*
* 13.01.17 JM
*
*/
int flag = 1;
int pin = 0;
int status = 0;
int alterStatus = 0;
unsigned long dauer = 0;
unsigned long start;
#define TIMEOUT 10000
void setup() {
Serial.begin(9600);
pinMode( 8 , OUTPUT); // Taste "zu"
pinMode( 9 , OUTPUT); // Taste "auf"
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
pinMode( 3, INPUT); // Summer
digitalWrite( 3, HIGH);
Serial.println("start");
}
void schlossAuf( ) {
start = millis();
Serial.println();
Serial.println("auf");
digitalWrite(8, LOW);
delay(500);
digitalWrite(8, HIGH);
}
void schlossZu( ) {
start = millis();
Serial.println();
Serial.println("zu");
digitalWrite(9, LOW);
delay(500);
digitalWrite(9, HIGH);
}
void loop() {
byte taste;
if( status == 0 ) { // Wartezustand
if (Serial.available()) { // serielle Schnittstelle für Befehlsempfang
taste = Serial.read();
if( taste == 122 ) {
schlossZu();
status = 1;
}
if( taste == 97 ) {
schlossAuf();
status = 10;
}
}
}
else // Schliessvorgang läuft
{
dauer = millis() - start; // seit der Befehlsausführung verstrichene Zeit
if( dauer > TIMEOUT ) // dauert es zu lange?
status = 99;
}
switch ( status ) {
case 0:
start = millis();
break;
case 5: // erfolgreich zugeschlossen
Serial.print( dauer );
Serial.print( " " );
status = 0;
Serial.print( "ist zu" );
break;
case 70: // erfolgreich aufgeschlossen
Serial.print( dauer );
Serial.print( " " );
status = 0;
Serial.print( "ist offen" );
break;
case 99: // Timeout :-8
Serial.print( "Timeout :-(" );
status = 0;
break;
}
pin = !digitalRead(3);
if( flag != pin ) { // Schaltflanken
if( flag == 1 ) { // => fallende Flanke
switch ( status ) { // fallend
case 2:
status = 3; // zu - kurzer Piep aus
break;
case 4:
status = 5; // zu - langer Piep aus - erfolgreich zugeschlossen
break;
case 20:
status = 30; // auf - kurzer Piep aus
break;
case 40:
status = 50; // auf - langer Piep 1 aus
break;
case 60:
status = 70; // auf - langer Piep 2 aus - erfolgreich aufgeschlossen
break;
}
}
else // => aufsteigende Flanke
{
switch ( status ) {
case 1:
status = 2; // zu - kurzer Piep ein
break;
case 3:
status = 4; // zu - langer Piep ein
break;
case 10:
status = 20; // auf - kurzer Piep ein
break;
case 30:
status = 40; // auf - langer Piep 1 ein
break;
case 50:
status = 60; // auf - langer Piep 2 ein
break;
}
}
}
flag = pin;
if( alterStatus != status ) {
Serial.print( " " );
Serial.print( status );
Serial.print( " " );
alterStatus = status;
}
delay( 10 );
}
= Artikel ist noch in Arbeit - Teile davon sind noch nicht getestet - vor Nachbau bitte noch etwas abwarten =
...
06.07.2017
Dipl.-Ing. (FH) Jürgen Mayer, DL8MA - Weinstadt-Grossheppach
Impressum