ekey - per Script Türe entriegeln

Hallo, ich habe eine Ekey-Net Anlage. Die Türen lassen sich öffnen über Fingerprint und über die Web-Interface. Es gibt keine anderen Möglichkeiten laut Tech Support. Also: wenn ich die Türe von IPS öffnen lassen will, muss ich die Webseite einlesen und manipulieren.

Leider bin ich aufgewachsen in einer Aera, als nur Fortran und Cobol existierten (und Rechner mit Lochkarten geladen wurden), und habe HTLM-Programmierung in der Schule nicht gelernt. Kann mir jemand helfen, dies zu tun? Im wesentlichen müss ich eine Combo-Box wählen und den Befehl posten. Hier ist der Seiten-Quelltext:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 transitional//EN">
<html><head><META http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"><script language="javascript">
function Ch() { }
</script><style type="text/css">body, input, table, select { font-size:20px;
 font-family:Verdana,sans-serif; font-weight:normal; }</style><title>ekey 
net Terminal Server GRUEMPELCHAMMER</title></head><body><table>
<tr><td><img src="w.gif"></td></tr></table><form action="104" 
method="post"><table><tr><td>Device</td><td><select name=t>
<option value='1049613'>SE Aussenhülle</option></select></td></tr>
<tr><td>Action</td><td><select name=a><option value='0' 
selected="selected">State</option>
<option value='1'>Impulse Relay Output 1
</option><option value='2'>Impulse Relay Output 2
</option><option value='3'>Impulse Relay Output 3
</option><option value='4'>Impulse Relay Output 4
</option><option value='5'>Relay Output 1 On
</option><option value='6'>Relay Output 2 On
</option><option value='7'>Relay Output 3 On
</option><option value='8'>Relay Output 4 On
</option><option value='9'>Relay Output 1 Off
</option><option value='10'>Relay Output 2 Off
</option><option value='11'>Relay Output 3 Off
</option><option value='12'>Relay Output 4 Off
</option><option value='15'>Relay Output 4 On, LED On
</option><option value='18'>Relay Output 4 Off, LED Off
</option><option value='23'>Toggle Relay Output 1
</option><option value='24'>Toggle Relay Output 2
</option><option value='25'>Toggle Relay Output 3
</option><option value='26'>Toggle Relay Output 4
</option><option value='30'>Impulse local Relay Output 1
</option><option value='31'>Local Relay Output 1 On
</option><option value='32'>Local Relay Output 1 Off
</option><option value='33'>Local Relay Output 1 Toggle
</option><option value='34'>Composite CP switch output 1
</option><option value='35'>Composite CP switch output 2
</option><option value='36'>Composite CP switch output 3
</option><option value='37'>Composite CP switch output 4
</option><option value='38'>Composite CP switch output 5
</option><option value='39'>Composite CP switch output 6
</option><option value='40'>Composite CP switch output 7
</option><option value='41'>Composite CP switch output 8
</option><option value='42'>Composite CP switch output 9
</option><option value='43'>Composite CP switch output 10
</option><option value='44'>Composite CP switch output 11
</option><option value='45'>Composite CP switch output 12
</option><option value='46'>Composite CP switch output 13
</option><option value='47'>Composite CP switch output 14
</option><option value='48'>Composite CP switch output 15
</option><option value='49'>Composite CP switch output 16
</option><option value='50'>Composite CP switch output 17
</option><option value='51'>Composite CP switch output 18
</option><option value='52'>Composite CP switch output 19
</option><option value='53'>Composite CP switch output 20
</option><option value='54'>Composite CP switch output 21
</option><option value='55'>Composite CP switch output 22
</option><option value='56'>Composite CP switch output 23
</option><option value='57'>Composite CP switch output 24
</option><option value='58'>Composite CP switch output 25
</option><option value='59'>Composite CP switch output 26
</option><option value='60'>Composite CP switch output 27
</option><option value='61'>Composite CP switch output 28
</option><option value='62'>Impulse relay 1 with Keep-Switched
Function</option><option value='63'>Impulse relay 2 with Keep-Switched 
Function</option><option value='64'>Impulse relay 3 with Keep-Switched 
Function</option><option value='65'>Impulse relay 4 with Keep-Switched 
Function</option><option value='1000'>GarageHausEingangstür 
Oeffnen</option><option value='1001'>SE Lift, Keller AAG öffnen</option>
</select>
</td></tr><tr><td><input type=submit value=" Send ">
</td></tr></table></form></body></html>

