No description
Find a file
2026-06-06 15:38:05 +02:00
Bilder Readme.md und Fotos ergänzt 2026-06-02 16:50:11 +02:00
.gitignore .gitignore 2026-06-06 15:37:30 +02:00
down.conf .gitignore 2026-06-06 15:38:05 +02:00
down.py Das Display kann geschaltet werden 2026-06-06 11:47:54 +02:00
LICENSE Initial commit 2026-05-25 15:16:21 +02:00
README.md Das Display kann geschaltet werden 2026-06-06 11:47:54 +02:00

Speedtest_Display_Rasberry_Pi

1. Raspberry Pi OS installieren

Empfohlen:

  • Raspberry Pi OS Lite (64 Bit)

Mit Raspberry Pi Imager auf die SD-Karte schreiben.

Während des Flashens direkt konfigurieren:

  • WLAN
  • SSH aktivieren
  • Hostname setzen

2. System aktualisieren

sudo apt update
sudo apt full-upgrade -y
sudo reboot

3. SPI aktivieren

sudo raspi-config

Dann:

Interface Options
→ SPI
→ Enable

Neustarten:

sudo reboot

4. Prüfen ob SPI aktiv ist

ls /dev/spi*

Erwartet:

/dev/spidev0.0
/dev/spidev0.1

5. TFT-Display aktivieren

Datei öffnen:

sudo nano /boot/firmware/config.txt

Ganz unten ergänzen:

dtparam=spi=on

dtoverlay=piscreen,speed=16000000,rotate=270

6. Framebuffer aktivieren

Neustart:

sudo reboot

Danach prüfen:

ls /dev/fb*

Erwartet:

/dev/fb0

7. Testbild auf Framebuffer

sudo apt install -y fbi

Test:

sudo fbi -T 1 -d /dev/fb0 -noverbose test.jpg

8. Python installieren

sudo apt install -y python3 python3-pip python3-pil python3-numpy

9. DejaVu Fonts installieren

sudo apt install -y fonts-dejavu-core

Prüfen:

ls /usr/share/fonts/truetype/dejavu/

10. InfluxDB Python Client installieren

pip3 install --break-system-packages influxdb-client

11. Python-Datei anlegen

nano /home/hubobel/down.py

Python-Code einfügen und speichern.


12. Testlauf

python3 /home/hubobel/down.py

Jetzt sollte sichtbar sein:

  • Downloadrate
  • Uploadrate
  • Ping
  • WLAN-IP
  • WAN-IP
  • Verlaufsgrafik

13. systemd Service anlegen

sudo nano /etc/systemd/system/down.service

Inhalt:

[Unit]
Description=Framebuffer Speedtest Display
After=network-online.target

[Service]
Type=simple
User=hubobel
WorkingDirectory=/home/hubobel
ExecStart=/usr/bin/python3 /home/hubobel/down.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

14. Service aktivieren

sudo systemctl daemon-reload
sudo systemctl enable down.service
sudo systemctl start down.service

15. Status prüfen

systemctl status down.service

Live-Log:

journalctl -u down.service -f

16. Nach Reboot testen

sudo reboot

Ergebnis

Das System läuft danach:

  • ohne Desktop
  • direkt auf /dev/fb0
  • rebootfest über systemd
  • ressourcenschonend
  • ideal für Embedded-Statusanzeigen

Dashboard-Umschaltung per GPIO-Taster

Das Display unterstützt drei unterschiedliche Dashboards, die direkt über GPIO-Taster am Raspberry Pi ausgewählt werden können.

Verwendete GPIOs

Funktion GPIO Pin
Dashboard 2 GPIO5 Pin 29
Dashboard 3 GPIO21 Pin 40
Masse (GND) Pin 39

Die Taster werden jeweils zwischen GPIO und GND angeschlossen.
Die internen Pull-Up-Widerstände des Raspberry Pi werden per gpiozero verwendet, daher sind keine zusätzlichen Widerstände notwendig.

Logik

Zustand Anzeige
kein Taster aktiv Dashboard 1
GPIO5 gegen GND Dashboard 2
GPIO21 gegen GND Dashboard 3

Hinweise zur Konfiguration

Die dargestellten Werte werden nicht direkt durch das Projekt ermittelt, sondern aus bereits vorhandenen Datenquellen abgerufen.

Voraussetzung ist, dass die benötigten Messwerte über ioBroker und/oder InfluxDB bereitgestellt werden. Die verwendeten Datenpunkte, Measurements, URLs, Zugangsdaten und Abfragen müssen daher an die jeweilige Umgebung angepasst werden.

Das Projekt dient als Beispiel für die Visualisierung von Infrastruktur-, Netzwerk- und Systemdaten. Welche Werte angezeigt werden, hängt von den in der eigenen Installation verfügbaren Datenquellen ab.

Aktuell werden die Daten unter anderem aus folgenden Quellen bezogen:

  • InfluxDB (z. B. Speedtest-, Proxmox- und Sensordaten)
  • ioBroker Simple-API (/getPlainValue/...)
  • UniFi Controller / UniFi Network über ioBroker
  • Linux-Control Adapter für Systemdaten

Vor der Inbetriebnahme müssen die verwendeten Datenpunkte und URLs entsprechend der eigenen Umgebung angepasst werden.

Displaysteuerung

Die Hintergrundbeleuchtung des Displays kann über einen ioBroker-Datenpunkt gesteuert werden:

javascript.0.Variablen.Server_Display

Mögliche Werte:

  • true → Dashboard aktiv
  • false → Display wird schwarz geschaltet

Bei deaktiviertem Display werden keine Dashboards erzeugt und keine Datenabfragen durchgeführt. Das Skript prüft lediglich in regelmäßigen Abständen den Schaltzustand und aktiviert die Anzeige automatisch wieder, sobald der Datenpunkt auf true gesetzt wird.

Screenshots

Dashboard 2 Hubobels Netzwerk

Übersicht über die UniFi-Infrastruktur mit:

  • Aktive Clients (LAN / WLAN)
  • UXG Max CPU- und RAM-Auslastung
  • US24 CPU- und RAM-Auslastung
  • US24 Temperatur
  • Gateway-Uptime

Dashboard 3 Proxmox Monitoring

Übersicht über den Proxmox-Host mit:

  • Aktuelle CPU-Frequenz
  • CPU-Auslastung
  • Load Average (1 / 5 / 15 Minuten)
  • RAM-Auslastung inkl. absolutem Verbrauch
  • CPU-Temperatur
  • Serverraumtemperatur

Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Details siehe Datei LICENSE.