Damit ich in Zukunft auch mit NFC Tags arbeiten kann, habe ich versucht, den für mich funktionierenden Aufbau mit einem RD6300 RFID Reader, durch einen PN532 zu ersetzen.
Folgende Schritte habe ich hierfür durchgeführt:
Vorabeiten
- Hochrüsten des DoorPi von Version 2.5.0.1 auf 2.5.0.4
- Test aller bisher angewendeten Funktionen, inklusive des RDM6300 RFID Readers
- Einbringen aller erforderlichen Module und Änderungen für den PN532 anhand der von Andreas (Nea) gemachten Beschreibung. (Sehr gut zusammengefasst und ausgearbeitet).
- Im Unterschied zu Nea’s Beschreibung habe ich die Installation unter /libnfc und nicht unter /home/pi/libnfc gemacht. Lag daran, dass in der Beschreibung das Installationsverzeichnis mit "/libnfc" und nicht mit "./libnfc" angegeben ist. Sollte aber keine Nachteile bringen.
Test der PN532 Installation
python /libnfc/trunk/examples/tagtool.py --device tty:AMA0:pn532
[nfc.clf] searching for reader on path tty:AMA0:pn532
[nfc.clf] using PN532v1.6 at /dev/ttyAMA0
** waiting for a tag **
Type2Tag ID=A11F222B
Der Test verläuft meines Erachtens erfolgreich. Wird z.B. die Receive Leitung des Lesers getrennt erfolgt eine Fehlermeldung. Daher gehe ich davon aus, dass die Anbindung des PN532 in Ordnung ist.
Einbringen der Konfiguration in der „doorpi.ini“
[keyboards]
virtuell = filesystem
prodsystem = piface
# rfidreader = rdm6300
nfcreader = pn532
[nfcreader_InputPins]
A11F222B = sleep:0
[nfcreader_keyboard]
device = tty:AMA0:pn532
[EVENT_OnKeyPressed_nfcreader.A11F222B]
10 = take_snapshot:http://guest:jpeg@192.168.5.55:80//dms.jpg
20 = out:Garagentor,1,0,1
30 = mailto:<Meine.Mail@Adresse,TK-6241 %d.%m.%Y um %H:%M Uhr,A-4 Relais wurde betaetigt,True
PN532 mit DoorPi
Wird das RFID Tag nur kurz an den Leser gehalten, wird die vorgesehene Funktionalität, ein Relais zieht an, ausgeführt.
Logfile:
2016-06-06 15:57:34,114 [DEBUG][doorpi.keyboard.from_pn532] tag: Type2Tag ID=A11F222B
bis
2016-06-06 15:57:35,711 [TRACE][doorpi.action.handler] [5NSUPS] finished fire_event for event_name OnKeyPressed_nfcrfidreader.A11F222B
Fehler
Wird das RFID Tag länger (ab 1 Sekunde und länger) an den Leser gehalten, wird die vorgesehene Funktionalität mehrfach ausgeführt.
Logfile:
2016-06-06 15:58:07,384 [DEBUG][doorpi.keyboard.from_pn532] tag: Type2Tag ID=A11F222B
bis
2016-06-06 15:58:10,227 [TRACE][doorpi.action.handler] [Y627DT] finished fire_event for event_name OnKeyPressed_nfcrfidreader.A11F222B
Frage:
Ich habe im Forum keine Hinweise auf ein derartiges Verhalten gefunden. Daher wollte ich im ersten Ansatz diese Meldung nicht als „Issue/Bug / Problem“ eintragen. Vielleicht bin ich ja der Einzige mit dem Problem und habe irgendwo etwas bei der Installation / Konfiguration übersehen.
Kennt jemand dieses Verhalten und kann mir mitteilen, wie man die Mehrfachausführung unterbinden kann?
Gruß
Ewald