Ankündigung

Einklappen
Keine Ankündigung bisher.

Transponderleser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [WireGate-Plugin] Transponderleser

    Hi,
    dank Makkis hilfe habe ich meinen RFID-Transponderleser von RSS an das Wiregate angebunden bekommen. Die Leser gibt es in verschiedenen Versionen (RS232 oder RS485 oder TTL) - mit oder ohne Gehäuse und mit verschiedenen Antennen (kleine bis große Reichweite) für kleines Geld (auch auf eBay von RSS direkt).

    Der Transponderleser liest H4102 Transponder und gibt die Seriennummer per ASCII direkt auf der Schnittstelle aus.
    Ich habe diesen im Einsatz im dieser Antenne im Siedle Vario-Blindrahmen.

    Der Transponderleser ist per RS485 an das Wiregate angeschlossen (über einen RS485-zu-USB wandler).

    Auf dem Wiregate ist ein Socat-Socket eingerichtet:
    Name: Transponder, Aktiviert: Ja, Bidirektional: Nein,
    Socket 1: "-", Socket: "/dev/usbserial-1-3.1", Optionen: "raw,b4800,cs8,crtscts=0,ixon=1,ixoff=1,ixany=1,ic anon=1,eol=32"
    Socket 2: "udp-datagram", Socket: "192.168.0.255:50011", Optionen "bind=:50012,reuseaddr,broadcast"

    Code:
    # Plugin R.S-Systems RFID-Reader to KNX
    # Version: 0.2 2010-10-02
    # Benötigt 
    # - RSS RFID-Reader an einem USB-Seriell-Wandler
    # - Eintrag unter Socketverbindungen (socat)
    
    ##################
    ### DEFINITION ###
    ##################
    
    my $socknum = 5;                # Eindeutige Nummer des Sockets +1
    
    # Eigenen Aufruf-Zyklus setzen (Initialisierung/zyklisches prüfen)
    $plugin_info{$plugname.'_cycle'} = 300;
    
    my $recv_ip = "192.168.xxx.xxx"; # Empfangsport (UDP, wie in Socket-Einstellungen)
    my $recv_port = "50011"; # Empfangsport (UDP, wie in Socket-Einstellungen)
    my %rfid_ga;
    $rfid_ga{'30343136323c3634373a20'} = '11/2/1'; # Gruppenadresse auf die bei dieser RFID gesendet wird
    #.. usw.
    my $interval = 30;       # Sendeintervall für RFIDs in Reichweite in Sekunden
    
    #######################
    ### ENDE DEFINITION ###
    #######################
    
    # Hauptverarbeitung
    # or ($fh and eof($socket[$socknum]))
    if (!$socket[$socknum]) { # socket erstellen
        if (defined $socket[$socknum]) { #debug
            if ($socket[$socknum]->opened) { $socket[$socknum]->close(); }
            undef $socket[$socknum];
        }  #debug
        $socksel->remove($socket[$socknum]);
        $socket[$socknum] = IO::Socket::INET->new(LocalPort => $recv_port,
                                  Proto => "udp",
                                  LocalAddr => $recv_ip
                                      )
             or return ("open of $recv_ip : $recv_port failed: $!");
        $socksel->add($socket[$socknum]); # add socket to select
        $plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
        return "opened UDP-Socket $socknum";
    } 
    elsif ($fh) { # Read from UDP-Socket
        my $buf;
        recv($fh,$buf,255,0);
        next if(!$buf || length($buf) < 2);            # Bogus messages    
        my $bufhex = $buf;
        $bufhex =~ s/(.)/sprintf("%x",ord($1))/eg;
        if (time() - $plugin_info{$plugname.'_rfidlast_'.$bufhex} < $interval) {
          # repeated
          return;
        }
        $plugin_info{$plugname.'_rfidlast_'.$bufhex} = time();  
        if ($rfid_ga{$bufhex}) {
          knx_write($rfid_ga{$bufhex},1,1);
          return "RFID $bufhex - sent 1 to $rfid_ga{$bufhex}";
        }
        return "Unknown RFID $bufhex";
    }
    return;
    RFID kurz hinhalten -> Blick ins Log sagt einem die einzutragende RFID
    RFID & KNX-GA eintragen, siehe Beispiel

    Nicht vergessen, RFID ist "by Design" völlig sicherheitsfrei...
    Ich verwende die Transponder-ID daher nicht direkt zum öffnen der Tür - im HS habe ich weitere Logiken die nur unter speziellen Randbedingungen dann die Tür freigeben. Die Reaktionszeit ist sehr gut (gefühlt 500 ms von Davorhalten bis zum öffnen)

    Ich habe noch ein paar Bilder von dem Transpondereinbau angehängt
    (Anschlußkabel noch aus Testphase, kleines schwarzes Kabel zur Antennenblende ist für die LED-Leseanzeige)

    Vielen Dank am Makki für den Support bei der Erstellung dieses Plugins. Das Wiregate ist wirklich ein Multifunktionsgateway! Bei mir jetzt im Einsatz für
    * elektronisches Schlüsselbrett
    * FS20-Gateway
    * und natürlich für zig Temperatur & Luftfeuchtesensoren im ganzen Haus, Heizungs- und Lüftungsanlage

    Mfg
    Thorsten
    Angehängte Dateien

    #2
    Hi Thorsten,

    vielen Dank für Deine Anleitung, ich konnte hier auch testweise einen RSS-Transponderleser am WireGate in Betrieb nehmen. Bei mir ist es ein LR Transponderleser, der über RS232->USB angeschlossen ist.

    So weit so gut. Allerdings habe ich massive Stabilitätsprobleme! Nach spätestens 24h ist kein Tag mehr lesbar und ich muss socat neu starten - dann geht es wieder einige Zeit. Im WebMin ist socat immer grün, aber trotzdem hilft nur ein Neustart... Ich habe bisher socat noch nie genutzt und bin mir deswegen nicht sicher, ob der Fehler nicht vor dem Bildschirm sitzt

    Hattest Du auch solche Probleme? Und wenn ja, wie hast Du sie gelöst?
    Wenn nein, vielleicht weiss ja noch jemand, was man machen kann.

    Ich hatte schon überlegt, ob ich nicht per BWM + WireGate-Plugin socat automatisch restarte - aber lieber wäre es mir, die eigentliche Ursache des Problems zu finden.

    Danke und Gruß,
    Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hi
      versuche doch mal dir per SOCAT die ausgabe auf die console oder eine Textdatei umzuleiten - und schaue was da direkt bzw. nach einem tag noch ankommt. (wie das geht? SuFu benutzen ... ich hab gerade keine Zeit, Telco fängt gleich an...sorry)
      vielleicht ist deine serielle Leitung zu lange?

      Gruß
      Thorsten

      Kommentar


        #4
        Mal eine allgemeine Frage:

        Liest der RFID-Treansponder nur seine eigenen Karten, oder gehen damit beliebige, wie die typischen Ausweis-Karten in den Firmen, Kantinen-Karten, ePass, ... auch?
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Hi,

          ich bin zwar noch recht neu in dem Bereich, aber soviel ich weiss, kann man zu beidem nicht ja sagen...

          Der Leser kann nur bestimmte Tags (125kHz) lesen, somit nicht beliebige... Es gibt eben noch andere Systeme. Allerdings kann man auch Tags andrer Hersteller kaufen, sofern sie die gleiche Sendefrequenz unterstützen.

          Ich hoffe, das beantwortet Deine Frage...

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #6
            Hi,
            genau gesagt sind es wohl EM4102 Transponder / Read-Only manchmal auch UNIQUE genannt.
            Ist eine Art "Industriestandart" und mein alter Leser hatte auch mal meinen Firmenausweiß gelesen - ist aber schon 7 Jahre her. Seitdem ist mir persönlich kein Firmenausweiß untergekommen der funktioniert hat.
            Die Transponder kaufe ich gerne bei eBay - einfach nach EM4102 suchen... (da sieht man auch gleich die vielen verfügbaren Bauformen)

            Gruß
            Thorsten

            Kommentar


              #7
              Hallo Thorsten,

              ich will mir das auch mal bauen.

              Ist das dieser Reader RSS online shop

              ?
              Gruß Hartwig

              Kommentar


                #8
                Hi,
                Nein - ich habe diesen:

                OEM-SR28e-485,Reader,TTL/RS485

                http://www.rss-systems.de/assets/s2d...9df0c24201.htm

                Allerdings ist der ohne Gehäuse. Jeder andere mit 125khz und rs485 müsste auch passen. Passende Antenne - und Abstand zur Antenne (möglichst kurz) sind auch zu beachten.
                Ideal wäre sicherlich Technik innen - Antenne außen.

                Gruß
                Thorsten

                Kommentar


                  #9
                  Hallo Thosten,

                  ich habe mir die Komponenten mal besorgt.

                  Den Socat bekomme ich nicht zum laufen, was aber am Socket liegen dürfte.

                  im Sysmon kommt bei mir der Usb an

                  Code:
                  Dec 17 09:28:45 wiregate833 kernel: [57062.904073] usb 1-4: new full speed USB device using ohci_hcd and address 5
                  Dec 17 09:28:45 wiregate833 kernel: [57063.122115] usb 1-4: New USB device found, idVendor=0403, idProduct=f60b
                  Dec 17 09:28:45 wiregate833 kernel: [57063.122445] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
                  Dec 17 09:28:45 wiregate833 kernel: [57063.122781] usb 1-4: Product: USB-Nano-485
                  Dec 17 09:28:45 wiregate833 kernel: [57063.129568] usb 1-4: Manufacturer: CTI GmbH
                  Dec 17 09:28:45 wiregate833 kernel: [57063.136341] usb 1-4: SerialNumber: CTVEK3NS
                  Dec 17 09:28:45 wiregate833 kernel: [57063.143437] usb 1-4: configuration #1 chosen from 1 choice
                  Dec 17 09:29:44 wiregate833 monit[2663]: 'socat1' failed to start

                  Deinen Eintrag habe ich daraufhin mit /dev/usbserial-1-4.5 geändert

                  Die Socketverbindung kommt aber nicht zu stande!

                  Was mache ich da falsch?
                  Gruß Hartwig

                  Kommentar


                    #10
                    Hallo Thorsten,

                    das RSS Modul hat ein rote und eine grüne LED.
                    Bei mir hatte ursprünglich nur die rote LED geleuchtet, die Grüne blieb ohne Funktion

                    Das Modul wurde zwischenzeitlich eingeschickt und repariert nun werden am rss Modul auch die Keys erkannt.

                    Der USB-NANO von Zeiterfassung, Zutrittskontrolle, Kommunikation - CTI GmbH Leipzig wird auch vom Wiregate erkannt, die Socketverbindung steht.

                    Jetzt habe ich eigentlich nur noch Kabel zu verbinden.
                    Pin6&7 des rss SR-28e-5V/12V mit A/B auf der Seite des Nanos.

                    Aber das scheint es noch ein Problem zu geben.
                    der usb-Nano hat 3 LEDS,
                    Die ON leuchtet permanent grün
                    Die RX und TX sollten, so würde ich es erwarten, leuchten, wenn ein Key erkannt wird, bzw. wenn das rss Modul irgendwas raus gibt.

                    Da tut sich aber rein gar nichts.

                    rss erkennt den key die grüne LED flackert.
                    Am Nano keinerlei Reaktion

                    Noch irgend eine Idee?
                    Gruß Hartwig

                    Kommentar


                      #11
                      Hi Hartwig
                      ich habe an meinem Wiregate/RS485-adapter 4 Leitungen angeschlossen - du schreibst nur von 2?
                      Gruß
                      Thorsten

                      Kommentar


                        #12
                        Hallo Thorsten,

                        da passt irgendwas nicht. RS-485 hat normalerweise 2 Adern

                        Der USB Stick hat nur A und B. Ebenso ist beim rss Modul Pin5 und 6 mit RS485 bezeichnet!
                        Angehängte Dateien
                        Gruß Hartwig

                        Kommentar


                          #13
                          hm - und eine gemeinsames potential?
                          Ich bin jetzt kein experte für RS485... aber mein adapter hat 4 anschlüsse (mit GND und VCC). Vielleicht ist dafür dein X-anschluss?

                          Gruß
                          Thorsten

                          Kommentar


                            #14
                            RS485 bzw. 422 ist eine differentielle Übertragung, d.h. es braucht kein gemeinsames Potential.

                            Ich bin kein so guter Erklärung, daher empfehl ich hier einfach den Wiki-Artikel zu RS485/422, dann wird einem einiges klarer

                            Kommentar

                            Lädt...
                            X