Graph-IT

ControlPi-Plugin für NFC-Kartenleser

Dieses Paket enthält ein Plugin für das ControlPi-System, mit dem ein NFC-Kartenleser eingebunden werden kann. Es wird lediglich die ID der aufgelegten NFC-Karte (oder des NFC-Chips oder des Smartphones) als Nachricht auf den ControlPi-Bus gelegt.

Installation

Eine ausführliche Dokumentation ist in der Dokumentation der ControlPi-Infrastruktur zu finden.

Der Code dieses Plugins kann mit git geclonet werden:

$ git clone git://git.graph-it.com/graphit/controlpi-nfc.git

(Falls Zugang zu diesem Server per SSH besteht und Änderungen gepusht werden sollen, sollte stattdessen die SSH-URL benutzt werden.)

Dann kann es editierbar in ein virtuelles Environment installiert werden:

(venv)$ pip install --editable <Pfad zum Code-Repository>

Auf dem Raspberry Pi (oder wenn keine Code-Änderungen gewünscht sind) kann es auch direkt, ohne einen git-Clone installiert werden:

(venv)$ pip install git+git://git.graph-it.com/graphit/controlpi-nfc.git

Zur Ausführung werden ccid und pcsclite benötigt und pcscd muss aktiviert (sudo systemctl enable pcscd --now) sein. Zum Installieren des benutzen pyscard-Python-Pakets wird außerdem swig benötigt.

Benutzung

Eine minimale ControlPi-Konfiguration, die dieses Plugin benutzt, ist im git-Repository enthalten:

{
    "Debug": {
        "plugin": "WSServer",
        "web": {
            "/": {
                "module": "controlpi_plugins.wsserver",
                "location": "Debug"
            }
        }
    },
    "Log": {
        "plugin": "Log",
        "filter": [{}]
    },
    "NFCReader": {
        "plugin": "NFCReader"
    }
}

Ein NFCReader-Plugin hat keine weitere Konfiguration und es ist nur eine Instanz pro Konfiguration sinnvoll (da weitere sowieso den gleichen NFC-Kartenleser verwenden würden).

Mit dieser Beispiel-Konfiguration können die durch Auflegen und Entfernen von NFC-Karten ausgelösten Events in der Debug-Oberfläche des ControlPi und im Log in journalctl -u controlpi gesehen werden: Debug-Oberfläche