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

    [wiregate] Gesucht: ekey UDP Plugin

    Hallo Leute,

    habe heute nun endlich mal meinen ekey angeschlossen. Nun würde ich gerne mittels UDP Converter auf dem Wiregate Auswertungen machen. Doch es hapert hier bereits am Auslesen des UDP Ports. Habe da zwar in anderen Threads schon gestöbert, wie z.B. hier: https://knx-user-forum.de/221426-post24.html doch ist mir leider nicht ganz klar, wie ich im Webmin die Socketeinstellungen vornehmen muss. Der UDP Converter sendet auf einen UDP Port den man einstellen kann ein Datenpaket im eingestellten Format mit Benutzername und Fingernummer. Was muss ich nun aber im Webmin einstellen, damit ich im Plugin überhaupt mal Daten vom ekey empfangen kann?
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    #2
    Hallo Niko

    Hast du zum ekay eine Protokollbeschreibung?
    Gruss Patrik alias swiss

    Kommentar


      #3
      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...
      Mit freundlichen Grüßen
      Niko Will

      Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
      - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

      Kommentar


        #4
        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
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #5
          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
          Mit freundlichen Grüßen
          Niko Will

          Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
          - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

          Kommentar


            #6
            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
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              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)
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #8
                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?
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar


                  #9
                  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
                  EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                  -> Bitte KEINE PNs!

                  Kommentar


                    #10
                    Alles klar, dann werde ich den bei Pluginüberarbeitung mal ausbauen. Danke für die Hilfe!
                    Mit freundlichen Grüßen
                    Niko Will

                    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                    Kommentar


                      #11
                      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

                      Kommentar


                        #12
                        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.

                        Kommentar


                          #13
                          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?

                          Kommentar


                            #14
                            Hallo,

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

                            Kommentar


                              #15
                              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?

                              Kommentar

                              Lädt...
                              X