# 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
```bash
sudo apt update
sudo apt full-upgrade -y
sudo reboot
```
---
## 3. SPI aktivieren
```bash
sudo raspi-config
```
Dann:
```text
Interface Options
→ SPI
→ Enable
```
Neustarten:
```bash
sudo reboot
```
---
## 4. Prüfen ob SPI aktiv ist
```bash
ls /dev/spi*
```
Erwartet:
```text
/dev/spidev0.0
/dev/spidev0.1
```
---
## 5. TFT-Display aktivieren
Datei öffnen:
```bash
sudo nano /boot/firmware/config.txt
```
Ganz unten ergänzen:
```ini
dtparam=spi=on
dtoverlay=piscreen,speed=16000000,rotate=270
```
---
## 6. Framebuffer aktivieren
Neustart:
```bash
sudo reboot
```
Danach prüfen:
```bash
ls /dev/fb*
```
Erwartet:
```text
/dev/fb0
```
---
## 7. Testbild auf Framebuffer
```bash
sudo apt install -y fbi
```
Test:
```bash
sudo fbi -T 1 -d /dev/fb0 -noverbose test.jpg
```
---
## 8. Python installieren
```bash
sudo apt install -y python3 python3-pip python3-pil python3-numpy
```
---
## 9. DejaVu Fonts installieren
```bash
sudo apt install -y fonts-dejavu-core
```
Prüfen:
```bash
ls /usr/share/fonts/truetype/dejavu/
```
---
## 10. InfluxDB Python Client installieren
```bash
pip3 install --break-system-packages influxdb-client
```
---
## 11. Python-Datei anlegen
```bash
nano /home/hubobel/down.py
```
Python-Code einfügen und speichern.
---
## 12. Testlauf
```bash
python3 /home/hubobel/down.py
```
Jetzt sollte sichtbar sein:
- Downloadrate
- Uploadrate
- Ping
- WLAN-IP
- WAN-IP
- Verlaufsgrafik
---
## 13. systemd Service anlegen
```bash
sudo nano /etc/systemd/system/down.service
```
Inhalt:
```ini
[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
```bash
sudo systemctl daemon-reload
sudo systemctl enable down.service
sudo systemctl start down.service
```
---
## 15. Status prüfen
```bash
systemctl status down.service
```
Live-Log:
```bash
journalctl -u down.service -f
```
---
## 16. Nach Reboot testen
```bash
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.
# 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`.