NEWS
Nachrichten-Ticker (Newsticker via PHP) in VIS einbinden
-
Hallo,
da ich selbst auf der Suche nach einem solchen Newsticker war und noch nichts adäquates gefunden habe, habe ich kurzerhand ein Skript erstellt, welches dies erledigt.
Vorraussetzung hierfür: Webserver mit PHP
Im Fehlerfall: Es kann sein, dass das JavaScript durch den lokalen Aufruf geblockt wird.PHP Parse Skript:
<?php //URL der Datei, die geladen/geparsed werden soll $newsfile = "http://www.tagesschau.de/newsticker.rdf"; // Funktion, um News rdf Datei abzuholen function get_file($file, $local_path, $newfilename) { $err_msg = ''; //echo "<br>Attempting message download for $file<br>"; $out = fopen($local_path.$newfilename,"wb"); if ($out == FALSE){ print "File not opened<br>"; exit; } $ch = curl_init(); curl_setopt($ch, CURLOPT_FILE, $out); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL, $file); curl_exec($ch); //echo "<br>Error is : ".curl_error ( $ch); curl_close($ch); } //Funktionsaufruf um die Datei abzuholen get_file($newsfile,'./','newsticker.rdf'); // Feed einlesen if( !$xml = simplexml_load_file('newsticker.rdf') ) { die('Fehler beim Einlesen der XML Datei!'); } // Ausgabe Array $out = array(); // auszulesende Datensaetze $i = 7; // Items vorhanden? if( !isset($xml->channel[0]->item) ) { die('Keine Items vorhanden!'); } // Items holen foreach($xml->channel[0]->item as $item) { if( $i-- == 0 ) { break; } $out[]=(string) $item->title; } //print_r($out); // Eintraege ausgeben $news = ""; foreach ($out as $value) { $news .= " ++++ ".$value; } ?> <!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8"> <title>SKB Web - NewsParser</title> <style> .marquee { max-width: 100vw; /* iOS braucht das */ white-space: nowrap; overflow: hidden; /* Hintergrundfarbe des Lauftextes. Auskommentieren, um Transparent zu erhalten */ background-color: #000000; font-size:20px; } .marquee span { display: inline-block; padding-left: 100%; animation: marquee 10s linear infinite; /* Textfarbe des Lauftextes */ color: #FFFFFF; } /* Optional: mouseover (oder Tipp auf dem Touchscreen) pausiert die Laufschrift */ .marquee span:hover { animation-play-state: paused } /* Make it move */ @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } } </style> </head> <body> <div id="marquee" class="marquee"><span><?php echo $news; ?></span></div> <script> if (document.getElementById("marquee")) { var laufschrift = document.getElementById("marquee"); len = laufschrift.innerHTML.length; laufschrift.firstChild.style.animationDuration = len/6 +"s"; } </script> </body> </html>
Durch das Skript wird bei Aktualisierung des iframe in VIS neu von tagesschau.de heruntergeladen und daraus eine Laufschrift erstellt
Die Adresse der Datei kann in Zeile 3 geändert werden.
Es können die Farben per CSS angepasst werden:
- Zeile 73: Hintergrundfarbe
- Zeile 74: Textgröße
- Zeile 82: Textfarbe
Die Anzahl der News, die aus der Datei gelesen werden sollen, können in Zeile 40 angepasst werden.
Das Skript wird einfach per iframe in VIS eingebunden.
Sollten Fragen bestehen, bitte einfch melden!
-
@SKB Versteht ich das richtig - es wird hier noch neben ioBroker Infrastruktur benötigt, dass das ganze funktioniert, oder? Oder wo fügst du das PHP Parse Script ein? Ich find dies nämlich eine absolut coole Idee!
-
@jackblackson
Ja, es wird neben dem ioBroker ein Webserver mit PHP-Unterstützung gefordert.
Wer z.B. ein pi-Hole (Werberblocker) im Netzwerk laufen hat bzw. auf einem Raspi pi-Hole zum Werbeblocken nachinstalliert, der erhält automatisch einen kleinen Webserver mit PHP-Support.Auch haben inzwischen viele .de Domain-Hoster PHP mit an Board und da würde sich dieses Skript auch ausführen lassen.
Gerne kann ich dir aber auch einer Art Demo zur Verfügung stellen, die Du dann einbinden kannst.Ich habe oben zusätzlich mal ein Bild eingebunden, wie die sich der Ticker verhält.
-
@SKB Ich hab einen Raspi mit pi-Hole - und wäre sehr froh, wenn du hier eine etwas detailliertere Anleitung erstellen könntest. Gerade auch, wie die Daten dann zum ioBroker kommen
-
@jackblackson Wenn Du die IP-Adresse des pi-hole im Browser aufrufst, müsstest du ja auf die Konfigurationsoberfläche des pi-hole kommen, richtig?
Sollte dies der Fall sein, so kannst du mal im Verzeichnis "/var/www/html/admin" schauen, ob da die PHP Dateien von pi-Hole liegen.
Die PHP, die auf pi-hole installiert ist, kannst Du mit "php -v" abrufen.
Ist dies der Fall, so kannst du unter "/var/www/html/" einen neuen Ordner "newsticker" anlegen und dort das Skript ablegen. Das Skript benötigt die Berechtigung, Dateien zu lesen und zu schreiben.
Danach das Skript wie oben beschrieben anpassen, dann müsste es unter "http://<Adresse-pi-hole>/newsticker/" erreichbar sein.
Bei weiteren Fragen, einfach den Reply Button betätigen
-
@SKB Wäre dies auch eine Lösung, diesen Adapter zu nutzen: https://forum.iobroker.net/topic/31294/test-adapter-rssfeed-v0-0-x/2
-
Hört sich ähnlich an. Der Adapter scheint relativ neu zu sein, da ich vor etwa 14 Tagen danach gesucht und nichts gefunden habe.
Gut, ich habe keinen Datenpunkt in VIS für mein Skript eingebaut - jedoch kann es scrollen. Und das war es mir wertDu kannst diesen Adapter ja gerne testen