it-m-h / SmallTime

Small Time
GNU Affero General Public License v3.0
42 stars 32 forks source link

Raspberry Pi Stempelterminal - graphische Version #63

Open gitschwarz opened 2 years ago

gitschwarz commented 2 years ago

Die Stempelterminallösung auf small.li sah für uns zu dunkel aus. Wir haben daher ein kleines Script geschrieben, dass diese Aufgabe graphischer wahrnimmt: https://www.blumen-schwarz.de/software/zeiterfassung.tar.gz

Das Readme dazu

Dieses kleine Bashscript als Zeiterfassungsterminal haben wir für unsere Firma geschrieben. Es läuft mit unserem small.li Zeiterfassungsserver. Gerne geben wir es weiter. Soweit es meine Arbeit stelle ich alles unter die GPL V 3. Ausnahme ist hier unser Firmenlogo. Dieses dient nur als Ideengeber und darf natürlich nicht weiterverarbeitet werden.

Bei vielen Teilen dieses Zeiterfassungsterminals bin ich nicht der Lizenzträger und ich verweise auf die Orginallizenzen.

Die Software läuft bei uns auf Raspbian Buster. Folgende Programme müssen installiert sein: yad fortune wget (sudo apt-get -y install yad fortune wget)

Das Verzeichnis zeiterfassung enhält Code von https://www.waveshare.com/wiki/PN532_NFC_HAT - ich habe das kompilierte binary (Die Datei poll) dazu gepackt. Es kann sein, dass diese in späteren Betriebssystemversionen neu kompiliert werden muss.

graphische Oberfläche mit automatischem Login

Folgende Hardware wurde verbaut Raspberry Pi (bei uns mal Zero, mal der Pi 3 ...) https://www.waveshare.com/wiki/PN532_NFC_HAT1 - bewusst der NFC Reader mit 13,56 Mhz genommen. Ich habe den NFC Reader mit SPI (wie immer empfohlen) nicht zum laufen bekommen. Daher wurde der mit i2c angeschlossen und funktioniert problemlos. LCD Bildschirm, angeschlossen über HDMI: https://www.waveshare.com/product/displays/lcd-oled/lcd-oled-1/5inch-hdmi-lcd-b.htm Den Bildschirm als Touch auszuführen war ein Unfug von mir - das ist nicht nötig.

An einer Stelle haben wir zusätzlich noch einen Bewegungsmelder und eine Raspicam installiert, der den Bildschirm aufweckt, wenn jemand in die Nähe kommt und abends als Überwachsungskamera funktioniert ...

Ich wollte das Zeiterfassungsterminal nicht langweilig machen. Daher bringt er bei jedem Stempel ein Zufallsbild (alle enthaltene SVG Grafiken sind von openclipart.org) und einen Spruch (fortune). Da wir Gärtner sind, haben natürlich nur Sprüche und Bilder aus der grünen Branche eingebaut.

Das Terminal schaltet nach 10 Minuten den Bildschirm ab. Sobald gestempelt wird, wacht er wieder auf (für 10 Minuten).

Installation: 1) Hardware zum laufen bekommen (nfc Reader und Bildschirm) 2) Verzeichnis entpacken, so dass das Verzeichnis zeiterfassung unter /zeiterfassung steht 3) zeiterfassung.desktop nach /etc/xdg/autostart kopieren 4) Software anpassen Im Script zeiterfassung.sh folgende Zeilen anpassen: wget -q -O - "https://zeit.shwz.de/idtime.php?rfid=$MID" >/dev/null Infos=wget -q -O - https://zeit.shwz.de/android.php?rfid=$MID

Hier muss natürlich statt zeit.shwz.de ihr small.li Server stehen. Unser Server steht zwar im Internet, lässt aber Verbindungen nur von unseren Betriebsstandorten zu. Bei einem Versuch von außen erscheint hier ein "forbidden".

5) Layout anpassen

Die Datei logo2-url.svg enthält unser Firmenlogo. Einfach mit Ihrem logo überschreiben. Wenn ein anderes Format als svg gewählt wird, muss der Aufruf in zeiterfassung.sh angepasst werden.

Im Verzeichnis gartenbilder stehen alle Cliparts ... Im Zweifelsfall löschen und irgendwelche Bilder, Cliparts etc. einstellen (Dilbert wäre z.B. auch eine gute Idee). Bitte auf die Größe achten, sonst wird es chaotisch.

Wir haben seit Jahren ein paar Gartensprüche gesammelt. Das kann man natürlich auch weglassen. Bei uns (klar wir sind Gärtner) hat es bisher für viele Lacher gesorgt und das Einstempeln interessant gemacht. Die Datei dazu heißt garten.txt. Damit fortune sie lesen kann, muss man mit strfile garten.txt noch eine garten.txt.dat erzeugen. Testen kann man das dann mit /usr/games/fortune garten.txt Wenn das Weggelassen werden soll, dann bitte die Zeile for=/usr/games/fortune /zeiterfassung/garten.txt in for="Werbetext für unser Unternehmen" ändern.

Ich hoffe, dass unsere Software hilfreich ist (und wenn wenigstens als Anregung). Heino Schwarz www.blumen-schwarz.de