Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add MFRC522 and RDM6300 devices to device list #235

Merged
merged 5 commits into from
Oct 3, 2018

Conversation

keinkurt
Copy link
Contributor

@keinkurt keinkurt commented Oct 3, 2018

now the rfid daemon reader loads dynamically an USB, MFRC522 or RDM6300 reader class.

@keinkurt
Copy link
Contributor Author

keinkurt commented Oct 3, 2018

I'm only able to test the new rfid daemon with a MFRC522 device. Please test this code an USB and RDM6300 device.

@MiczFlor MiczFlor changed the base branch from master to develop October 3, 2018 17:40
@MiczFlor MiczFlor merged commit 3dc9572 into MiczFlor:develop Oct 3, 2018
@MiczFlor
Copy link
Owner

MiczFlor commented Oct 3, 2018

Hi @keinkurt
danke für die contribution. Kannst du mir noch kurz zum Code zwei Dinge erklären, damit ich den besser gegenlesen kann (und zum Testen habe ich eh gerade nur diverse USB reader)

  • du hattest für das RC522 Modul zwei Ansätze entwickelt: einmal standard: swipe liest die karten ein. einmal distanz: der RFID triggered play bei Nähe und stoppt bei Entfernen. Welche der Optionen ist hier im Code? Wenn beide: wie entscheidet man sich dafür?
  • die dynamische EInbidnung von den drei Device Typen: muss mann dazu an anderer Stelle was configurieren oder wie wird das erkannt?

@keinkurt
Copy link
Contributor Author

keinkurt commented Oct 5, 2018

Hallo @MiczFlor

Das Stop-By-Remove Feature ist in diesem PR nicht dabei, dass man das im Konfigurationsprozess mit auswählen kann, wollte ich noch gesondert entwickeln.

Ich habe einfach die 2 besonderen Nicht-USB-Reader in die Auswahlliste bei der Installation mittels RegisterDevice.py hinzugefügt. Genau genommen holt sich RegisterDevice.py die Liste aller Devices (USB und Nicht-USB) von der Methode get_devices() aus der Reader.py.

Falls Du noch Verständnissfragen hast, dann immer raus damit ;)

Viele Grüße,
Christian

@MiczFlor
Copy link
Owner

MiczFlor commented Oct 6, 2018

Ok, ich habe das ganze in den master branch gemerged. Wenn du weitere Änderungen machst, dann mach bitte ein update auf das master. Und teste noch mal. bei mir läufts 👍 Danke

@gizmo21
Copy link
Contributor

gizmo21 commented Oct 6, 2018

Hi keinkurt
is your commit also applying to "our" Neuftech USB-Reader ( mentioned here #62 or #196 ), if so how can I enable that "software proximity feature" in that USB-Reader (if I understood your commit correctly) or is it only in those two other mentioned readers confs implemented?
And I can give detailed info about that reader if you tell me where to look or what to install to get that info.

Kannst natürlich auch erstmal auf Deutsch antworten, und keine Panik ist nicht eilig :)

@MiczFlor
Copy link
Owner

MiczFlor commented Oct 7, 2018

Hi @keinkurt
weil momentan so viele bugs reinkommen, dass Reader nicht funktionieren, habe ich die Installation noch mal ganz neu gemacht, um zu sehen, wo es hängen könnte. Mit dem neuen script von dir, bekomme ich folgende Fehler:

$ python2 RegisterDevice.py 
Traceback (most recent call last):
  File "RegisterDevice.py", line 4, in <module>
    from Reader import get_devices
  File "/home/pi/RPi-Jukebox-RFID/scripts/Reader.py", line 9, in <module>
    import MFRC522
  File "/home/pi/RPi-Jukebox-RFID/scripts/MFRC522.py", line 5, in <module>
    import spi
ImportError: No module named spi

und mit Python3:

$ python3 RegisterDevice.py 
  File "RegisterDevice.py", line 8
    print "Choose the reader from list:"
                                       ^
SyntaxError: Missing parentheses in call to 'print'

Hast du eine Ahnung, was da hängt? Weil ich dein Skript nicht debuggen kann (mir fehlt die Python Expertise) weiss ich nicht, wie wir da am besten vorgehen. Denn je länger das jetzt als master breit steht, desto mehr bugs bekomme ich wahrscheinlich.

