Ankündigung

Einklappen
Keine Ankündigung bisher.

Gesucht: ekey UDP Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pbm
    antwortet
    Bei mir kommt immer die Serial mit der Nummer vom Fingerscanner, ausser bei fingerok=8, dann kommt "xxxxxxxxxxxxxx".

    Finger erkannt (fingerok=1):

    1_0003_4_80123123123123_1_1 -- fingerok=1, user=0003, relais=1, finger=4, serial=80123123123123

    Finger nicht erkannt (fingerok=2):

    1_0000_0_80123123123123_2_- -- fingerok=2, user=0000, relais=-, finger=0, serial=80123123123123


    Nach UDP-Converter-Bedienungsanleitung müsste fingerok=8 eigentlich bedeuten, dass die Tür durch den digitalen Input am REG-Gerät geöffnet wird. Dann wird keine Serial mitgesendet, also xxxxxxxxxxxxxx.

    1_0000_0_xxxxxxxxxxxxxx_8_1 -- fingerok=8, user=0000, relais=1, finger=0, serial=xxxxxxxxxxxxxx

    Den digitalen Input vom REG-Gerät nutze ich jedoch gar nicht.

    Was mich jetzt etwas beunruhigt, ist dass nach den Logs das Relais 1 wahrscheinlich tatsächlich anzieht.


    Habt ihr den digitalen Input bei Nichtbenutzung auf MINUS der Versorgungsspannung gelegt, um eventuelle Störimpulse sicher zu vermeiden?

    Einen Kommentar schreiben:


  • CornholioLU
    antwortet
    Hallo,

    ja "serial" ist bei mir eigentlich immer "xxxxxxxxxxxxxx":

    Finger erkannt:
    1_0001_1_xxxxxxxxxxxxxx_1_1 -- fingerok=1, user=0001, relais=1, finger=1, serial=xxxxxxxxxxxxxx

    Finger nicht erkannt:
    1_0000_0_xxxxxxxxxxxxxx_2_- -- fingerok=2, user=0000, relais=-, finger=0, serial=xxxxxxxxxxxxxx

    Einen Kommentar schreiben:


  • pbm
    antwortet
    Hallo,

    danke für die Info.

    Auf dem Code kann man aufbauen! Funktioniert auf Anhieb.


    Gelegentlich wird folgendes vom UDP-Converter gesendet:

    1_0000_0_xxxxxxxxxxxxxx_8_1 -- fingerok=8, user=0000, relais=1, finger=0, serial=xxxxxxxxxxxxxx

    (die serial ist tatsächlich "xxxxxxxxxxxxxxxx")


    Passiert das bei dir auch?

    Einen Kommentar schreiben:


  • CornholioLU
    antwortet
    Hallo,

    die 117 ist willkürlich, muss eben nur noch nicht belegt sein von einem anderen socket.

    Einen Kommentar schreiben:


  • pbm
    antwortet
    Danke!

    Das sieht erstmal recht einfach aus.

    Werde morgen am Wochenende mal nach dem Port schauen und Testen.


    Eine Frage noch zum Verständnis:

    socknum = 117 ist willkürlich gewählt, oder muss das die 117 sein?

    Einen Kommentar schreiben:


  • CornholioLU
    antwortet
    Hi,

    ich hab auch 2 eKey Scanner mit UDP am Wiregate am laufen. Das Protokoll ist deutlcih einfach geworden, du kannst jetzt mit dem eKey Config Tool einfach den "Protokoll-Typ" auf "home" setzen, dann noch einen abstandhalter definieren (in meinem Fall = "_").

    Hier mal das Minimum an Code um das ganze ans Laufen zu bringen:
    (mein Wiregate läuft unter 192.168.0.127, und das eKey UDP sendet auf port 5000)

    Code:
    # Eigenen Aufruf-Zyklus setzen (Initialisierung/zyklisches prüfen)
    $plugin_info{$plugname.'_cycle'} = 300;
    
    my $socknum = 117;                # Eindeutige Nummer des Sockets +1
    
    
    #######################
    ### ENDE DEFINITION ###
    #######################
    
    
    # Hauptverarbeitung
    if (!$socket[$socknum]) { # socket erstellen
        if (defined $socket[$socknum]) { #debug
            if ($socket[$socknum]->opened) { $socket[$socknum]->close(); }
            undef $socket[$socknum];
        }  
    
        $socksel->remove($socket[$socknum]);
        $socket[$socknum] = IO::Socket::INET->new(Proto => "udp",
                                  LocalAddr  => "192.168.0.127:5000",
                                  ReuseAddr => 1)
    	     or return ("open of 192.168.0.127:5000 failed: $!");
        $socksel->add($socket[$socknum]); # add socket to select
        $plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
        return "opened UDP-Socket $socknum";
    } 
    
    my $message;
    my $aktion;
    if ($fh) {
        my $strbuf;
        recv($fh,$strbuf,255,0);
        
        my @values = split('_', $strbuf);
        my $userid=$values[1];
        my $fingerid=$values[2];
        my $serial=$values[3];
        my $action=$values[4];
        my $relay=$values[5];
        plugin_log($plugname,"eKey Garage received: " . $strbuf . " --  fingerok=$action, user=$userid, relais=$relay, finger=$fingerid, serial=$serial");
       
    }
    
    return;
    Wichtig zur Auswertung sind danach eigentlich nur $userid und $fingerid.

    Einen Kommentar schreiben:


  • pbm
    antwortet
    Zitat von 2ndsky Beitrag anzeigen
    Also, habe das Plugin umgeschrieben. Läuft jetzt mal ganz rudimentär für einen Finger eines Nutzers. Übernächste Woche muss meine Freundin mit ihren Kiddies ins Schullandheim, dann hab ich etwas Zeit das ganze noch auszubauen und anschließend hier zu posten/ins SVN zu stellen.
    Hallo 2ndsky,

    hast du damals noch am Plugin weiter geschrieben?

    Kannst du den Code mal bitte teilen?
    Ich möchte mich auch gerne mit dem Thema beschäftigen...


    pbm

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Alles klar, dann werde ich den bei Pluginüberarbeitung mal ausbauen. Danke für die Hilfe!

    Einen Kommentar schreiben:


  • makki
    antwortet
    Der RFID-Leser ist seriell angeschlossen, deswegen der socat; und er ist halt ein "Universal-Problemlöser", im Falle der FB damit man sich nicht mit TCP und häppchenweisen Daten rumschlagen muss.
    Wenn die Daten so kommen wie es da bei eKey geschrieben steht, ist er überflüssig, lösch den für diesen Fall einfach mal

    Makki

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Also, habe das Plugin umgeschrieben. Läuft jetzt mal ganz rudimentär für einen Finger eines Nutzers. Übernächste Woche muss meine Freundin mit ihren Kiddies ins Schullandheim, dann hab ich etwas Zeit das ganze noch auszubauen und anschließend hier zu posten/ins SVN zu stellen.

    In den Socketeinstellungen im Webmin habe ich mal als Socket 1 ein udp-listen auf IP:Port des UDP Converters und bei Socket 2 ein localhost:Pluginport gemacht. Die Ampel darunter ist rot, aber im Plugin funktioniert es
    Muss ich da bei Optionen noch irgendwas wichtiges angeben?

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Ah okay, werde ich mal testen. Dachte weil du beim Fritzbox Plugin auch den Umweg über socat empfohlen hast.

    Zu der Verschlüsselung kann ich nichts sagen, ist mir eigentlich auch Wurst. Vielleicht hätte ich das in zwei Tagen auch geknackt, aber die bezahlt mir auch keiner... deshalb kommt es mit dem Original UDP Converter für mich günstiger

    EDIT: im Plugin steht aber unter "benötigt" auch folgendes
    Eintrag unter Socketverbindungen (socat)

    Einen Kommentar schreiben:


  • makki
    antwortet
    Da musste garnichts einstellen, ausser im Plugin den richtigen UDP-Port eintragen

    ..Das auf der Leitung scheint verschlüsselt zu sein. Sonst könnte ja jeder die Türstation ..
    Jaja, bestimmt "total toll verschlüsselt", in der realen Welt nennt man das: Security through obscurity - Wikipedia, the free encyclopedia, um noch den nettesten Begriff zu nehmen (also wenn mir jemand 2-3 Tage bezahlt und die Geräte zur verfügung stellt, sage ich auch das wie, nicht nur das es so ist.. eine sinnvolle, sichere Verschlüsselung ist da technisch schlicht nicht möglich.. Aber OT..)

    Makki

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Super, Danke dir. Wenn jetzt du oder sonst wer mir noch die Einstellungen im Webmin erklären kann, könnte es los gehen

    Ein einfacher RS485 Wandler geht übrigens nicht. Haben wohl andere im ekey Thread schon versucht. Das auf der Leitung scheint verschlüsselt zu sein. Sonst könnte ja jeder die Türstation aufbrechen, sich an die Leitung hängen und beliebig die Tür öffnen

    Einen Kommentar schreiben:


  • makki
    antwortet
    Naja, sieht ja übersichtlich/einfach aus (RS485->UDP geht übrigens auch gut und günstig )

    Also auf dem Port lauschen, ID lesen, fertig; im Kern sehr ähnlich: SourceForge.net Repository - [openautomation] Contents of /wiregate/plugin/generic/RFID-Leser

    Das sollte zum debuggen 1:1 tun..

    Makki

    Einen Kommentar schreiben:


  • 2ndsky
    antwortet
    Hallo Patrik,

    In der BDA ab Seite 13: http://www.ekey.net/downloads/catego..._UDP_RS485.pdf
    Man kann zwischen rare und home wählen, rare ist default, home scheint aber ausreichend zu sein (brauche nur nutzer id und finger id).

    Kannst du mir was zu den UDP Einstellungen sagen? Wenn man das im Webmin einrichtet und noch kein Plugin hat, gibt es dann irgendwo ein Protokoll, was auf dem Port empfangen wurde? Damit ich das wenigstens mal testen kann...

    Einen Kommentar schreiben:

Lädt...
X