KPI Screen mit einem Raspberry PI und Google Data Studio

  • by

Websiten und alle Interaktionen darauf können sehr gut gemessen werden. Doch was macht man mit alle den erhobenen Daten? Vielleicht fragt einmal im Quartal jemand nach einem schönen Bericht, doch nach dem erstellen wird der Bericht auch schnell wieder vergessen. Wie wäre es die wichtigsten Kennzahlen auf einem Bildschirm darzustellen an dem jeder Mitarbeiter jeden Tag vorbei läuft? Das kann man sogar mit ziemlich wenig Aufwand und Kosten realisieren.

Man nehme folgenden Zutaten:

  1. Rasperry Pi 
  2. Einen Bildschirm (wirklich irgend einen) mit HDMI Anschluss
  3. Maus und Tastatur

Zeitschaltuhr Je nach Bildschirm, kann man das ganze also unter 100 € realisieren.

Konfiguration des Rasperry Pi

Als erstes sollte das Betriebssystem Raspbian installiert werden. Dann geht es mit einem ersten Update weiter: sudo apt-get update && sudo apt-get upgrade

Als Grundlegendes brauchen wir noch ein Verzeichnis für das automatische Starten: mkdir /home/pi/.config/autostart/

In dem Skript brauchen wir auch noch zwei kleines Programm Namens xdotool und unclutter, also noch folgendes im im Terminal sudo apt-get install xdotool unclutter

xdotool ist ein Programm um Tastaturbefehle im Terminal auszuführe. Unclutter sorgt dafür dass der Mauszeiger nicht angezeigt wird. Damit sind alle nötigen Programme installiert.

Konfiguration des automatischen Logins

Der Raspberry sollte standartmäßig automatisch als Nutzer „Pi“ angemeldet werden. Zur Sicherheit kann man dies wie folgt checken. Im Termin sudo nano /etc/lightdm/lightdm.conf einfügen. Dort sollte folgendes stehen:

[SeatDefaults]

autologin-user=pi

Nun muss das gleich zu erstellen Skript auch beim Hochfahren des Raspberry Pi auch hinterlegt werden. Im Terminal geben wir nano /home/pi/.config/autostart/kiosk.desktop und dort wird der automatische Start des Skriptes hinterlegt:  

[Desktop Entry]

Type=Application

Name=Kiosk

Exec=/home/pi/kiosk.sh

X-GNOME-Autostart-enabled=true

Konfiguration des kiosk.sh Skriptes

Endlich geht es an das echte Skript. Diese wird automatisch aufgerufen, sobald der Raspberry startet. Im Terminal geben wir nano /home/pi/kiosk.sh und dort wird der automatische Start des Skriptes hinterlegt:  

#!/bin/bash

# Run this script in display 0 - the monitor

export DISPLAY=:0

# Hide the mouse from the display

unclutter &

# If Chrome crashes (usually due to rebooting), clear the crash flag so we don't have the annoying warning bar

sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/pi/.config/chromium/Default/Preferences

sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/pi/.config/chromium/Default/Preferences

# Run Chromium and DataStudio report, both with a shared URL

/usr/bin/chromium-browser --window-size=1366,768 --kiosk --window-position=0,0 --disable-overlay-scrollbar --noerrdialogs &

# Start the kiosk loop. This keystroke changes the Chromium tab

# To have just anti-idle, use this line instead:

# xdotool keydown ctrl; xdotool keyup ctrl;

# Otherwise, the ctrl+Tab is designed to switch tabs in Chrome

# #

done

Dieses Skript sorgt dafür das Chromium gestartet wird

Das Skript muss noch ein echtes ausführbares Programm werden:  chmod +x kiosk.sh

Erweiterungen

Nun wird die Startseite definiert , in Chromium den DataStudio Report als Standard definieren. 

Also chrome://settings/?search=Beim+Start und dort eine Seite des Berichtes hinterlegen:

https://datastudio.google.com/u/0/reporting/1hSOTY3Ea_fMmdylPu5ZVxow4-YkvCDYK/page/KgJb

Chromium Extension installieren

Damit alle Seiten des Berichts angezeigt werden, brauchen wir dieses Plugin, dass automatisch die Seiten durchwechselt. Zusätzlich kann man noch eine Zeitspanne festlegen, in der der Bericht aktualisiert wird. Dafür einfach Chromium öffnen und folgende URL aufrufen: https://chrome.google.com/webstore/detail/data-studio-auto-refresh/inkgahcdacjcejipadnndepfllmbgoag

Automatisch System herunterfahren

Damit der Bildschirm nachts auch mal Pause machen darf, wird der Rasperry heruntergefahren. Mit folgendem Befehlt wird es 19:15 Uhr heruntergefahren: sudo nano /etc/crontab

15 19 * * * root shutdown -h now

Und dann noch die Zeitschaltuhr einstellen. Um 20:30 Uhr kann der Strom gekappt werden und morgens um 7 Uhr wieder den Strom einschalten. Dann fährt der Rasperry auch wieder hoch.

Neustart für fehlende Internetverbindung

Manchmal kann es passieren, dass die Internetverbindung nicht ordnungsgemäß aufgebaut wird. Daher ist es sinnvoll ein eigenes Skript zum Start auszuführen, dass die Verbindung checkt. Dazu wird das Skript erstellt: nano /home/pi/checkwifi.sh

ping -c4 google.com > /dev/null
if [ $? != 0 ] 
then
sudo /sbin/shutdown -r now
fi

Das Skript muss noch ausführbar werden chmod +x checkwifi.sh und in den Autostart mit einbezogen werden.

Seiten automatisch neu laden

Aktuell startet das Skript nur einmal am Tag, die Seiten werden dann nicht mehr aktualisiert. Manchmal kann es ganz nützlich sein, die Seite regelmäßiger zu aktualisieren. Dazu gibt es ein neues Script: nano /home/pi/reloade.sh

#!/bin/bash
#
# Eric Schümann schuemann.koeln
# refresh time in seconds so 3600 = every 60 min

  sleep 3600

  xdotools key = ”ctrl+F5” &

Nun muss dieses Skript noch ausführbar werden chmod +x reloade.sh und dieses Skript auch beim Start laden lassen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.