Slideshow aus abwechselnd angezeigten Websites & Images/Videos

elvoges

Ensign
Registriert
Nov. 2001
Beiträge
156
Moinsen,

hoffe ich bin hier im Programmieren-Forum richtig - ich suche eine Möglichkeit, per Browser/App/Software eine Art Endlosschleife aus verschiedenen Websites und Offline-Content anzuzeigen.
Konkret, ich möchte gerne auf meinem Tablet (Android) im Wechsel die folgenden Inhalte anzeigen lassen:
  1. Windvorhersage 1 (z.B. https://www.windfinder.com/weatherforecast/hvide_sande)
  2. Random-Bild aus entweder Offline-Ordner oder Cloud
  3. Windvorhersage 2 (z.B. https://www.windguru.cz/53)
  4. Random-Bild aus entweder Offline-Ordner oder Cloud
  5. Windvorhersage 3 (z.B. https://www.windy.com/?55.964,8.223,11)
  6. Random-Bild aus entweder Offline-Ordner oder Cloud
  7. etc
  8. etc
  9. etc
  10. zurück zu 1.
Vielleicht stehe ich gerade auf dem Schlauch, wie man so etwas am besten umsetzen kann - sollte ja eigentlich möglich sein, eine Slideshow zu generieren, die neben Bilddaten auch die oben genannten Websites einliest? Falls das ganze ohne CMS drumherum möglich ist, gerne - notfalls darf es auch auf Wordpress o.ä. laufen, solange es rel. schlank ist...

Ich bin gespannt auf eure Ideen - vielen Dank schon mal :-)
*el*
 
tl;tr
Es gibt viele Möglichkeiten wie es gut umgesetzt werden kann. Es hängt sehr stark von deinem Anwendungsfall ab, deinem KnowHow, was du bereit bist zu investieren und wie es sich in Zukunft entwickeln soll.

Etwas genauer:
Ich würde wohl auf eine Webapp bzw Website setzen (HTML5, ES5, CSS3). Diese kann z. B. auch mit Electron als App ausgeliefert werden. Grund #1 weshalb ich mich für diese Technologie entscheiden würde, ist ihre Flexibilität, also das sie von den meisten Platformen unterstützt wird, sie unterschiedlich ausgeliefert werden kann usw. Für mich wäre ein weiterer Grund, dass ich bei die Frontendentwicklung damit vertraut bin.

Wenn du es als Webseite ausliefert hast du drei möglichkeiten
1. File-Protokoll
2. Lokaler Webserver
3. (öffentlicher) Webserver
Das File-Protokoll empfehle ich dir nicht, da es die meisten Limitierungen hat (z. B. CORS).
Mit lokalen Webserver meine ich einen Webserver auf dem Gerät. Davon bin ich unter Android auch kein Freund. Es ist nicht unmöglich, aber nicht besonders schön.
Der öffentliche Webserver hat den Vorteil das du auch leicht mit anderen Geräten deine Seite aufrufen kannst. Mit einem VPN kannst du auch von extern darauf zugreifen, ohne das Fremde Leute ihn nutzen können.

Wenn es nur auf Android laufen soll, kann man z. B. mit Electron auf Basis einer Webseite eine App erstellen. Der Vorteil hier ist, dass kein Webserver benötigt wird, du leicht deine App auch auf Windows, Linux(, iOS) und auf anderen Android-Geräten installieren kannst. Der Nachteil ist allerdings das die App recht groß sein wird, da ein Browser mit integriert ist (ich glaube es sind immer min 200MB).

Ein CMS wie Wordpress benötigt einen Webserver um das PHP zu interpretieren und "lightweight" ist was anderes. Ich würde das komplett streichen.

Wenn du in der Webapp bzw an irgend einer Stelle Einstellen möchtest was angezeigt werden soll und du das nicht im Code machen möchtest, kannst du bei einem Webbrowser den Localstorage nutzen, um Daten zu persistieren. Das gilt dann aber nur für den einen Browser des einen Geräts.
Bei einer App mit Electron kannst du direkt Daten speichern, aber auch hier ist das ganze auf ein Gerät beschränkt. Wenn du es Geräteübergreifen haben möchtest, benötigst du einen Server der die Daten persistiert. Über den werden sie dann ausgeliefert und auch geändert (z. B. REST).

Für die Darstellung kannst du eines der vielen Frameworks verwenden, als Stichwort solltest du aber Carousel statt Slider verwenden. Bei den meisten spielt der Inhalt keine Rolle, also du kannst sowohl <img> Elemente verwenden, als auch jedes andere. Deine Wetter-Webseiten können dann in einem <iframe> Element dargestellt werden.

<iframe> Elemente haben allerdings einen Nachteil: meistens sind die Infos die einen interessieren nicht ganz oben und sind nichtbesonders komptakt dargestellt. Ausserdem interessiert dich die Werbung nicht. Von daher würde ich Wetterdienste die eine Web-API (REST, SOAP) bereitstellen bevorzugen und diese nutzen. Da erhälst du dann nur die rohen Daten und kannst diese deinem Belieben nach darstellen, also schön komptakt und nur die Daten die für dich relevant sind. Mit einem Cache kannst du dann auch Daten vorhalten für den Fall, dass du kein Internet hast oder es dir reicht, wenn nur alle x-Minuten die Daten aktualisieren.

Du siehst, dass selbst wenn man bereits die Technologie beschränkt, es noch sehr viele Möglichkeiten gibt, wie es umgesetzt werden kann. Und ich habe bei Weiten nicht alles abgedeckt.
Möchtest du es selbst umsetzen?
Hast du bereits Erfahrungen mit Programmieren, wenn ja welche?
Soll es in Zukunft Änderungen geben, als z. B. neue Features?
Wie hoch ist dein Invest (Zeit für die Entwicklung, Geld für Server, ...)?
...?

Hoffe konnte dir etwas helfen ;)
 
  • Gefällt mir
Reaktionen: r15ch13
Moinsen Crast,

vielen Dank für Deine ausführliche Antwort - ich werd mir Electron mal anschauen, klingt nach Deinen Erklärungen vielversprechend!

Die Anbindung der Wetterdaten per API würde ich auch bevorzugen, allerdings ist gerade Windfinder für meinen Standort am präzisesten - und lässt sich nicht per iframe einbinden :-(

Ob ich das Ding selbst umsetzen kann, werde ich sehen - ich starte nächstes Jahr ein Gewerbe, für das ich genau diese Darstellung ideal gebrauchen könnte. Sollte die Umsetzung allerdings zu zeitintensiv werden, ist auch einfach ein zweites Display eine Option:
Display 1: Slideshow von Images/Videos
Display 2: Wetterdaten per Autorefresh

Webserver & ausreichend Speicher auf dem Endgerät ist jeweils vorhanden - der Grund warum ich als Endgerät auf ein Tablet abziele, ist: am Standort habe ich zu 99% keinen Strom, die Darstellung auf einem Tablet mit Solarcharger/Powerbank scheint mir praktikabel. Ansonsten wäre auch ein lokaler Server oder eine rasp-pi-Lösung mit externem Display denkbar. Allerdings eben ohne Stromanschluss etwas komplizierter.

Vielleicht hast Du mit den Infos ja noch eine Idee?

Beste Grüße und vielen Dank
*el*
 
Zu deinen Wetter-Diensten
Ich habe mir die drei Obengenannte gerade angeschaut.

Windfinder - Windfinder bietet ein Widget an, dass du in deiner Seite einbetten kannst ABER du bist an einige Bedingungen gebunden. Eine davon ist, das das Widget nicht in Apps eingebettet werden darf, wodurch eine Electron-App entfällt. (Bei App gehe ich davon aus, dass sie eine App für das Smartphone meinen und keine Webapps (die ja eigentlich Webseiten sind die nur anders aufgebaut sind und andere Funktionen bereitstellen).

Windy - hier werden dir ebenfalls Widgets geboten, aber auch eine API. Wenn das Projekt non-commercial und Open Source ist, kann sogar kostenfrei auf die Paid Version umgestiegen werden.

Windguru - Hier wird ebenfalls ein Widget angeboten. Habe aber nicht besonders viele Infos hier finden können. Fand auch die Handhabung etwas unintuitiv.

Ansonsten gibt es noch sehr viele weitere Wetterdienste die Programmierschnittstellen anbieten, meisten mit einer Free-Version mit maximal x Zugriff pro Monat. Einige bieten auch für die Entwicklung eine ohne zugriffbeschränkung, aber dafür z. B. mit Demo-Daten (sehr praktisch in der Entwicklung).
Aus eigener Erfahrung kann ich DarkSky empfehlen, für Deutschland habe ich dort allerdings die Erfahrung gemacht, dass die Daten immer für sehr große Bereiche gelten, also recht ungenau sind. In den USA hingegen findet man selbst für kleine Ort sehr gute Daten.
Ebenfalls ist die OpenWeatherMap interessant, mit der allerdings nur in sehr kleinen Rahmen gearbeitet.

Anregungen zur technischen Umsetzug
Eine App hat den Vorteil, dass mit relativ wenig Aufwand ein Kioskmode erzeugt werden kann. Brauchst aber für Android und iOS unterschiedliche Versionen. Ob dieser Modus auch mit Electron leicht umgestzt werden kann weiß ich leider nicht. Ebenfalls ist die persistierung von Einstellungen recht leicht. Würde aber für deinen Usecase vermutlich keine App empfehlen.

Stattdessen würde ich zu einer Webseite tendieren die an einen eigenen Service angebunden ist, der Wetterdaten cachen kann. Ein Vorteil davon ist, dass du deinen "Dienst" schnell auf neuen Geräten einrichten kannst (Einfach URL aufrufen). Den Kioskmode kannt du dann mit Apps wie "Kiosk Browser Lockdown" erreichen.
Bei der Webseite würde ich ein Framework wie Angular oder React nutzen. Damit kann in regelmäßigen Abständen automatisiert die Daten aktualisiert werden ohne die Seite neu zu laden.
Für den Service würde ich Spring bzw. SpringBoot nutzen und damit eine REST-Schnittstelle bereitstellen. An diese Schnittstelle fragst du mit det Latitude und Longitude Werten an und und schaust in deinem Cache ob aktuelle Daten (z. B. max. 2h alt) vorliegen. Wenn ja liefer diese aus. Wenn nein frag all deine Dienste an und liefer die aktuellen Daten aus. Die genaue Implementierung müsste man sich dann anschauen.
Auf diesen Weg kannst du aber alle Daten vereinheitlicht zurück geben und genau für deine Zwecke aufbereiten. Außerdem sparst du dir Anfragen an die Wetterdienste.
Das sind natürlich nur Überlegungen und Anregungen. Wenn ich den Spring-Service planen würde, würde er vermutlich anders arbeiten, als ich es mir gerade auf die schnelle überlegt habe. Außerdem sind das Technologien die ich momentan bevorzugt verwenden würde, mit großer Wahrscheinlichkeit wäre das in einem halben Jahr andere.

Der Service sollte allerdings an einer Stelle liegen und nicht auf jedem Gerät. Also z. B. ein RPi als Server (wobei das mit Java probleme machen könnte, bin mir gerade nicht sicher ob e für die ARM-Prozessoren aktuelle Java-Runtimes gibt). Da du sicherlich nicht möchtest, dass jeder darauf zugreifen kann und somit auch Probleme wie NAT und wechselne IPs geloest werden können, würde ich das ganze in Verbindung mit einem VPN planen.
Und auch hier: Nur Ideen, Vorschläge und spontane Gedanken.
 
Zurück
Oben