{"id":283241,"date":"2024-12-19T15:53:35","date_gmt":"2024-12-19T14:53:35","guid":{"rendered":"https:\/\/www.blumen-schwarz.de\/aktuell\/?p=283241"},"modified":"2024-12-19T16:28:22","modified_gmt":"2024-12-19T15:28:22","slug":"infobildschirme-digital-signage-mit-nextcloud","status":"publish","type":"post","link":"https:\/\/www.blumen-schwarz.de\/aktuell\/infobildschirme-digital-signage-mit-nextcloud\/2024\/12\/","title":{"rendered":"Infobildschirme - Digital Signage mit Nextcloud"},"content":{"rendered":"<p>Diese Anleitung und Idee setzt erweiterte Linuxkenntnisse voraus<\/p>\n<h1>Infobildschirme<\/h1>\n<p>Seit einigen Jahren laufen bei uns in den G\u00e4rtnereien 3 Bildschirme mit unseren Informationen. Bis 2024 haben wir das sehr einfach mit dem WordPress Plugin \"Foyer\" gel\u00f6st. Das Wort \"einfach\" ist dabei relativ.\u00a0 Wir empfanden das Plugin Foyer immer unn\u00f6tig kompliziert und mit sinnvollen Funktionen eingeschr\u00e4nkt. Aber der gro\u00dfe Vorteil war: Wir mussten keine weitere Software installieren und hatten alles sch\u00f6n beieinander.<\/p>\n<p>Seit 2024 sind bei diesem Plugin Sicherheitsl\u00fccken bekannt. Anscheinend wird es nicht mehr weiterentwickelt: Wir mussten uns auf die Suche nach einer neuen L\u00f6sung begeben.<\/p>\n<p>Unsere Voraussetzungen:<\/p>\n<ul>\n<li>Client\/Server Struktur. Verwaltung zentral \u00fcber unsere Webserver.<\/li>\n<li>Client auf Raspberry Pi Basis - einfach weil die Dinger kosteng\u00fcnstig sind und das Stromsparen Sinn macht.<\/li>\n<li>Betriebssystem auf beiden Seiten Linux.<\/li>\n<li>Wir wollen keine fremdgehostete Software, sondern die Programme sollen alle, mit allen Daten bei uns laufen. Ohne dass irgendwo hintelefoniert wird, google-analytics eingebunden ist oder \u00e4hnliche Scherze. Das macht den Datenschutz einfacher.<\/li>\n<\/ul>\n<h2>Xibo<\/h2>\n<p>Auf vielen Linuxseiten haben wir Tipps f\u00fcr Digital Signage (Infobildschirme) gefunden. Mit ganz oben dabei war immer <a href=\"https:\/\/xibosignage.com\/\">xibo.<\/a><\/p>\n<p>Xibo kommt aus OpenSource Anf\u00e4ngen. Daher, wenn man etwas sucht, findet man auch den Quellcode f\u00fcr die Installation. Das Installieren ist nicht ganz trivial und hat uns einen guten halben Tag Arbeit gekostet.<\/p>\n<p>Danach gingen wir ins Administrationsmen\u00fc von Xibo und ... ja wir waren entsetzt. Xibo ist unglaublich vielf\u00e4ltig und enorm leistungsf\u00e4hig. Oder jemand der Menschen hasst, hat die Oberfl\u00e4che programmiert. Ein \"schneller\" Start w\u00e4re damit auf keinen Fall m\u00f6glich gewesen. Unter zwei Tagen schien eine Einarbeitung unm\u00f6glich. Zur Kr\u00f6nung sind wir dann auf einen Artikel gesto\u00dfen (jaja - h\u00e4tte man vorher lesen m\u00fcssen), dass xibo seit 2022 keine Raspberry Pi an den Infobildschirmen mehr unterst\u00fctzt: Die Software braucht mehr Rechenleistung.<\/p>\n<h2>PiSignage<\/h2>\n<p>Schweren Herzens haben wir die n\u00e4chste Software installiert: <a href=\"https:\/\/pisignage.com\/\">PiSignage.<\/a><\/p>\n<p>Wie der Name schon anklingen l\u00e4sst, gibt es hier etwas f\u00fcr den Raspberry Pi. Die Software ist genau das Gegenteil von Xibo: Sehr wenig Funktionen. Trotzdem hat es mit Xibo gemeinsamn, dass die Oberfl\u00e4che nicht so klar strukturiert ist, wie man es denken k\u00f6nnte.<\/p>\n<p>Und das Kleingedruckte: Die Serversoftware ist zwar Opensource, f\u00fcr die Clients fallen, aber trotzdem j\u00e4hrliche Kosten an. Anstatt auf bew\u00e4hrte Standardsoftware wie apache \/ nginx etc. zu setzen, wurde hier aufwendig alles selbst programmiert. Muss eigentlich nicht sein. Ich vertraue lieber auf nginx - das millionenfach eingesetzt wird und wo jeder bekannte Sicherheitsfehler innerhalb von wenigen Stunden behoben wurde.<\/p>\n<h3>Eigenbau mit unserer Cloud<\/h3>\n<p>Jetzt waren wir schon sehr genervt, haben frustriert alles wieder gel\u00f6scht und eine Eigenbaul\u00f6sug umgesetzt.<\/p>\n<p>Unser Aufbau:<\/p>\n<p>Die Bild- und Videodaten der Pr\u00e4sentation auf den Infobildschirmen liegen in unserer Nextcloud. Die Clients holen sich dort die Daten und spielen diese mit einem einfachen Mediaplayer ab.<\/p>\n<p>Hier gab es ein paar Probleme mit Nextcloud. Aktuell (2024 )ist beim Raspberry Pi - aus welchen Gr\u00fcnden auch immer - kein Nextcloudclient dabei. Wir haben daher das Bildschirmverzeichnis mittels davfs eingebunden (als Vorbereitung dazu muss unter \/home\/pi\/.davfs2\/secrets das Loginpasswort des Nextcloudusers hinterlegt werden und in der \/etc\/fstab die Nextcloudadresse zum Mounten als User freigegeben sein - bitte genaue Doku selber nachlesen).<\/p>\n<p>Unser \"Player\" ist denkbar einfach und wird \u00fcber \/etc\/xdg\/autostart\/ gestartet<\/p>\n<p>#!\/bin\/bash<br \/>\nsleep 10<br \/>\nxset s off<br \/>\nxset s noblank<br \/>\nmount \/home\/pi\/nextcloud\/<br \/>\npingtest=`ping -c2 NEXTCLOUDSERVER|grep -c \"64 bytes\"`<br \/>\nif test $pingtest -gt 0<br \/>\nthen<br \/>\nrsync -av --delete \/home\/pi\/nextcloud\/Verzeichnisname\/* \/home\/pi\/media\/<br \/>\nelse<br \/>\necho \"offline - wir nehmen die Version vom Vortag\"<br \/>\nfi<br \/>\n#zwei Monitore Version mit zeitversetzen Content<br \/>\nmpv --screen=1 --shuffle --loop-playlist -fs --image-display-duration=7 \/home\/pi\/media\/* &amp;<br \/>\nsleep 4<br \/>\nmpv --screen=0 --shuffle --loop-playlist -fs --image-display-duration=7 \/home\/pi\/media\/*<\/p>\n<p>umount \/home\/pi\/nextcloud\/<\/p>\n<p>&nbsp;<\/p>\n<p>So gut und so einfach. Damit der client automatisch, wenn\u00a0 man neue Bilder eingestellt hat, ein Update f\u00e4hrt, machen wir einen einfachen Steuermechanismus: Im Bilderverzeichnis wird eine leere Textdatei neustart.txt angelegt (geht super einfach von der Nextcloud Weboberfl\u00e4che aus).<\/p>\n<p>Alle 2 Minuten (einfach crontab Eintrag) wird folgendes Script im Hintergrund gestartet (Achtung die vcgencmd Sache funktioniert auf neueren Raspberry Pis ab Debian Bookworm nicht mehr):<\/p>\n<p>#!\/bin\/bash<\/p>\n<p>neustart=\"\/home\/pi\/nextcloud\/Verzeichnisname\/neustart.txt\"<\/p>\n<p>check=`ps aux |grep -v grep|grep -c \"mpv --screen\"`<br \/>\nschirman=`vcgencmd display_power|sed 's\/display_power=\/\/g'|sed 's\/ \/\/g'`<br \/>\nif test $check -lt 1<br \/>\nthen<br \/>\nif test $schirman -gt 0<br \/>\nthen<br \/>\necho \"mpv Medienplayer l\u00e4uft nicht - Digital Signage au\u00dfer Betrieb\"<br \/>\n\/etc\/init.d\/lightdm restart<br \/>\nfi<\/p>\n<p>else<br \/>\necho \"alles ok - DS schaut gut aus\"<br \/>\nfi<\/p>\n<p>if test $schirman -gt 0<br \/>\nthen<br \/>\nif test -f \"$neustart\"<br \/>\nthen<br \/>\nrm $neustart<br \/>\nsleep 5<br \/>\numount \/home\/pi\/nextcloud<br \/>\nservice lightdm restart<br \/>\nfi<br \/>\nelse<br \/>\numount \/home\/pi\/nextcloud 2&gt;\/dev\/null<br \/>\nkillall mpv 2&gt;\/dev\/null<br \/>\nfi<\/p>\n<p>&nbsp;<\/p>\n<p>Das war alles. Super einfach und funktioniert besser als PiSignage. Wir haben allerdings folgende Einschr\u00e4nkungen:<\/p>\n<ul>\n<li>Es k\u00f6nnen keine Laufschriften, Uhrzeiten, Wetterdaten oder sonstiges (eigentlich \u00fcberfl\u00fcssiges) Zeugs gezeigt werden - das k\u00f6nnte man noch nachprogrammieren, aber wir sehen es nicht als wichtig.<\/li>\n<li>Man kann keine Verfallszeit eingeben. Sondern muss die Bilder \/ Videos, die nicht gezeigt werden sollen - einfach in ein anderes Verzeichnis schieben.<\/li>\n<li>Es gibt keine animierten Bild\u00fcberl\u00e4ufe<\/li>\n<\/ul>\n<p>Wir haben uns eine Demovorlage mittels Inkscape erstellt. Hier erstellen wir die Pr\u00e4sentationen und exportieren sie ins jpg Format (und nat\u00fcrlich alles mit Nextcloud, so dass alle Verantwortlichen hier bequem daran arbeiten k\u00f6nnen).<\/p>\n<p>Wir haben die ersten Versuche mit dem VLC Videoplayer gemacht (damit w\u00e4ren auch OSD Einblendungen m\u00f6glich gewesen). In der Praxis hat er aber zuviel Rechenleistung ben\u00f6tigt und\u00a0 das duale Starten auf zwei Bildschirmen (von einem Raspberry PI aus) haben wir nicht geschafft. Wir skalieren die Videos ins 720HD Format. Damit lassen sich, mit einem Pi4b, auch kurze unterschiedliche Videos auf 2 Bildschirmen abspielen.<\/p>\n<p>Ich hoffe, dass dieser Artikel ein netter Gedankenansto\u00df f\u00fcr weitere Eigenentwicklungen sind ... Manchmal geht gute Software selber und einfacher besser.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Diese Anleitung und Idee setzt erweiterte Linuxkenntnisse voraus Infobildschirme Seit einigen Jahren laufen bei uns &hellip;<\/p>\n<p class=\"read-more\"> <a class=\" thunk-readmore button \" href=\"https:\/\/www.blumen-schwarz.de\/aktuell\/infobildschirme-digital-signage-mit-nextcloud\/2024\/12\/\"> <span class=\"screen-reader-text\">Infobildschirme - Digital Signage mit Nextcloud<\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[3496],"tags":[],"class_list":["post-283241","post","type-post","status-publish","format-standard","hentry","category-technik-blog","thunk-woo-product-list","open-woo-hover-zoom","open-single-product-tab-horizontal","open-shadow-","open-shadow-hover-"],"_links":{"self":[{"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/posts\/283241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/comments?post=283241"}],"version-history":[{"count":0,"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/posts\/283241\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/media?parent=283241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/categories?post=283241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blumen-schwarz.de\/aktuell\/wp-json\/wp\/v2\/tags?post=283241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}