Im letzten Beitrag dieser Serie hatte ich mich noch gefreut, dass die Victron-Komponenten endlich saubere Daten liefern und das System im Labor stabil lief. Mein Resümee war klar: Die nächste Tour kann kommen. Doch wie das bei solchen Projekten oft der Fall ist – die Theorie am Schreibtisch ist das eine, der erste Praxistest im Fahrzeug das andere.
Als ich den MultivanPi im Auto an die Stromversorgung geklemmt habe, offenbarte sich schnell eine neue Baustelle: Das Touch-Display schaltete sich nach der programmierten Inaktivität zwar scheinbar ab, aber die Hintergrundbeleuchtung des Panels leuchtete munter weiter. Für ein autarkes System ist das ein massiver Stromfresser, der die Aufbaubatterie belastet. Zudem löste das Aufwecken des dunklen Bildschirms per Fingertipp regelmäßig ungewollte Aktionen auf dem Dashboard aus. Das geht besser.
In diesem fünften Teil beschriebe ich, wie ich das Display physikalisch in den echten Standby zwinge, Fehlklicks beim Aufwecken verhindere und das System mit einem automatischen USB-Backup für den Ernstfall absichere.
1. Echtes Power-Management für Raspberry Pi Touchscreens
Der Standardbefehl für den Bildschirmschoner unter Linux (via xset dpms) schaltet bei vielen Touch-Monitoren nur das Bildsignal auf Schwarz. Die Hintergrundbeleuchtung bleibt aktiv. Um den Stromverbrauch zu minimieren, greife ich direkt auf die Hardware des Raspberry Pi zu und kappe den HDMI-Output komplett.
Wichtig: Wenn das Display auf diese Weise hardwareseitig abgeschaltet wird, dauert es beim Aufwecken etwa 1 bis 2 Sekunden, bis sich das HDMI-Signal neu synchronisiert hat und das Bild erscheint. Das ist der normale Preis für maximales Stromsparen im autarken Betrieb.
Ich steuere das über asynchrone Python-Funktionen im Backend (victron_service.py), die das Dashboard per API aufrufen kann. Da das Backend mit Root-Rechten läuft, nutze ich dafür den direkten Broadcom-Befehl:
# Display komplett abschalten
os.system("/usr/bin/vcgencmd display_power 0")
# Display wieder aufwecken
os.system("/usr/bin/vcgencmd display_power 1")
2. Das Wake-Shield: Schutz vor Fehlklicks beim Aufwecken
Das zweite Problem trat direkt nach dem Einschlafen auf. Ein Fingertipp auf den dunklen Monitor weckte zwar das System, aber der Touch-Impuls wurde als Tastendruck gewertet und löste die darunter liegenden Schalter des Dashboards aus.
Die Lösung ist ein „Wake-Shield“ – eine unsichtbare CSS-Ebene, die sich über das gesamte Dashboard legt, sobald das Display schlafen geht.
#wake-shield {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
z-index: 9999;
background: rgba(0,0,0,0.01);
display: none;
}
Kapazitive Touchscreens feuern bei einer Berührung eine ganze Kaskade an Signalen ab (Berührung, Anheben, Klick). Wenn man das Shield beim ersten Kontakt sofort ausblendet, rutscht der restliche Klick zum Dashboard durch. Der Trick liegt darin, das Shield nach dem Aufwecken künstlich noch 500 Millisekunden aktiv zu lassen, um alle Hardwaresignale restlos abzufangen:
['pointerdown', 'touchstart', 'click'].forEach(evt => {
wakeShield.addEventListener(evt, (e) => {
e.preventDefault();
e.stopPropagation();
if (isScreenOff) {
isScreenOff = false;
fetch("/api/display/on", { method: 'POST' });
// Schild bleibt 500ms aktiv als Kaskaden-Schutz
setTimeout(() => {
wakeShield.style.display = 'none';
}, 500);
}
}, { capture: true });
});
3. Automatisches Backup auf dem USB-Stick
Ein Raspberry Pi im Fahrzeug ist Erschütterungen und potenziellen Spannungsschwankungen ausgesetzt, was SD-Karten auf Dauer übel nehmen können. Der Raspi ist sowieso berüchtigt dafür, SD-Karten zu schrotten. Um die Konfigurationen und die Historie des Luftdrucks nicht zu verlieren, läuft nun täglich ein Bash-Skript über einen Cronjob. Es sucht automatisch nach eingesteckten USB-Sticks und spiegelt die Backups redundant auf den Stick.
# Der Pi mountet USB-Sticks automatisch unter /media/nutzername/
USB_MOUNT_DIR=$(ls -d /media/fred/*/ 2>/dev/null | head -n 1)
if [ -d "$USB_MOUNT_DIR" ]; then
USB_BACKUP_DIR="${USB_MOUNT_DIR}MultivanPi_Backup"
mkdir -p "$USB_BACKUP_DIR"
cp $SOURCE_DIR/config.json "$USB_BACKUP_DIR/config_backup_$TIMESTAMP.json"
cp $SOURCE_DIR/pressure_history.json "$USB_BACKUP_DIR/pressure_history_backup_$TIMESTAMP.json"
fi
Mit diesen Anpassungen ist der MultivanPi nun einen großen Schritt weiter. Das Display schont die Aufbaubatterie, Fehlbedienungen sind ausgeschlossen und die Sensordaten bekommen eine Sicherungskopie auf einem USB-Stick .
16 Feb. 2026
MultivanPi Teil 5: Touch-Display gezähmt, Wake-Shield & USB-Backups
Im letzten Beitrag dieser Serie hatte ich mich noch gefreut, dass die Victron-Komponenten endlich saubere Daten liefern und das System im Labor stabil lief. Mein Resümee war klar: Die nächste Tour kann kommen. Doch wie das bei solchen Projekten oft der Fall ist – die Theorie am Schreibtisch ist das eine, der erste Praxistest im Fahrzeug das andere.
Als ich den MultivanPi im Auto an die Stromversorgung geklemmt habe, offenbarte sich schnell eine neue Baustelle: Das Touch-Display schaltete sich nach der programmierten Inaktivität zwar scheinbar ab, aber die Hintergrundbeleuchtung des Panels leuchtete munter weiter. Für ein autarkes System ist das ein massiver Stromfresser, der die Aufbaubatterie belastet. Zudem löste das Aufwecken des dunklen Bildschirms per Fingertipp regelmäßig ungewollte Aktionen auf dem Dashboard aus. Das geht besser.
In diesem fünften Teil beschriebe ich, wie ich das Display physikalisch in den echten Standby zwinge, Fehlklicks beim Aufwecken verhindere und das System mit einem automatischen USB-Backup für den Ernstfall absichere.
Inhalt
1. Echtes Power-Management für Raspberry Pi Touchscreens
Der Standardbefehl für den Bildschirmschoner unter Linux (via
xset dpms) schaltet bei vielen Touch-Monitoren nur das Bildsignal auf Schwarz. Die Hintergrundbeleuchtung bleibt aktiv. Um den Stromverbrauch zu minimieren, greife ich direkt auf die Hardware des Raspberry Pi zu und kappe den HDMI-Output komplett.Ich steuere das über asynchrone Python-Funktionen im Backend (
victron_service.py), die das Dashboard per API aufrufen kann. Da das Backend mit Root-Rechten läuft, nutze ich dafür den direkten Broadcom-Befehl:2. Das Wake-Shield: Schutz vor Fehlklicks beim Aufwecken
Das zweite Problem trat direkt nach dem Einschlafen auf. Ein Fingertipp auf den dunklen Monitor weckte zwar das System, aber der Touch-Impuls wurde als Tastendruck gewertet und löste die darunter liegenden Schalter des Dashboards aus.
Die Lösung ist ein „Wake-Shield“ – eine unsichtbare CSS-Ebene, die sich über das gesamte Dashboard legt, sobald das Display schlafen geht.
Kapazitive Touchscreens feuern bei einer Berührung eine ganze Kaskade an Signalen ab (Berührung, Anheben, Klick). Wenn man das Shield beim ersten Kontakt sofort ausblendet, rutscht der restliche Klick zum Dashboard durch. Der Trick liegt darin, das Shield nach dem Aufwecken künstlich noch 500 Millisekunden aktiv zu lassen, um alle Hardwaresignale restlos abzufangen:
3. Automatisches Backup auf dem USB-Stick
Ein Raspberry Pi im Fahrzeug ist Erschütterungen und potenziellen Spannungsschwankungen ausgesetzt, was SD-Karten auf Dauer übel nehmen können. Der Raspi ist sowieso berüchtigt dafür, SD-Karten zu schrotten. Um die Konfigurationen und die Historie des Luftdrucks nicht zu verlieren, läuft nun täglich ein Bash-Skript über einen Cronjob. Es sucht automatisch nach eingesteckten USB-Sticks und spiegelt die Backups redundant auf den Stick.
Mit diesen Anpassungen ist der MultivanPi nun einen großen Schritt weiter. Das Display schont die Aufbaubatterie, Fehlbedienungen sind ausgeschlossen und die Sensordaten bekommen eine Sicherungskopie auf einem USB-Stick .