Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Nachrichten-Ticker (Newsticker via PHP) in VIS einbinden

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Nachrichten-Ticker (Newsticker via PHP) in VIS einbinden

    This topic has been deleted. Only users with topic management privileges can see it.
    • SKB
      SKB Developer Most Active last edited by SKB

      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.

      Newsticker.png

      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!

      jackblackson 1 Reply Last reply Reply Quote 2
      • jackblackson
        jackblackson @SKB last edited by

        @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!

        SKB 1 Reply Last reply Reply Quote 0
        • SKB
          SKB Developer Most Active @jackblackson last edited by SKB

          @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.

          jackblackson 1 Reply Last reply Reply Quote 0
          • jackblackson
            jackblackson @SKB last edited by

            @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

            SKB 1 Reply Last reply Reply Quote 0
            • SKB
              SKB Developer Most Active @jackblackson last edited by SKB

              @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?

              pi-hole.png

              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 🙂

              1 Reply Last reply Reply Quote 0
              • jackblackson
                jackblackson last edited by

                @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

                1 Reply Last reply Reply Quote 0
                • SKB
                  SKB Developer Most Active last edited by

                  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 wert 😉

                  Du kannst diesen Adapter ja gerne testen 🙂

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  891
                  Online

                  31.6k
                  Users

                  79.6k
                  Topics

                  1.3m
                  Posts

                  communication
                  2
                  7
                  1801
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo