photOS - Digitaler Bilderrahmen
Weihnachten steht vor der Tür und das Suchen nach Geschenken ist wieder angesagt. Nachdem ich einen ungenutzten Raspberry Pi 2 herumliegen habe, wollte ich dieses Jahr einen digitalen Bilderrahmen basteln, der an einen x-beliebigen externen Monitor oder auch Fernseher angeschlossen werden kann.
Die Bilder sollen dabei von meiner Nextcloud abgerufen werden. Das bietet den Vorteil, dass der Bilderrahmen aus der Ferne schnell und einfach mit neuem Inhalt bespielt werden kann. Die einzige Anforderung ist eine halbwegs stabile Internetverbindung per LAN oder WLAN, um die Bilder von der Nextcloud per WebDav abrufen zu können.
Auf GitHub bin ich auf das Projekt photOS gestoßen, dass genau diese Anforderungen erfüllt. Neben Bildern werden auch Videos unterstützt, genauer gesagt werden die Dateitypen abgespielt jpeg, png, mp4, mov.
Die Hardware
Für mein Vorhaben verwende ich einen ungenutzten Raspberry Pi 2. Damit der Pi auch eine WLAN-Schnittstelle bekommt, habe ich eine USB-WLAN-Adapter von EDIMAX angeschlossen. Ein neueres Pi-Modell ist für einen solchen Einsatz meines Erachtens zu überdimensioniert. Als Display verwende ich aktuelle noch einen Monitor, der ggf. durch ein etwas schöneres Display ersetzt werden soll.
photOS
photOS ist ein kleines Linux-Betriebssystem, dass auf Buildroot basiert. (👉 https://buildroot.uclibc.org/) Buildroot ist ein Betriebssystem, das als Embedded System konzipiert wurde
Der Funktionsumfang der Distribution ist deshalb recht eingeschränkt und Änderungen lassen sich auch nicht so einfach vornehmen, wie man das von einer normalen Linux-Distribution gewöhnt ist. Das Ganze dient der Sicherheit und Stabilität, was bei einem System, das irgendwo steht und nicht regelmäßig gewartet wird, doch sehr sinnvoll ist.
Der Entwickler von motionEyeOS hat auch thingOS entwickelt, welches als Basis für motionEyeOS und photOS dient. thingOS wiederum basiert auf Buildroot, wohinter eine sehr große Entwicklergemeinschaft steht.
Das Projekt photOS wird auf GitHub verwaltet, wie auch das dazugehörige Wiki.
Von der GitHub-Seite des Projekts lassen sich bereits fertige Images für die unterschiedlichen Raspberry Pis Varianten herunterladen und anschließend wie gewohnt auf die SD-Karte flashen. Mit einem der folgenden Tools ist das auch sehr schnell und unkompliziert erledigt.
Nach dem Flashen einfach die SD-Karte in den Raspberry Pi stecken, an das Netzwerk anschließen und mit Strom versorgen. Bereits nach kurzer Zeit kann auf den kleinen PC per SSH oder über einen Webbrowser zugegriffen werden.
Die Anmeldung an photOS funktioniert nur mit einer funktionierenden Netzwerkverbindung. Dabei ist es egal, ob es eine LAN- oder WLAN-Verbindung ist, Hauptsache es wird eine aufgebaut. Findet der Pi kein Netzwerk, dann bekommt photOS "Panik" und bleibt in einer Boot-Schleife hängen, bis ein solches verfügbar ist.
Standardpasswort ändern
Wenn eine Netzwerkverbindung hergestellt ist, dann bootet photOS ohne weiteres und man kann sich per SSH auf den Raspberry Pi aufschalten:
ssh root@photos-xxxxxxxx
Das Passwort ist leer und sollte deshalb sofort nach der ersten Anmeldung gesetzt werden. Dazu gibt man den Befehl ein und vergibt ein neues Passwort für den Benutzer root.
passwd
Changing password for root
New password:
Retype password:
Weboberfläche aufrufen
Mit einem Webbrowser kann man auch schon eine Verbindung herstellen. Über die WebUI lassen sich die meisten Funktionen des digitalen Bilderrahmens bequem einstellen. Zu beachten ist, dass jeder Benutzer im Netzwerk den Bilderrahmen steuern kann, da keine Anmeldung an der WebUI notwendig ist.
http://photos-xxxxxxxx
Zeitzone einstellen
Im ersten Schritt ist die Zeitzone einzustellen, was sehr einfach über das Menü im Webbrowser erledigt werden kann.
Display-Einstellungen
Im Reiter "Display" lassen sich einige Einstellungen zur Anzeige der Slideshow vornehmen.
- Automatic Display Activation - Einstellungsmöglichkeit, ab wann das angeschlossene Display an und wieder ausgeschaltet werden soll
- Slideshow Delay - Wie lange wird ein Bild dargestellt, bis das nächste angezeigt wird
Webdav-Konfiguration
In diesem Reiter werden die Anmeldeinformationen am Webdav-Server, also z.B. der Nextcloud, eingetragen. Es sollte darauf geachtet werden, dass für photOS ein eigener Benutzer angelegt wird, der auch nur auf den Ordner mit den Bilder Zugriff hat.
Nachdem der neue Benutzer photos
vom Admin der Nextcloud angelegt wurde, muss er sich anmelden und ein neues App-Passwort vergeben. Das Benutzerpasswort ist in der WebUI von photOS aus Sicherheitsgründen nicht zu verwenden. Je nach den Sicherheitseinstellungen wird eine Zwei-Faktor-Authentifizierung gefordert.
Noch ein paar Worte zum neuen Nextcloud-Benutzer für photOS
- Es sollte ein eigener Benutzer für den digitalen Bilderrahmen sein
- Ein eigenes App-Passwort sollte pro Bilderrahmen erstellt werden
- Der Benutzer sollte nur Leserechte auf den Bilderordner haben
- Über die Nextcloud-Sicherheitseinstellungen sollten die Teilen-Rechte für den photOS-Benutzer so weit wie möglich eingeschränkt werden
- je nach Anforderung kann auch ein Ablaufdatum auf die Freigabe gelegt werden. Nach deren Ablauf verliert der photOS-Benutzer das Leserecht auf den Ordner und die Bilder werden nicht mehr angezeigt
Die Bilder sollten nach Möglichkeit von einem anderen Benutzer auf die Nextcloud kopiert und dort dann in den richtigen Ordner verschoben bzw. kopiert werden und zum Schluss dem Benutzer photOS freigegeben werden.
Die WebDav-Adresse des Foto-Ordners lässt sich sehr einfach abfragen.
Nachdem die Anmeldedaten gespeichert wurden, sollte nach einer kurzen Ladedauer auf dem angeschlossenen Display die Slideshow starten.
Die ganze Konfiguration von photOS ist damit abgeschlossen und der Bilderrahmen ist einsatzbereit.
WLAN-Verbindung konfigurieren
Die WLAN-Verbindung lässt sich über die wpa_supplicant.conf
konfigurieren.
Für Geräte, die keine LAN-Schnittstelle haben, ist die Datei nach dem Flashen des Betriebssystems anzulegen und auf der SD-Karte zu speichern. Danach kann die Speicherkarte eingelegt und der Computer gestartet werden.
Der Versuch die Datei /etc/wpa_supplicant.conf
nach dem Starten des Pis zu editieren, blieb erfolglos. Die Datei ist nur read only.
wpa_supplicant.conf
ist in einem anderen Verzeichnis zu finden. Der Inhalt ist entsprechen zu ändern und einzufügen.
nano /data/etc/wpa_supplicant.conf
Der Inhalt der Datei ist:
update_config=1
ctrl_interface=/var/run/wpa_supplicant
network={
scan_ssid=1
ssid="SSID"
psk="WLAN-PASSWORT"
}
Die beiden Werte sind durch die WLAN-Zugangsdaten zu ersetzen
- SSID = WLAN-Name
- PSK = WLAN-Passwort
Nach dem Abspeichern der Datei ist photOS neu zu starten.
reboot
Nach dem Neustart lässt sich sehr einfach prüfen, ob eine WLAN-Verbindung hergestellt wurde. Dazu wird der Befehl ip a
eingegeben.
Wird bei der Schnittstelle wlan0
eine IP-Adresse angezeigt, funktioniert die WLAN-Verbindung und der Bilderrahmen kann ohne LAN-Verbindung genutzt werden.
- In den FAQs wird die Konfiguration beschrieben: https://github.com/avanc/photOS/wiki/FAQ
photOS Konfigurationsdateien
Die synchronisierten Bilder werden lokal auf dem Raspberry Pi abgespeichert und von dort abgespielt. Die Dateien finden sich im Verzeichnis:
/data/photoframe/images_local/
Die Konfigurationsdatei von photOS ist die Datei photoframe.conf
im Verzeichnis /data/photoframe/conf/
. Dort wird z.B. eingestellt, ob Video wiedergegeben werden sollen, Bilder in zufälliger Reihenfolge abgespielt werden oder der Bildname mit ausgegeben werden soll.
Im gleichen Verzeichnis befindet sich auch die Datei webdav.conf
, in der die Zugangsdaten zur Nextcloud gespeichert werden.
In der Datei filelist.txt
werden die Bilder und Dateien gelistet, die von photOS abgespielt werden.
Über init.d
können einzelne Funktionen des digitalen Bilderrahmens gestartet oder gestoppt werden. Die Liste lässt sich einfach einsehen mit
ls /etc/init.d/
Die Synchronisation von neuen Inhalten wird z.B. mit dem Befehl initiiert:
/usr/bin/photoframe.sh sync
/etc/init.d/S80photoframe restart
Der Sync wird dabei über ein Bash Skript im Verzeichnis /usr/bin
gesteuert. Es bietet die folgenden Optionen
Usage: /usr/bin/photoframe.sh {start|stop|restart|sync|display on/off}
Weitere Hilfe gibt es im offiziellen Wiki 👉 https://github.com/avanc/photOS/wiki/FAQ
Der Bilderrahmen
Wenn ein separates Display extra für den digitalen Bilderrahmen beschafft wird, dann sollte das auch ansprechend in Szene gesetzt werden. Der Bilderrahmen ist schließlich der Eyecatcher. Ein paar Inspirationen finden sich auf den folgenden Seiten.
- https://klomp.de/index.php/95-digitaler-fotorahmen-bilderrahmen-photoframe-selber-bauen-diy-raspberry-pi-web-internet
- https://blog.klomp.eu/posts/digitaler-bilderrahmen/
Bei der Gestaltung sind der Kreativität keine Grenzen gesetzt und das ist das wahrscheinlich aufwendigere bei dem ganzen Projekt als die technische Umsetzung mit dem Raspberry Pi selbst.
Issue - Videos werden nicht abgespielt
In der aktuellen Version von photOS scheint es ein Problem mit dem Abspielen von Videos zu geben. Ein Issue wurde dazu bereits eröffnet. Hoffentlich wird es noch vor Weihnachten behoben.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
-Foto: Bermix Studio on Unsplash
Weitere verwendete Fotos im Nextcloud Ordner (Abbildung: Nextcloud – Ordner freigeben)
- Photo by Vishnu Mohanan on Unsplash
- Photo by digitalarbyter :) on Unsplash
- Photo by Ricardo Gomez Angel on Unsplash
- Photo by Jonas Verstuyft on Unsplash