{"id":997,"date":"2015-05-07T23:11:04","date_gmt":"2015-05-07T22:11:04","guid":{"rendered":"http:\/\/www.familie-christian.com\/hausbau\/?p=997"},"modified":"2016-03-08T09:30:03","modified_gmt":"2016-03-08T08:30:03","slug":"der-weru-ekey-hack-part-2","status":"publish","type":"post","link":"https:\/\/www.familie-christian.com\/hausbau\/?p=997","title":{"rendered":"Der Weru-ekey-Hack Part 2"},"content":{"rendered":"<p>Es hat eine Weile gedauert, aber nun ist es soweit: Ich bekomme den Namen desjenigen, der seinen Finger \u00fcber den Scanner zieht auf den KNX Bus gesendet.<\/p>\n<p>Mein pers\u00f6nlicher Dank geht an <em>UweH<\/em> aus dem KNX User Forum. <a href=\"http:\/\/knx-user-forum.de\/forum\/%C3%B6ffentlicher-bereich\/knx-eib-forum\/diy-do-it-yourself\/34358-ekey-fingerscanner-per-rs485-auslesen-protokollanalyse?p=617943#post617943\" target=\"_blank\">Er war es der mit Oszi und viel Kreativit\u00e4t das meiste entschl\u00fcsselt hat.<\/a><\/p>\n<p>Basierend auf seiner Implementierung f\u00fcr einen AVR Microcontroller, habe ich eine Java-Konsolenanwendung geschrieben, welche auf der einen Seite vom eKey den Finger liest, und auf der anderen Seite den Namen und\/oder eine ID der zum Finger geh\u00f6rt auf den KNX Bus sendet:<\/p>\n<p><a href=\"http:\/\/www.familie-christian.com\/hausbau\/wp-content\/uploads\/2015\/05\/ekey-decoder-log.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-998\" src=\"http:\/\/www.familie-christian.com\/hausbau\/wp-content\/uploads\/2015\/05\/ekey-decoder-log.png\" alt=\"ekey-decoder-log\" width=\"1049\" height=\"106\" \/><\/a><!--more--><br \/>\nVoraussetzungen f\u00fcr den Betrieb der Software:<\/p>\n<ol>\n<li>Ein Computer auf dem Java installiert ist (Intel-PC, Raspberry Pi, Virtualbox, &#8230;) und der \u00fcber einen Netzwerkanschluss jedweder Art (LAN\/WLAN\/&#8230;) verf\u00fcgt.<\/li>\n<li>Einen RS485 Adapter (USB-&gt;RS485 Adapter f\u00fcr unter 3EUR, g\u00fcnstig geschossen in &#8222;der Bucht&#8220;)<\/li>\n<li>Einen IP-Router der KNX mit dem Netzwerk verbindet<\/li>\n<\/ol>\n<p>Was die Software kann:<\/p>\n<ul>\n<li>F\u00fcr sehr viele Finger einen eindeutigen Hashwert ausgeben<\/li>\n<li>Den Hashwert in einer Konfigurationstabelle nachschlagen und einen Namen dazu ermitteln<\/li>\n<li>Sowohl Hashwert als auch Name auf jeweils eine konfigurierte KNX Gruppenaddresse schicken.<\/li>\n<li>Die Software kann direkt von einer seriellen Schnittstelle lesen, oder von einem Netzwerksocket (sofern man die serielle Schnittstelle mit <a href=\"http:\/\/ser2net.sourceforge.net\/\" target=\"_blank\">Software<\/a> oder <a href=\"http:\/\/de.moxa.com\/product\/nport_5110.htm\" target=\"_blank\">Hardware<\/a> auf Netzwerkebene adaptiert hat). F\u00fcr Debug-Zwecke kann auch eine Dump-Datei eingespielt werden.<\/li>\n<\/ul>\n<p>Und damit sind wir auch schon bei dem was die Software nicht kann:<\/p>\n<p>Wenn man z.B. im eKey den Benutzer 1 mit Finger 3 programmiert hat, dann spuckt die Software nicht von alleine aus dass das Benutzer 1 mit Finger 3 war der die T\u00fcr ge\u00f6ffnet hat. Sie spuckt lediglich einen 1-byte langen Hexadezimalwert aus. Beispielsweise 0x68.<\/p>\n<p>Hier muss man die Zuordnung selbst treffen. Also Benutzer und Finger programmieren, dann den Finger dr\u00fcber ziehen und dann schauen welcher Hex-Wert von der Software angezeigt wird. Diesen Wert kann man dann in einer Konfigurationsdatei mit einem Namen versehen (muss man aber nicht). Fertig.<\/p>\n<p>Der computeraffine Leser und eKey Nutzer erkennt gleich: Moment: Bei maximal m\u00f6glichen 99 Benutzern mit jeweils 10 Fingern w\u00e4ren das 990 M\u00f6glichkeiten. Ein einzelnes Byte kann aber nur 256 m\u00f6gliche Werte. Das passt nicht.<\/p>\n<p>Richtig. Das passt nicht. Die L\u00f6sung funktioniert aktuell nur f\u00fcr &#8222;Kleininstallationen&#8220; wie man sie \u00fcblicherweise in Ein- oder Mehrfamilienh\u00e4usern antrifft. Mehr wie 256 Finger gehen aktuell nicht. Wobei es aber durchaus sein kann dass es weniger als 256 sind die sauber erkannt werden. So genau ausprobiert hat das, aus Mangel an Fingern, noch niemand.<\/p>\n<p>Ein letzter Haken noch zum Schluss: Es werden nur korrekt erkannte Finger ausgegeben. Fehlscans k\u00f6nnen nicht erkannt werden. Das w\u00e4re aber auch wohl nur f\u00fcr Aufzeichnungszwecke sinnvoll. Viel h\u00e4ufiger wird man sich f\u00fcr den korrekt erkannten Finger interessieren.<\/p>\n<p>Nichts desto trotz: Die aktuelle L\u00f6sung sollte wohl &gt;90% des &#8222;Bastlerbedarfs&#8220; decken. Wer noch gr\u00f6\u00dfere Anlagen installiert, f\u00fcr den sind die rund 250EUR f\u00fcr das fertige Ger\u00e4t von eKey auch nicht zu teuer.<\/p>\n<p>Noch l\u00e4uft die Software in einer Teststellung und ist (noch) nicht produktiven Einsatz. Aber das wird sich in den n\u00e4chsten Wochen wohl \u00e4ndern. Bis dahin noch etwas Geduld. Wenn alles zufriedenstellend l\u00e4uft, wird der Code ver\u00f6ffentlicht.<\/p>\n<p>[UPDATE]<\/p>\n<p>Der Code ist mittlerweile hier zu finden:<\/p>\n<p><a href=\"https:\/\/github.com\/tuxedo0801\/ekeydecoder\" target=\"_blank\">https:\/\/github.com\/tuxedo0801\/ekeydecoder<\/a><\/p>\n<p>Ab und an gibt&#8217;s wohl noch einen kleinen &#8222;H\u00e4nger&#8220;, aber im gro\u00dfen und ganzen l\u00e4uft das recht zuverl\u00e4ssig. Was ich allerdings nach wie vor noch nicht 100%ig wei\u00df ist, ob jeder Finger erkannt wird. Dazu fehlt mir noch beim \u00d6ffnen der T\u00fcr die direkte R\u00fcckkopplung der Software. Aber ich geh bisher davon aus dass alles passt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es hat eine Weile gedauert, aber nun ist es soweit: Ich bekomme den Namen desjenigen, der seinen Finger \u00fcber den Scanner zieht auf den KNX Bus gesendet. Mein pers\u00f6nlicher Dank geht an UweH aus dem KNX User Forum. Er war &hellip; <a href=\"https:\/\/www.familie-christian.com\/hausbau\/?p=997\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,5,66],"tags":[84,79,125,80,81,82,83],"class_list":["post-997","post","type-post","status-publish","format-standard","hentry","category-diy-loesungen","category-knx","category-smarthome","tag-converter","tag-ekey","tag-github","tag-hack","tag-protokoll","tag-rs485","tag-udp"],"_links":{"self":[{"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/posts\/997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=997"}],"version-history":[{"count":4,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions"}],"predecessor-version":[{"id":1101,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=\/wp\/v2\/posts\/997\/revisions\/1101"}],"wp:attachment":[{"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.familie-christian.com\/hausbau\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}