Den Bildschirmschoner bei einem Einsatz automatisch deaktivieren und bei Abschluss automatisch aktivieren.

Schritt-für-Schritt-Anleitung

Bildschirmschoner installieren und testen

  1. Das Terminal (LXTerminal) öffnen, und xscreensaver über folgendes Kommando installieren

    sudo apt-get install xscreensaver
  2. Über das Raspbian-Symbol oben links Menü > Einstellungen > Bildschirmschoner öffnen
  3. 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.
  4. Im neu geöffneten Fenster kann auf der linken Seite nun ein Wunsch-Bildschirmschoner ausgewählt werden.
  5. 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.
  6. Jetzt sollte es möglich sein, über das Terminal mit folgendem Befehl den Bildschirmschoner zu aktivieren:

    xscreensaver-command -activate

 Skript erstellen

  1. Abhängigkeiten des Skripts installieren:

    sudo apt-get install jq
  2. 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 
  3. 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 -o

    Der 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 1

  4. Die erstellte Datei ausführbar machen:

    chmod +x ~/divera247-autoscreensaver.sh
  5. Skript manuell starten (dabei wird der Bildschirmschoner sofort gestartet, falls kein Einsatz anliegt):

    ~/divera247-autoscreensaver.sh
    
    
  6. 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.

Verwandte Artikel