Rezept: Live-KPI-Wand für Operations
Großes Display im Lager/Operation-Center mit Echtzeit-Kennzahlen.
Klassisch für Lager, Logistik, Operations: ein TV an der Wand zeigt rund um die Uhr die wichtigsten Kennzahlen. Verpackt heute, offene Bestellungen, Lieferbar, System-Status. Niemand muss sich einloggen — der Bildschirm läuft permanent.
Ziel
- Großes Wand-Display zeigt 8–12 KPI-Tiles
- Aktualisiert sich alle 20–60 Sekunden automatisch
- Kein Login nötig (Token in URL)
- Lesbar aus 5 Metern Entfernung
Voraussetzungen
- Eine Datenquelle, die regelmäßig aktualisiert wird (z. B. Google Sheet, das ein Cron-Job alle 5 Minuten befüllt)
- Ein Browser auf dem Display (Smart-TV, kleiner PC, Raspberry Pi)
1. KPI-Sheet einrichten
Du brauchst eine Datenquelle in tabellarischer Form. Beispiel: Google Sheet KPI-Live mit einer Zeile pro Update, Spalten:
Stand | 2026-04-20 14:23
Verpackt heute | 142
Verpackt gestern Vergleich | 118
Verpackt gestern | 287
Lieferbar | 1842
Bestellungen heute | 187
Bestellungen gestern Verg. | 156
Bestellungen gestern | 312
JTL API Status | OK
JTL API ms | 124
Ein Scheduled Task in TaskMonkey hängt alle 5 Minuten eine neue Zeile an:
'refresh_kpi_sheet' => [
'enabled' => true,
'tool' => 'refreshKpiSheet',
'interval' => '5min',
],
Das Tool refreshKpiSheet ruft die nötigen APIs ab und schreibt die neue Zeile via appendToSheet.
2. Dashboard-Konfiguration
dashboards.php:
<?php
return [
'dashboards' => [
'lager_wand' => [
'title' => 'Lager Live',
'description' => 'Tagesaktuelle Verpack- und Bestellkennzahlen',
'type' => 'kpi',
'access' => 'token',
'token' => '33fc8db8f7c4a49ba882f70b43e5e0e3dd5f28c835fad8f2',
'datasource' => [
'type' => 'google_sheet',
'slug' => 'kpi-live',
'sheetName' => 'Tabellenblatt1',
'cache_ttl' => 30,
'row' => 'last',
],
'tiles' => [
['type' => 'group', 'title' => 'Verpackt', 'icon' => '📦'],
[
'title' => 'Verpackt heute',
'column' => 'Verpackt heute',
'compare_column' => 'Verpackt gestern Vergleich',
'format' => 'number',
'size' => 'large',
'span' => 3,
'compare_label' => 'gestern um diese Zeit',
'compare_mode' => 'higher_is_better',
],
[
'title' => 'Forecast heute',
'type' => 'forecast',
'today_column' => 'Verpackt heute',
'yesterday_compare_column' => 'Verpackt gestern Vergleich',
'yesterday_total_column' => 'Verpackt gestern',
'format' => 'number',
'size' => 'medium',
'compare_mode' => 'neutral',
],
[
'title' => 'Gestern gesamt',
'column' => 'Verpackt gestern',
'format' => 'number',
'size' => 'medium',
'compare_mode' => 'neutral',
],
['type' => 'group', 'title' => 'Lager', 'icon' => '🏭'],
[
'title' => 'Lieferbar',
'column' => 'Lieferbar',
'format' => 'number',
'size' => 'large',
'span' => 3,
'compare_mode' => 'neutral',
],
['type' => 'group', 'title' => 'Bestellungen', 'icon' => '🛒'],
[
'title' => 'Bestellungen heute',
'column' => 'Bestellungen heute',
'compare_column' => 'Bestellungen gestern Vergleich',
'format' => 'number',
'size' => 'large',
'span' => 3,
'compare_label' => 'gestern um diese Zeit',
'compare_mode' => 'higher_is_better',
],
['type' => 'group', 'title' => 'Systeme', 'icon' => '🟢'],
[
'title' => 'JTL API',
'column' => 'JTL API Status',
'format' => 'text',
'size' => 'medium',
'extras' => [
['label' => 'Response', 'column' => 'JTL API ms', 'suffix' => 'ms'],
],
],
],
],
],
];
3. Aufrufen
https://taskmonkey.example.com/dashboards/view/lager_wand?token=33fc...&tenant=meco
Auf dem Wand-Display:
- Browser im Vollbild-Modus (F11 /
--kiosk) - Auto-Reload alle 5 Minuten ist nicht nötig — die Plattform pollt Browser-seitig schon alle 30s den Datasource
- Bildschirmschoner deaktivieren
4. Hardware-Setup
| Setup | Vorteil | Nachteil |
|---|---|---|
| Smart-TV mit eingebautem Browser | Kein extra Gerät | Browser oft veraltet, Probleme mit JS |
| Mini-PC + HDMI an TV | Voller Browser, alles geht | Extra-Gerät, Strom |
| Raspberry Pi + Chromium-Kiosk | Günstig, klein, zuverlässig | Etwas Setup nötig |
| Tablet (iPad, Android) im Wandhalter | Schick, Touch | Akku/Strom, 24/7-Betrieb fragwürdig |
Klassischer Setup: Raspberry Pi 4 + Auto-Login + Chromium im Kiosk-Modus, läuft monatelang ohne Eingriff.
5. Tipps für die Lesbarkeit
- Wenig Tiles: 8–12 max. — mehr Information macht den Bildschirm unlesbar
size: largeundspan: 3+für die wichtigsten KPIs- Compare-Mode bewusst setzen:
higher_is_betterfür Output-Größen,lower_is_betterfür Fehlerquoten,neutralfür reine Stände - Gruppen-Header mit Emoji: erleichtern das Scannen
- Cache-TTL niedrig (20–60s): Wand-Display soll wirken wie „live"
Erweiterungen
- Multi-Wand: mehrere Dashboards für verschiedene Bereiche (Verpackung, Wareneingang, Versand)
- Alarmierung: Tool, das bei kritischen Werten (z. B. „Lieferbar < 100") eine Slack-Nachricht schickt
- Tageswechsel: am Morgen automatisch die Vortageswerte „einfrieren" und in einer separaten Sheet-Spalte sichern
- Mobile-Variante: dasselbe Dashboard mit
cache_ttl: 60auf dem Smartphone der Schichtleitung