Kann mir wirklich niemand auf die Sprünge helfen? Ich nehme an, ich muss diese rudimentäre Webseite mit einer WWW-Instanz in IPS laden. Soweit komme ich schon. Unklar ist mir aber, wie ich den „Send“-Knopf dann programmatisch drücken soll. Um jede Hilfe wäre ich SEHR dankbar! Wenn ich einen ungefähren Hint bekomme, kann ich den Rest wahrscheinlich selber herausfinden…

Das kennst Du schon.

Jawoll. Auswerten des UDP-Pakets geht prima, und ich habe ins Forum auch den entsprechenden Skript zur Verfügung gestellt. Jetzt geht es nicht darum, IPS zu informieren über den ekey-Status, sondern Ekeyn direkt von IPS zu steuern. Das geht nur über die Webinterface.

Meine Frage ist genaugenommen nicht ekey-spezifisch: es geht darum, ganz allgemein ein Webformular auszuwerten und mittels IPS auszufüllen und abzuschicken. Die ekey-Webseite ist ein (vermutlich sehr einfacher) Sonderfall davon.

ich habe verstanden, dass ich das Login mit CURL erwirken muss. Klappen tut es aber noch nicht. Kann mir jemand sagen, was ich falsch mache? Das wäre mein Skript:


$url = "http://100.100.100.13:58007/admin";
$postData = array('p' => 'blahblah');
$handle = curl_init("$url");
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle, CURLOPT_POSTFIELDS, $postData);

ob_start();  // buffer
curl_exec($handle);
curl_close($handle);  // curl schliessen

$result = ob_get_contents();
ob_end_clean();
echo $result;
?>

@aag

Off Topic:

„programmatisch“ gehe ich auch meistens vor, hat mit der Funktion von „Programmen“ und Scripten wenig zutun… das wäre eher „programmtechnisch“ o.ä.
Deshalb habe ich mal den Titel geändert. Vielleicht wird ja auch der Begriff in CH beidseitig verwendet… aber hier verwirrt er mehr :rolleyes:

das Abbilden der Seite im Debug-Fenster des IPS-Skripts wirft jedes Mal eine Javascript-Fehler auf. Ich vermute, dass dies das Problem sei. Weiss jemand, wie ich diesen Fehler beheben kann?

Untitled-1.jpg

Ignorieren.

So theoretisch ist das jetzt etwas schwierig, aber ich denke folgendes müsste gehen:


<?php
    // define url and params
    $url = "http://100.100.100.13:58007/admin";
    $postData = array('t' => '1049613', 'a' => 1000);

    // create curl
    $handle = curl_init($url);
    curl_setopt_array($handle, array(
        CURLOPT_RETURNTRANSFER     => true,        // return web page
        CURLOPT_HEADER             => false,        // don't return headers
        CURLOPT_ENCODING           => '',           // handle all encodings
        CURLOPT_USERAGENT          => 'ips',    // who am i
        CURLOPT_AUTOREFERER        => true,        // set referer on redirect
        CURLOPT_CONNECTTIMEOUT     => 15,    // timeout on connect
        CURLOPT_TIMEOUT            => 15,    // timeout on response
        CURLOPT_MAXREDIRS          => 10,            // stop after 10 redirects
        CURLOPT_POST            => true,        // post data
        CURLOPT_POSTFIELDS        => $postData
    ) );

    // get request data
    $result = curl_exec($handle);
    $errNo    = curl_errno($handle);
    $errMsg = curl_error($handle);
    curl_close($handle);
    
    echo ($errNo==0 ? 'OK' : "ERROR: $errNo - $errMsg");
