Den Bildschirmschoner bei einem Einsatz automatisch deaktivieren und bei Abschluss automatisch aktivieren.
Schritt-für-Schritt-Anleitung
Bildschirmschoner installieren und testen
Das Terminal (LXTerminal) öffnen, und xscreensaver über folgendes Kommando installieren
sudo apt-get install xscreensaver
- Über das Raspbian-Symbol oben links Menü > Einstellungen > Bildschirmschoner öffnen
- Bei der ersten Einrichtung öffnet sich ein Dialog, der darüber informiert, dass der zuvor installierte Dienst xscreensaver nicht läuft und gestartet werden muss. Dieser Dialog kann bestätigt werden.
- Im neu geöffneten Fenster kann auf der linken Seite nun ein Wunsch-Bildschirmschoner ausgewählt werden.
- Die eingestellte Zeit, nach der der Bildschirmschoner aktiviert werden soll, muss erhöht werden, damit dieser nicht vorzeitig durch Inaktivität aktiviert wird. Dazu bei "Schwärzen nach" zum Beispiel den Wert 30 Minuten einstellen.
Jetzt sollte es möglich sein, über das Terminal mit folgendem Befehl den Bildschirmschoner zu aktivieren:
xscreensaver-command -activate
Skript erstellen
Abhängigkeiten des Skripts installieren:
sudo apt-get install jq
Eine neue Datei divera247-autoscreensaver.sh im Home-Verzeichnis anlegen, bspw. über den Editor nano (Navigation ausschließlich über die Tastatur per Pfeiltasten):
nano ~/divera247-autoscreensaver.sh
Folgenden Inhalt über Strg+C kopieren und anschließend über Bearbeiten > Einfügen oder per Klick der mittleren Maustaste einfügen und abspeichern (Strg+O und Strg+X in nano)
Dabei DER-ALARM-ACCESSKEY durch den API-Accesskey der Schnittstelle ersetzen
#!/bin/sh ACCESSKEY="DER-ALARM-ACCESSKEY" API_URL="https://www.divera247.com/api/last-alarm?accesskey=${ACCESSKEY}" IS_MONITOR_ACTIVE=true while true; do HAS_ALARM=`curl -s ${API_URL} | jq -r -j '.success'` if [ $HAS_ALARM = true ] && [ $IS_MONITOR_ACTIVE = false ]; then echo "Turn display on" xscreensaver-command -deactivate IS_MONITOR_ACTIVE=true elif [ $HAS_ALARM = false ] && [ $IS_MONITOR_ACTIVE = true ]; then echo "Turn display off" xscreensaver-command -activate IS_MONITOR_ACTIVE=false fi sleep 20 done
Bildschirm komplett deaktivieren
Wenn statt des Bildschirmschoners der HDMI-Ausgang des Pis komplett deaktiviert werden soll, können folgende Befehle ersetzt werden:
xscreensaver-command -deactivate durch tvservice -p
xscreensaver-command -activate durch tvservice -oDer Vorteil ist, dass dadurch der angeschlossene Monitor in den Energiesparmodus geht, allerdings ergibt sich der Nachteil, dass durch Bewegen des Mauszeigers der Computer nicht aufgeweckt wird.
Eine Alternative zu tvservice ist, bei Problemen, dass der Bildschirn schwarz bleibt könnte stattdessen folgender Befehl helfen:
#ausschalten
vcgencmd display_power 0
#einschalten
vcgencmd display_power 1Die erstellte Datei ausführbar machen:
chmod +x ~/divera247-autoscreensaver.sh
Skript manuell starten (dabei wird der Bildschirmschoner sofort gestartet, falls kein Einsatz anliegt):
~/divera247-autoscreensaver.sh
Jetzt kann die Funktion getestet werden, indem ein alter Einsatz (ent-)archiviert wird, oder ein neuer angelegt (aufpassen, die Benachrichtigungen zu deaktivieren, um niemanden aus Versehen zu alarmieren)
Zeitverzögerung
Es kann bis zu 20 Sekunden dauern, bis der Bildschirmschoner sich ein-/ausschaltet
Mit Autostart starten
Um das Script automatisch zu starten, muss dies in die rc.local Datei eingefügt werden - Weitere Informationen hierzu unter:
https://www.raspberrypi.org/documentation/linux/usage/rc-local.md
Fehlermeldungen
No screensaver is running
xscreensaver-command: no screensaver is running on display :0.0
Diese Fehlermeldung erscheint, wenn der xscreensaver Dienst nicht aktiv ist. Um ihn zu starten müssen die Einstellungen über Menü > Einstellungen > Bildschirmschoner öffnen geöffnet werden. Nach ein paar Sekunden erscheint ein Dialog-Fenster mit einem entsprechenden Hinweis, und über "Ok" wird der Dienst gestartet.