Newsticker für eDip

Mal ein kleines Script für die letzte Meldung.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Newsticker für eDip
Trigger  : Bei Variablenänderung
Interval : Newsticker
*/
// Da max 46 Zeichen bei einer Größe von Geneva10 auf das Display passen, muss ein Zeilenumbruck erfolgen
// Daten einlesen
$Newsticker = GetValue(40231 /*[Newsticker]*/);
$Newsticker = str_replace("Uhr</span>", "", $Newsticker);
echo "Stringlänge ist ".strlen($Newsticker)." Zeichen";
// String aufteilen nach ganzen Wörtern und als Array ausgeben
$stringlaenge = 46;
$words = preg_split("/[\040]+/", $Newsticker, -1);
$r=0;
for($i=0; $i < count($words); $i++)
 
if (strlen($line[$r] . $words[$i] . ' ') < $stringlaenge) $line[$r] .= $words[$i] . ' ';
else
 {
   $r++;
   $line[$r] .= $words[$i] . ' ';
 }
 
//Umwamdlung von Ää,Öö,Üü,ß in das richtige Format
$line = str_replace("Ä", "\x8E", $line);
$line = str_replace("ä", "\x84", $line);
$line = str_replace("Ö", "\x99", $line);
$line = str_replace("ö", "\x94", $line);
$line = str_replace("ü", "\x81", $line);
$line = str_replace("Ü", "\x9A", $line);
$line = str_replace("ß", "\xE1", $line);
// Zeilenlänge nach String aufteilen und Array auslesen
$Zeile1 = ($line[0]);
$Zeile2 = ($line[1]);
// Daten auf Display ausgeben
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZL".chr(5).chr(32)."$Zeile1"."\x7C"."$Zeile2".chr(0));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
echo "
",$Newsticker;
?>

Wem eine Meldung nicht reicht :slight_smile:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Newsticker für eDip
Trigger  : Bei Variablenänderung
Interval : Newsticker
*/
// Da max 46 Zeichen bei einer Größe von Geneva10 auf das Display passen, muss ein Zeilenumbruch erfolgen

// Vorherige Meldung einlesen
$Newszeile1 = GetValue(17355 /*[Newsticker\Newszeile1]*/);
$Newszeile2 = GetValue(58710 /*[Newsticker\Newszeile2]*/);
// Neue Meldung einlesen
$Newsticker = GetValue(40231 /*[Newsticker\Newsticker]*/);
$Newsticker = str_replace("Uhr</span>", "", $Newsticker);
echo "Stringlänge ist ".strlen($Newsticker)." Zeichen";
// String aufteilen nach ganzen Wörtern und als Array ausgeben
$stringlaenge = 30;
$words = preg_split("/[\040]+/", $Newsticker, -1);
$r=0;
for($i=0; $i < count($words); $i++)
if (strlen($line[$r] . $words[$i] . ' ') < $stringlaenge) $line[$r] .= $words[$i] . ' ';
else
 {
   $r++;
   $line[$r] .= $words[$i] . ' ';
 }
//Umwamdlung von Ää,Öö,Üü,ß in das richtige Format
$line = str_replace("Ä", "\x8E", $line);
$line = str_replace("ä", "\x84", $line);
$line = str_replace("Ö", "\x99", $line);
$line = str_replace("ö", "\x94", $line);
$line = str_replace("ü", "\x81", $line);
$line = str_replace("Ü", "\x9A", $line);
$line = str_replace("ß", "\xE1", $line);
print_r($line);
// Zeilenlänge nach String aufteilen und Array auslesen
$Zeile1 = ($line[0]);
SetValue(17355 /*[Newsticker\Newszeile1]*/, $Zeile1);
$Zeile2 = ($line[1]);
SetValue(58710 /*[Newsticker\Newszeile2]*/, $Zeile2);
// Daten auf Display ausgeben
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."RL".chr(2).chr(18).chr(149).chr(63));
//COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZL".chr(4).chr(20)."$Zeile1"."\x7C"."$Zeile2"."\x7C"."$Newszeile1"."\x7C"."$Newszeile2".chr(0));
//COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
echo "
",$Newsticker;
?>

Hier das komplette Script mit Abänderung.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Newsticker für eDip
Trigger  : Bei Variablenänderung
Interval : Newsticker
*/
// Da max 46 Zeichen bei einer Größe von Geneva10 auf das Display passen, muss ein Zeilenumbruch erfolgen

// Vorherige Meldung einlesen
$Newszeile1 = GetValue(17355 /*[.News/Wetter\Newsticker\Newszeile1]*/);
$Newszeile2 = GetValue(58710 /*[.News/Wetter\Newsticker\Newszeile2]*/);
// Neue Meldung einlesen
$Newsticker = GetValue(40231 /*[.News/Wetter\Newsticker\Newsticker]*/);
$Newsticker = str_replace("Uhr</span>", "", $Newsticker);
echo "Stringlänge ist ".strlen($Newsticker)." Zeichen";
        $Newsticker = str_replace('+', ' ',$Newsticker);
        $Newsticker = str_replace("Ä","Ä",$Newsticker);
        $Newsticker = str_replace("ä","ä",$Newsticker);
        $Newsticker = str_replace("Ö","Ö",$Newsticker);
        $Newsticker = str_replace("ö","ö",$Newsticker);
        $Newsticker = str_replace("%F6","ö",$Newsticker);
        $Newsticker = str_replace("%FC","ü",$Newsticker);
        $Newsticker = str_replace("Ãœ","Ü",$Newsticker);
        $Newsticker = str_replace("ü","ü",$Newsticker);
        $Newsticker = str_replace("ß","ß",$Newsticker);
        
// String aufteilen nach ganzen Wörtern und als Array ausgeben
$stringlaenge = 29;
$words = preg_split("/[\040]+/", $Newsticker, -1);
$r=0;
for($i=0; $i < count($words); $i++)
if (strlen($line[$r] . $words[$i] . ' ') < $stringlaenge) $line[$r] .= $words[$i] . ' ';
else
 {
   $r++;
   $line[$r] .= $words[$i] . ' ';
 }
//Umwamdlung von Ää,Öö,Üü,ß in das richtige Format
$line = str_replace("Ä", "\x8E", $line);
$line = str_replace("ä", "\x84", $line);
$line = str_replace("Ö", "\x99", $line);
$line = str_replace("ö", "\x94", $line);
$line = str_replace("ü", "\x81", $line);
$line = str_replace("Ü", "\x9A", $line);
$line = str_replace("ß", "\xE1", $line);

print_r($line);
// Zeilenlänge nach String aufteilen und Array auslesen
$Zeile1 = ($line[0]);
SetValue(17355 /*[.News/Wetter\Newsticker\Newszeile1]*/, $Zeile1);
$Zeile2 = ($line[1]);
SetValue(58710 /*[.News/Wetter\Newsticker\Newszeile2]*/, $Zeile2);
// Daten auf Display ausgeben
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."RL".chr(3).chr(13).chr(152).chr(57));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZL".chr(5).chr(15)."$Zeile1"."\x7C"."$Zeile2"."\x7C"."$Newszeile1"."\x7C"."$Newszeile2".chr(0));
COMPort_SendText(42295 /*[eDIP]*/, chr(27)."ZV".chr(4));
echo "
",$Newsticker;

?>