Wäre super, wenn du dir das ansehen könntest. Wie gesagt: bei mir ging es mit git pull aber wenn man das System von Grund auf installiert, dann hängt irgendwas.

Danke

@MiczFlor
Copy link
Owner

MiczFlor commented Oct 7, 2018

HI @keinkurt
hier ein kurzes Update: ich habe im thread derer, die gerade ihre Reader nicht an den Start bekommen ein revert angeboten: #231 (comment)

@MiczFlor
Copy link
Owner

MiczFlor commented Oct 8, 2018

Hi @keinkurt
me again. Ich habe jetzt einen Branch gemacht:
https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/Version-1.1.5-dynamicRFIDreader
auf dem ist dein pull request. Und ich mache jetzt die 1.1.6 als "revert", sprich: mit dem alten Reader Skriptsatz.
Wenn du die Zeit findest zu schauen, wie ich das install script erweitern muss, damit man RFID devices "out of the box" registrieren kann, bitte in den Branch, den ich oben gelistet habe.
Ich gehe davon aus, dass entweder apt-get, pip install oder ein git clone erweitert werden muss.
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/installscripts/stretch-install-default.sh

@kaoz3000
Copy link
Contributor

kaoz3000 commented Oct 9, 2018

Hallo,
erstmal: Wow, was für ein tolles und umfangreiches Projekt! Danke! Hoffe ich kann damit für meinen Sohnemann ein schönes Weihnachtsgeschenkt basteln!

Ich habe ein RC522 Modul und ich kann auch mit dem script https://pimylifeup.com/raspberry-pi-rfid-rc522/ von @jackwidu Karten lesen und schreiben.
Ich habe diese Version: https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/Version-1.1.5-dynamicRFIDreader heruntergeladen und das Installscript ausgeführt. Bei der Nachfrage nach dem USB Reader habe ich mit "nein" geantwortet.
Im Web-Interface kann ich nun keine Karten einlesen und auch das Aktivieren des RFID-Reader Schalters funktioniert nicht (ist beim reload der Seite wieder deaktiviert).

python daemon_rfid_reader.py
gibt folgendes aus:

Traceback (most recent call last):
  File "daemon_rfid_reader.py", line 6, in <module>
    from Reader import Reader
  File "/home/pi/RPi-Jukebox-RFID/scripts/Reader.py", line 4, in <module>
    import serial
ImportError: No module named serial

Die Datei latestID.txt habe ich nicht im "shared" Ordner.

Meine Python Version ist: 2.7.13

@MiczFlor
Copy link
Owner

MiczFlor commented Oct 9, 2018

@kaoz3000
Der Branch ist zum entwickeln. Nicht for production.
Nimm den master 1.1.6 und dann das script so, wie du es vorher schon mal am start hattest.
Poste hier bitte wie das einbinden konntest - wenn‘s läuft, dann. Nehme ich das ins Manual

@kaoz3000
Copy link
Contributor

kaoz3000 commented Oct 9, 2018

Nun funktioniert es!
Ich habe das "one-line Phoniebox install script" benutzt.
python daemon_rfid_reader.py sagte mir dann ich solle RegisterDevice.py beutzen. Das zeigte mir dann aber nur meine USB Soundkarte an. Ich habe dann die Dateien Reader.py, RegisterDevice.py und daemon_rfid_reader.py von https://github.com/keinkurt/RPi-Jukebox-RFID/tree/MFRC255/scripts rüberkopiert.
RegisterDevice.py hat dann wieder den ImportError: No module named serial Fehler von oben ausgegeben.

Abhilfe schaffte dann:
pip install pyserial
(https://github.com/pyserial/pyserial) Es fehlte wohl das Modul serial ;-)

Mit RegisterDevice.py konnte ich dann den Reader auswählen, musste dann aber noch mal ein reboot machen, weil sonst der Daemon nicht lief.

Mal sehen wie es jetzt weiter geht...

Ich denke mal, dass dein Fehler @MiczFlor (#235 (comment)) auch daran liegt, dass das SPI Modul fehlt.
Wahrscheinlich bekommst du den Fehler mit:

cd ~
git clone https://github.com/lthiery/SPI-Py.git
cd ~/SPI-Py
sudo python setup.py install

weg.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants