MyOdoo TimeManagement (technisch) RaspBerry 3 mit RFID Platine

Abhängigkeiten:

  • hr_recruitment
  • eq_hr




1. Vorwort

MyOdoo_TimeManagement erleichtert den Zugriff auf Funktionen aus eq_hr. Diese umfassen das An- bzw. Abmelden ebenso wie das Erfassen von Pausenzeiten der einzelnen Angestellten. Die erfassten Arbeitszeiten werden in der Odoo Datenbank gesichert,
wo sie zu einer detaillierten Auswertung herangezogen werden können. Im Folgenden finden Sie ein Überblick über die Verwendung der Anwendung und die darin enthaltenen Funktionen.


2. Installation

2.1 Verkabelung des RFID Readers / Display

Bevor Sie mit der Konfiguration des Raspberry beginnen können, müssen Sie zuerst den RFID Reader an die Platine anschließen. Dies erfolgt über 8 Kontakte. Hierfür benötigen sie 8 Weiblich-Weiblich Jumper Kabel und einen Lötkolben.
Löten Sie zuerst die mitgelieferten Stiftleiste an die Kontakte des RFID Readers. Verbinden Sie danach die Kontakte des RFID Readers nach folgendem Schema. Beachten Sie das der RaspberryPi ausgeschaltet sein sollte während Sie die
Module anschließen. Nun können Sie Ihren 7" Touchscreen nach folgenden Schema anschließen. Hierzu müssen Sie lediglich die 4 beschriebenen Kontakte mit der Platine des RaspberryPi via 4 Weiblich-Weiblich Jumper Kabel verbinden.



Im Letzten Schritt verbinden Sie das Flachbandkabel das mit dem Display geliefert wurde ebenfalls mit dem RaspberryPi. Achten Sie darauf das die Kontakte des Kabels mit der silbernen Seite in richtung Platine am RaspberryPi angeschlossen werden.

2.2 Vorbereitung des RaspberryPi

Nachdem Sie den RFID Reader an den RaspberryPi angeschlossen haben, muss in der Konfiguration des RaspberryPi das SPI Interface aktiviert werden, damit MyOdoo_TimeManagement auf den RFID Reader
zugreifen kann. Hierzu geben Sie folgenden Befehl in das Terminal ein.

$ sudo raspi-config

Über Interface Options -> SPI können sie das Interface aktivieren.


Aufgrund der Montagehalterung des RaspberryPi ist es nötig das Display um 180 Grad zu drehen. Dies erreichen Sie indem Sie mit folgendem Befehl die config.txt öfnen und am Ende des Dokuments „lcd_rotate=2" ergänzen.

$ sudo nano /boot/config.txt

2.3 Vorbereitung Odoo

Da MyOdoo_TimeManagement als Erweiterung von eq_hr implementiert ist, müssen Sie sicherstellen, dass eq_hr in Ihrem Odoo System installiert ist. Dies erreichen Sie über das Dashboard im Abschnitt Apps. Klicken Sie auf installieren und das Modul wird automatisch installiert.


2.4 Anlegen des HR Users



Für die Freischaltung des Terminals muss in Odoo ein HR Benutzer angelegt werden. Melden Sie sich hierzu in Ihrem Odoo System an und gehen über das Dashboard auf Einstellungen -> Benutzer. Legen Sie hier einen neuen Benutzer an und vergeben Sie folgende Zugriffsrechte.


Personal: Personalsachbearbeiter
Personalbeschaffung: Manager


2.5 Installation der benötigten Pakete auf dem RaspberryPi


Damit die Anwendung auf Ihrem RaspberryPi lauffähig ist, sind einige Vorkehrungen zu treffen. Falls Sie einen RaspberryPi 3+ verwenden, müssen Sie sich nicht um die Installation von Python, kümmern da dieses unter Raspbian, bereits vorinstalliert ist.
Falls Sie einen älteren Raspberry Pi verwenden müssen Sie Python 3.5.2 installieren. Hierzu öffnen Sie das Terminal und geben folgende Befehle nacheinander ein.

$ wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
$ tar -xvf Python-3.5.2.tar.xz
$ cd Python-3.5.2
$ ./ configure
$ make
$ make altinstall
Des weiteren müssen Sie dafür sorgen, dass PyQt5 installiert wird. Dies erreichen Sie ebenfalls über das Terminal mit folgendem Befehl:
$ sudo apt-get install python3-pyqt5
Das letzte Paket, das Sie installieren müssen, ist odooRPC für die Kommunikation mit dem ERP System. Hierfür geben Sie folgenden Befehl ein:
$ pip install odoorpc

3. Konfiguration von MyOdoo_TimeManagement

3.1 Konfigurationsparameter setzen

Da die Vorbereitung des RaspberryPi nun abgeschlossen ist, können sie die Anwendung das erste Mal starten. Navigieren Sie hierzu mithilfe des Terminals in das Verzeichnis, indem Sie die Anwendung abgelegt haben. Über folgenden Befehl können Sie MyOdoo_TimeManagement starten.

$ python3 main.py
bzw. $ python3 main.py -c

Wenn Sie die Anwendung das erste Mal starten öffnet sich automatisch das Konfigurationsmenü. Dies können Sie später ebenfalls erreichen, wenn Sie die Anwendung mit dem Startparameter -c bzw. --config starten. Im folgenden Menü müssen Sie die Konfiguration für MyOdoo_TimeManagement festlegen.