?>


das müsste die „GarageHausEingangstür“ schalten, was mich noch ein wenig verwundert ist die action=104, könnte bedeuten, dass du als URL statt http://100.100.100.13:58007/admin dann das http://100.100.100.13:58007/104 machen musst

Also, PICS war so freundlich und hat ein Paar Stunden seines Sonntags, sowie eine Skype-Telekonferenz, in dieses Projekt investiert. Und siehe da, es funktioniert nun alles.

Ab jetzt kann Ekey nicht nur Meldungen an IPS (via UDP) weiterreichen, sondern es kann auch von IPS gesteuert werden! Die enstprechenden Skripte folgen. Vielen herzlichen Dank an PICS für die kompetente Hilfe!

Das hört sich spannend an. Wäre das ein guter Ersatz für eine KeyMatic? Da gibt es ja leider nur Bastellösungen um sie von Außen mit Codeschloss oder Fingerprintreader öffnen zu können.

Obwohl wenn ich mir den Preis anschaue wird mir schlecht.

Ekey ist in der Tat sehr teuer! Aber bei einem Eigenheim (oder StWE) ist es letztendlich eine wertvermehrende Investition, welche sich bei einem allfälligen Wiederverkauf der Immobilie auswirken kann. Ein neues Auto verliert sein Wert viel schneller als so etwas.

Technisch ist Ekey zuverlässiger, als ich überhaupt erwartet hatte. Ich habe seit Installation (April 2011) keinen einzigen Ausfall gehabt, bei ca. 20 Finger-Events/Tag. Ich hatte anfangs immer ein Schlüssel als Backup getragen, aber inzwichschen lasse ich es, weil ich es nie gebraucht habe.

Kann man also einen Schlüsel noch benutzen? Da ssah mir auf der Webseite nicht so aus weil die doch außen auch so einen Drehknauf haben.

Schlißt das Teil auch komplett 2 mal um damit das Schloss richtig verriegelt ist oder wird das Schloss nur zugezohen und das Teil macht auf? Da hab ich keine richtig eInfo gefunden zu.

Naja, in Summe reden wir da von verschiedenen Teilen:

1.) die Tür
Hier gibt es natürlich verschiedene Varianten:

[ul]
[li]ohne Motorschloss, da wird dann nur der Türöffner bedient und nicht gesperrt[/li][li]mit Motorschloss, da wird auch wirklich auf/zugesperrt.[/li][/ul]
die Variante mit Schloss ist auf jeden Fall zu bevorzugen, hat aber auch Nachteile, weil der Aufsperrvorgang 5 Sekunden dauert, bis das Schloss offen ist. Das ist am Anfang gewöhnungsbedürftig, weil der Fingerprint grün zeigt, aber die Türe nicht offen ist

Viele Hersteller bieten heute Ihre Türen bereits mit Motorschloss und Fingerprint an, in den meisten Fällen handelt es sich um ekey

Motorschloss ist natürlich auch eine Preisfrage, denn das kostet gute 500 Euro extra.
Wichtig hier ist, dass man eine EXTERNE MÖGLICHKEIT für die Tagschaltung hat, wenn man etwa die Türe mal im aufgesperrten Zustand haben möchte.
Oft geht das nur umständlich

2.) der Fingerprint, der in Wirklichkeit ja nur ein Relais schaltet, welches entweder den Türöffner ansteuert oder das Motorschloss. Gibt auch Varianten mit mehr Schaltmöglichkeiten.
In Verbindung mit IPS (ich weiss nicht ob das mit dem normalen ekey.net auch geht) kann man hier sogar noch mehr Intelligenz einbauen, etwa für jeden Finger eine andere Funktion machen, nach dem Motto:

