Playlists über RFID-Karten steuern

  • Okay bei dictionarys bin ich raus, mag aber der richtige Weg sein. Ich hätte jetzt sonst mit einer Liste weitergearbeitet und die Liste um eine Spalte mit dem Playlistnamen erweitert.


    Ansonsten ähnlich aufgebaut, ja. Jetzt habe ich gelesen, dass man die Liste und auch eine dictionary im laufenden Script erweitern kann. Was passiert bei Skriptbeendung, da ist der erweiterte Wert dann aber weg, oder? Dann müsste man so etwas ja zwischenspeichern und beim neustart wieder einlesen, habe ich das richtig verstanden?

    Falls eine Liste/dic also erweiterbar ist, würde ich neue UIDs an die Liste anhängen mit dem Playlistenamen "empty" oder sowas. Dann kann man über ein Terminal dann eine Playlist andocken. Irgendwie muss man ja eh Musik auf die Kiste bekommen, wird also wohl im WLAN eingebunden sein oder eine Ethernet-Buchse dann hinten haben.


    Aber grundsätzlich den Code so allgemein halten wie es nur geht und alles mit Variablen belegen, die man zu jeder Zeit benutzen kann. Dann kann man auch immer was dazu setzen. Das einfachste wäre aber wohl, die Liste von Hand zu füllen und wenn man eben eine neue Playlist anlegen muss (ist ja nicht so häufig, oder?) die Karte manuell vorhalten, UID im Terminal sehen und den Code abändern.

  • Jetzt funktioniert alles. Hier noch einmal der komplette Code (ich hoffe diesmal mit richtiger Einrückung):


    Vielen Dank an alle, die mir geholfen haben!!!!


    Ich bastel auch gerade an einem Musikspieler mit NFC-Karten und dem MPD. Ich stehe vor einem ähnlichen Problem wie der OP.


    Wenn ich seinen funktionierenden Code kopiere und ausführe erhalte ich:

    Code
    sudo python Read2.py
    Welcome to the MFRC522 data read example
    Press Ctrl-C to stop.
    Traceback (most recent call last):
      File "Read2.py", line 83, in <module>
        print(type(uid), type(uid[0]))
    IndexError: list index out of range


    Gibts einen Expertentipp, warum ich einen IndexError bekomme?

  • Nun, wenn der OP seinen Code postet und schreibt Jetzt funktioniert alles, fragte ich mich, warum es bei mir nicht funktioniert...