Abbildung 5: Konfigurations Maske

  1. Server-Url über die Ihr Odoo System erreichbar ist.
  2. Port über den auf Ihr Odoo System zugegriffen werden kann.
  3. HR Benutzer den sie unter 2.4 angelegt haben.
  4. Zugehöriges Benutzerpasswort.
  5. Differenz der Zeitzone zum Server (Wird für Statusnachrichten benötigt)
  6. Datenbankbezeichnung Ihres Odoo Systems.
  7. Anzahl der Stellen, die für die Benutzer ID verwendet werden. (Nur bei Numpad/Barcode Eingabe benötigt)
  8. Anzahl der Stellen, die für den Pin verwendet werden. (Ebenfalls nur bei Numpad/Barcode Eingabe benötigt)
  9. Das verwendete Protokoll.
    1. Für https verwenden Sie jsonrpc+ssl.
    2. Für http verwenden Sie jsonrpc.
  10. Wählen Sie hier die Anmeldeart, die Sie verwenden möchten. Sie haben die Auswahl zwischen Numpad/Barcode und RFID.
  11. Über diese Schaltfläche können sie das Logging der Anwendung aktivieren bzw. deaktivieren. Ist das Logging aktiviert, wird ein logfile im selben Verzeichnis erstellt indem sie die main.py abgelegt haben.

Nachdem sie die Konfiguration der Anwendung abgeschlossen haben, können Sie über die Verbindungstest Schaltfläche Ihre Eingabe prüfen. Wenn der Verbindungstest erfolgreich ist, bestätigen sie die Konfiguration mit der OK Schaltfläche. Die Anwendung muss danach erneut gestartet werden.
Die Einrichtung von MyOdoo_TimeManagement ist nun abgeschlossen und die Anwendung kann verwendet werden.
Es ist möglich eine Verknüpfung für MyOdoo_TimeManagement anzulegen, damit nicht jedes Mal eine Eingabe über den Terminal erforderlich ist, wenn Sie die Anwendung starten möchten. Erstellen Sie hierzu eine neue Textdatei mit folgenden Zeilen.

$ #!/bin/bash
$ cd [Pfad zum Verzeichnis der Anwendung]
$ python3 main.py

Speichern Sie die Datei ab und navigieren mittels Terminal zur eben erstellten Verknüpfung. Konvertieren Sie die Text Datei zu einer ausführbaren Verknüpfung mit folgendem Befehl.

$ chmod u+x [Verknüpfungsnamen]

3.2 Auslesen der RFID Tags

Wenn Sie die Anwendung mittels des Startparameters -t starten haben Sie die Möglichkeit die RFID Tags Ihrer Mitarbeiter auszulesen, um sie in der Odoo Datenbank zu hinterlegen.

$ python3 main.py -t



Nach einem Klick auf die „Tag ID lesen" Schaltfläche können Sie den Tag vor den Sensor halten. Darauf hin wird in Bereich 1.) die UID des Tags angezeigt. Diese UID muss für den jeweiligen Benutzer in Odoo hinterlegt werden um den Tag einem Angestellten zuzuordnen.

4. Bedienung

4.1 Login Daten

Die Anmeldedaten Ihrer Benutzer können Sie in Odoo über das Personal Menü verwalten. Sie erreichen dies über das Dashboard im Bereich Personal unter dem jeweiligen Mitarbeiter. Im Reiter HR Einstellungen finden Sie die Felder Ausweis ID und Pin, die für die manuelle Anmeldung verwendet werden.
Hier können Sie ebenfalls im Feld RFID die UID eines RFID Tags hinterlegen, um einen Tag dem Angestellten zuzuordnen. Tragen Sie die UID des Tags mit Kommas in das Feld RFID ein,




4.2 Authentifizierung mittels RFID Tag

Nachdem Sie MyOdoo_TimeManagement gestartet haben, befindet sich die Anwendung im Urzustand und wartet auf die Benutzerauthentifizierung. Um sich zu authentifizieren halten Sie einfach Ihren RFID Tag vor den Reader.
Sie werden dann automatisch ins nächste Menü weitergeleitet. Die Abläufe können Sie folgender Grafik entnehmen.


Sobald sich der Mitarbeiter mit seinem RFID Tag authentifiziert hat, wird je nach Mitarbeiter Status eine der drei Masken geladen. Hierüber haben Sie die Möglichkeit sich an- bzw. abzumelden oder Ihre Pause zu beginnen bzw. zu beenden.
Sobald Sie Ihre Eingabe getätigt haben springt die Anwendung automatisch in den Urzustand zurück. Falls Sie keine Eingabe tätigen, springt die Anwendung nach einem festgelegten Intervall ebenfalls zurück in den Urzustand.

4.3 Authentifizierung mittels Numpad / Barcode

Falls Sie als Anmeldeart Numpad/Barcode gewählt haben, kommt eine weitere Maske zur Abfrage des Pins zum Einsatz. Bitte beachten Sie, dass die ID Stellen bzw. Pin Stellen in der Konfiguration für diese Authentifizierungsart festgelegt sein müssen.
Die Abläufe entnehmen Sie folgender Grafik. Mit X Schaltfläche können Sie Ihre Eingabe löschen. Mit der < Schaltfläche löschen Sie das zuletzt eingegebenen Zeichen.




Sie können die Mitarbeiter ID bzw. den Pin manuell über das Numpad eingeben oder Sie scannen einen Barcode bestehend aus der Kombination von beidem ein. Beachten Sie bei der Erstellung der Barcodes für ihre Mitarbeiter, dass diese dem Format Code128 entsprechen.
Falls Sie sich über einen Barcode authentifizieren möchten, können Sie einfach einen Barcode Scanner per USB an den RaspberryPi anschließen. Dieser fungiert dann als Eingabegerät.