[ul]
[li]rechter Zeigefinger sperrt auf[/li][li]kleiner Finger schaltet alles im Haus aus und aktiviert die Alarmanlage[/li][li]linker Zeigefinger verursacht einen Alarm[/li][/ul]

Auch bei mir, egal ob heiß oder kalt, Sonne oder Regen funktioniert das sehr zuverlässig, inzwischen hab ich das sogar so raus, dass der Prüfvorgang bei nicht mal einer halben Sekunde liegt.

Ich hab mir die EKEY Teile noch mal näher angeschaut. Also die Fingerprint Reader sind auf jeden Fall super interessant. Was ich nicht raus bekommen habe ist, wie man erkennt welcher Finger von welcher Person gescannt wurde.

Ich hab mir aber mal ein paar Gedanken gemacht und dabei ist mir folgende Idee gekommen:

[ul]
[li]Als Zugangskontrolle so einen Fingerprint Reader mit 2 oder drei Relais an die Hauswand
[/li][li]Als Türöffner eine KeyMatic HM angebunden an IPS
[/li][li]Zur Übertragung ein Tasterinterface welches an die Relais angeschlossen wird
[/li][li]Dann zwei Profile erstellen, eines welches die Tür immer öffnet und eines welches nur zu bestimmten Zeiten öffnet
[/li][li]Jeder der immer rein darf bekommt Relais 1 zu seinem Finger zugeordnet, alle anderen Relais 2
[/li][/ul]

Damit könnte ich - ohne jedweden Eingriff oder Abfrage der Protokolle und sicher da HM ja verschlüsselt sendet - meine Steuerung realisieren. Ggf. könnte man noch dafür sorgen, dass wenn man den Finger drüber zieht und die Tür nicht verriegelt war diese dann verriegelt oder das an das dritte Relais koppel und dann z.B. mit demZeigefinger auf und mit dem Mittelfinger zu sperren.

Wäre das so machbar oder habe ich einen Denkfehler in meiner Überlegung?

Es geht noch einfacher. Mit der Ekey-Software kannst für jeden Benutzer einen Zeitfenster definieren, wo er rein darf oder nicht. Das soll nicht heissen, dass die Ekey-Software perfekt ist (die UI treibt mich manchmal in den Wahnsinn), aber sie ist schon ziemlich flexibel.

Bei jedem Fingerevent (auch Nicht-Erkennung) wird ein UDP-Paket ins LAN gesetzt. Dieser kann von IPS abgefangen werden und allerlei auslösen (bei mir z.B. Lift hochfahren, Licht im Eingang einschalten, sowie ein Gong im Sportraum auslösen, damit ich weiss, ob jemand reinkommt während ich mich auf dem Elliptical quäle:).

Aber was ekey selber macht, ist letztlich nur Kontakte öffnen oder schliessen. Welche Lösung für die Türen Du wählen willst, ist Dir überlassen. Für die Haustüren habe ich sehr schicke Motorschlösser installieren lassen. Sie sind sehr leise und genügend kräftig, um die 6 Verriegelungen der Sicherheitstüren zu bewegen. Billig waren sie aber nicht…

das bringt nur nicht den Automationsansatz via IPS weiter: solange Metadaten (z.B. User, Status etc) nicht in IPS übernommen werden können bringt dass nix.

Dazu ist das hier die entscheidende Frage:

Was ich nicht raus bekommen habe ist, wie man erkennt welcher Finger von welcher Person gescannt wurde.

Steht doch alles im UDP-Paket. Ich habe vor ca. 1 Monat einen Script im Forum hinterlegt, welcher das UDP-Paket in seinen Teilen zerlegt und entsprechende Variablen auffüllt.

siehste, schreib’s doch gleich mit rein, dann gibts auch keine Fragen :slight_smile:

Dafür muss man aber die sau teure Net Business Version nutzen. Bei der normalen Home Version gibt es wohl keine Möglichkeit das auszulesen. Aber die Idee mit den drei Relais und der HM Tastaerschnittstelle gefällt mir ganz gut. Muss ich mal weiter spinnen.