Diashow mit fbi

Um meinen ungenutzten Raspberry Pi 2 und ein altes Tontec Display nicht weiter ungenutzt im Schrank liegen zu lassen, habe ich mir eine Verwendung überlegt, die Bilder der Überwachungskameras im Haus periodisch in Form einer Diashow anzuzeigen. Das Ganze sollte ohne X auskommen um Resourcen zu sparen.

Hardware - Voraussetzungen:

  • Raspberry Pi 2 (oder neuer)
  • Display
Als Basis habe ich ein aktuelles Raspberry OS lite (auf Basis von Debian Buster, ohne X-Server) installiert. Danach habe ich dann noch die notwendigen Treiber nachinstalliert.

Eine Installationsanleitung für die Display-Treiber findet sich hier: http://www.lcdwiki.com/How_to_install_the_LCD_driver. Nach einem Neustart funktionierte das Display bei mir schon tadellos.

#!/bin/bash

# retrieve latest timestamp of images in path
function get_last_modified_date {
  echo $(find ./images/ -printf '%T+ %p\n' | sort -r | head -n 1 | cut -d ' ' -f1)
}

LAST_MODIFIED=$(get_last_modified_date)

sudo fbi -T 1 -t 10 -a ./images/*.jpg

while true; do
  sleep 60

  NEW_LAST_MODIFIED=$(get_last_modified_date)

  if [ "$LAST_MODIFIED" != "$NEW_LAST_MODIFIED" ]; then
    LAST_MODIFIED=$NEW_LAST_MODIFIED
    sudo pkill fbi
    sudo fbi -T 1 -t 10 -a ./images/*.jpg
  fi

done

Das Skript wird als slideshow.sh abgespeichert und mittels chmod u+x ./slideshow.sh ausführbar gemacht. Es wechselt zwischen den Bildern aus dem Verzeichnis images alle 10 Sekunden. Sofern sich der Zeitstempel des neuesten Bildes ändert, wird fbi neu gestartet, um das Verzeichnis neu einzulesen.

Die Bilder werden über eine Liste von Cronjob von den Kameras eingesammelt und in das Verzeichnis images neben dem Skript abgelegt.

Jetzt kann das Skript per Autostart (z.B. systemd) eingebunden werden - fertig.